Авторские статьи

Игры с нейронными сетями.


Увлёкся изучением мира нейронных сетей (Neural Networks, NN). Пока лишь с точки зрения изучения их возможностей в плане обработки изображений и видео, хотя сфера применения их широка и не ограничивается одними лишь картинками. Как инженер-программист по образованию и системный администратор по специализации, для меня нет особых проблем "запустить в работу" любую нейронную сеть, которую создали профессионалы в данной области. В основном, в моей коллекции нейронные сети из мира open source и обычно они написаны на языке программирования Python. Данная статья прежде всего нужна мне как ссылка для близких и друзей, которым я могу улучшить их старые фото.

Моя итоговая цель - приблизиться к работам такого мастера как Денис Ширяев, который творит магию со своей командой Neural.Love. Самые старые видеоматериалы разложены в ряд изображений, очищены от шума, раскрашены, масштабированы к 4К и приведены к 60 fps, что добавляет плавности и реалистичности к движениям людей, которые жили в прошлых веках.

Самая просматриваемая на YouTube работа - Прогулка по Нью-Йорку 1911.





Самая крышесносная работа! 20 чёрно-белых картинок 1888 года от отца-основателя Луи Эме Огюстена Лепренса, превращены в цветные 250 кадров с разрешением 4К (60 fps).





Мне пока далеко до таких успехов и многое неизвестно, но Денис Ширяев не отказывает в консультациях, а его сайт и работы многому учат. Осталось только усвоить.

Пока разобрался и освоил нейронные сети, которые позволяют мне:

Улучшения качества изображения, ретушь (Image Enhancement, Retouching)

Под фразой улучшения общего качества у разных нейронных сетей подразумевается разное. Какие-то сети отдельно выделяют задачи ретуширования от улучшения контрастности и исправления засвета/темноты, какие-то подразумевают их в рамках общего улучшения.

Нейронная сеть улучшает



Улучшение контраста (Contrast Enhancement)

На контрасте



Устранение последствий низкой освещенности (Lowlight Enhancement)

Нейронная сеть просветляет

Нейронная сеть выводит на свет



Увеличить изображение (Upscale, Super Resolution (SR))

Многие нейронные сети могут похвастать что умеют делать изменение размеров в большую сторону, пытаясь сохранить качество.

Масштабирование изображения в бОльшую сторону

Есть обычные математические алгоритмы, которые делают масштабирование картинки, но даже лучшие из них (Фильтр Ланцоша) в теории и по мнению создателей нейронных сетей проигрывают им.

Сравнение различных подходов при масштабировании изображения



Убирание шума (Denoise) у чёрно-белых и серых изображений

Устраняем шум на серых изображениях



Убирание шума (Denoise) у цветных изображений

Устраняем шум на цветных изображениях



Раскрашивание всего изображения (Full Colorization)

Одна из редких функций это раскрашивание всего изображения. Здесь нейронная сеть пытается придать цвета, что может быть исторически неверным. Например, глаза человека в реальности были голубыми, а нам нейронная сеть представила карими. Часто возникает эффект "зомби", у человека кончики пальцев могут приобретать серый пепельный цвет, который и дал такое красочное название негативному эффекту. Часто можно подметить склонность нейронной сети окрасить всё в лиловый цвет.

Раскрашивание всего изображения

Есть нейронная сеть, которая использует для раскрашивания изображений в качестве опорной (reference) другую картинку, чтобы выдать итоговый результат. Обратите внимание как меняется результат при различных опорных фото. Можно подобрать эталонную картинку по словесному описанию и попытаться приблизиться к вероятному оригиналу.

Раскрашивание всего изображения с эталоном

Раскрашивание всего изображения с эталоном



Восстановление лиц (Face Restoration)

Восстановление лица на фотографии

Восстановление лица на изображении



Раскрашивание лиц (Face Colorization)

Есть различные нейронные сети, которые могут раскрасить фото, но следует отличать раскрашивание чисто лица или всего изображения. Нейронная сеть, которая умеет раскрашивать ТОЛЬКО лица, легко оставит всё остальное серым и получится несуразица. При раскрашивании лица, оно должно занимать почти всю площадь изображения.

Раскрашивание лиц на фотографии



Дорисовка лиц (Face Inpainting)

Если повреждения фото будут серьёзными (длинные участки царапин, дыры), то, возможно, стоит попробовать заменить их в графическом редакторе на белые участки, которые нейронная сеть попробует воссоздать.

Дорисовка недостающих деталей на лице



Создание лиц по заготовке (Seg2Face)

Малополезный для меня функционал, но всё же есть возможность генерировать лицо человека по схеме.

Фантазия нейронной сети о лице человека



Уменьшение артефактов сжатия JPEG (JPEG Compression Artifact Reduction)

К сожалению, мне пока доступна одна нейронная сеть, которую тренировали только на серых изображениях, судя по документации проекта. С другой стороны, если доступно старое фото, которое к ужасу ещё и обладает страшными артефактами сжатия в JPEG, то можно сначала избавиться от артефактов, а потом продолжить работу с фото в других нейронных сетях - убрать шум, раскрасить и т.д.

Избавление от артефактов сильного сжатия JPEG



Удаление размытия (Deblurring)

Избавление от размытия фото



Удаление капель дождя (Deraining)

Интересный функционал, который может помочь убрать следы дождя с памятных фото.

Удаление капель дождя с фотографии

Удаление следов дождя с изображения



Исправление засвета (Dehazing)

Исправления засвета на изображении



Исправление царапин (Scratch Detection)

Востребованный функционал по удалению царапин, следов изгиба на фотографии и т.д.

Пример обнаружения и исправления царапин на изображении

Дополнительные материалы:
Гагарин (1994) - улушенный нейронной сетью мульфильм.

Дата последней правки: 2022-06-12 01:07:23

RSS vasilisc.com   


Разделы

Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи об Astra Linux
Статьи о FreeBSD
Статьи об Ubuntu
Статьи о Snappy
Статьи об Ubuntu Phone
Статьи о Kubuntu
Статьи о Xubuntu
Статьи о Lubuntu
Статьи об Open Source
Карта сайта