Real-ESRGAN, нейросеть для восстановления изображений и видео

машинное обучение в обработке фото и видео
Ответить
Аватара пользователя
mihas
Администратор
Сообщения: 1385
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Real-ESRGAN, нейросеть для восстановления изображений и видео

Сообщение mihas »

Real-ESRGAN - одна из реализаций технологии GAN (generative adversarial networks или генеративно-состязательных сетей) улучшения качества картинки. Работает как с одиночными картинками, так и с сериями кадров.

Релиз проекта Real-ESRGAN на питоне
Скомпилированый исполняемый файл Real-ESRGAN-ncnn-vulkan
Три претренированные модели - положить в каталог realesrgan в подкаталог models
Еще две натренированные модели тут в каталоге models (качать весь проект)

Поскольку у проекта есть скомпилированный релиз для трех операционок - проще запускать его просто из командной строки, нежели запускать на питоне. Скачайте проект и модели к нему. Я запускал из командной строки, поиском в Windows находим cmd и запускаем, для трех моделей по очереди каждую из трех строк:

G:\realesrgan\realesrgan-ncnn-vulkan.exe -i G:\realesrgan\mackenzie -o G:\realesrgan\output -n realesr-animevideov3-x4 -s 4 -g 1 -f png
G:\realesrgan\realesrgan-ncnn-vulkan.exe -i G:\realesrgan\mackenzie -o G:\realesrgan\output -n realesrgan-x4plus -s 4 -g 1 -f png
G:\realesrgan\realesrgan-ncnn-vulkan.exe -i G:\realesrgan\mackenzie -o G:\realesrgan\output -n realesrgan-x4plus-anime -s 4 -g 1 -f png


где -i -o ключи путей к инпут и оутпут, -s 4 - четырехратное увеличение, -g 1 - номер GPU в системе (у меня под нулем идет Intel и под 1 более производительный Nvidia, в некоторых программах минус 1 говорит о том, что считать вообще на CPU), -f формат файла на выходе. Я обычно создаю нейросетью файлы png без потерь, и потом уже по необходимости для публикации делаю оптимальную не сильную компрессию JPG в хорошо развитых для этого программах - FastStone Image Viewer или XnViewMP. Файлы png с максимальной компрессией без потерь готовлю к публикации в Pingo - жмет без потерь компактнее и быстрее всех. Разные сжатия для публикации в сети обсуждались немного здесь.

Получил такие результаты в Real-ESRGAN, посмотрите, это различные алгоритмы отработали, не все удачно, но видно, что ИИ поработал над имиджем. Например последний x4plus-anime весьма недурно отрисовал брови, а вот с естественной фактурой кожи ожидаемо не справился, ибо аниме судя по названию для других явно задач предназначен.
оригинальный файл
оригинальный файл
• 112.5 КБ • 1560 просмотров
алгоритм realesr-animevideov3-x4
алгоритм realesr-animevideov3-x4
• 1.07 МБ • 1560 просмотров
алгоритм realesrgan-x4plus
алгоритм realesrgan-x4plus
• 1.39 МБ • 1560 просмотров
алгоритм realesrgan-x4plus-anime
алгоритм realesrgan-x4plus-anime
• 1.13 МБ • 1560 просмотров
Проект Real-ESRGAN позволяет запускать обработку серии изображений, например кадров ролика, достаточно просто указать путь к папке с файлами на входе и на выходе. Чтобы разобрать ролик на кадры и потом собрать кадры обратно в видео, удобно использовать ffmpeg. Для превращения ролика в серию кадров используйте команду примерно такую в командной строке:

ffmpeg -i input.mp4 %05d.png

Только пропишите путь к ffmpeg, к файлу input и каталогу для png. Имя %05d по маске означает, что будет создана серия картинок с пятизначным числом начиная с 00001.png. Запускать обработку имени %05d лучше напрямую из командной строки, а не из файла bat или cmd: символ % батником по-своему интерпретируется. Но если хотите именно из bat или cmd - то два символа %% нужно в маске.

Чтобы запаковать готовый результат из обработанных кадров в mp4 используйте следующую команду:

ffmpeg.exe -r 20 -i "%05d.png" -c:v libx264 -r 30 -pix_fmt yuv420p -b:v 3200k -maxrate:v 4800k -minrate:v 1600k -bufsize:v 1920k video.mp4

Не забудьте прописать пути к исполняемому файлу и к файлам для обработки, с путями будет как-то так выглядеть:

C:\ffmpeg-master-latest-win64-gpl\bin\ffmpeg.exe -r 20 -i "G:\realesrgan\output\%05d.png" -c:v libx264 -r 30 -pix_fmt yuv420p -b:v 3200k -maxrate:v 4800k -minrate:v 1600k -bufsize:v 1920k G:\realesrgan\output\video.mp4

В документации по ffmpeg найти трудно, но лучше прямо использовать указание на систему цвета файла -pix_fmt yuv420p, у меня без этой отметки программа собирала фильм непонятно как.

Пока я не нашел в проекте Real-ESRGAN подготовку имиджей к сборке ролика для устранения дрожания кадров, в каких-то других проектах точно встречал, напишу позже где видел такую подготовку кадров к сборке, или вы напишите мне.

Пока мне показалось, что старое видео низкого разрешения с сильными шумами лучше всего восстанавливает модель realesrgan-x4plus-anime.

Real-ESRGAN не заточен специально на лицах, но проекты с особым вниманием к лицам мы рассмотрим в ближайшее время.

Потренировать модели самостоятельно для проекта Real-ESRGAN можно в дружественной программе BasicSR. Потребуются значительные вычислительные ресурсы вашего GPU.
Аватара пользователя
mihas
Администратор
Сообщения: 1385
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Еще две натренированные модели

Сообщение mihas »

Решил рассмотреть повнимательнее еще две натренированные модели. Надо скачать проект и положить его две модели папками в models нашего исполняемого проекта. Я когда эти две папки моделей положил внутрь нашей папки models - такие команды выполнил для тестирования:

G:\realesrgan\realesrgan-ncnn-vulkan.exe -i G:\realesrgan\mackenzie -o G:\realesrgan\outputDF2K -n models-DF2K\x4 -s 4 -g 1 -f png
G:\realesrgan\realesrgan-ncnn-vulkan.exe -i G:\realesrgan\mackenzie -o G:\realesrgan\outputDF2K_JPEG -n models-DF2K_JPEG\x4 -s 4 -g 1 -f png


Пытался улучшить и так неплохую оригинальную картинку из первого поста, и попробовал улучшить ее 10% и 25% уменьшения:
Результат обработки оригинала с моделью models-DF2K_JPEG
Результат обработки оригинала с моделью models-DF2K_JPEG
• 1.41 МБ • 1486 просмотров

И вот из 10% и 25% "спичечных коробков" что вышло.
Результат обработки 10% маленькой картинки с моделью models-DF2K
Результат обработки 10% маленькой картинки с моделью models-DF2K
• 371.81 КБ • 1486 просмотров
Результат обработки 10% маленькой картинки с моделью models-DF2K_JPEG
Результат обработки 10% маленькой картинки с моделью models-DF2K_JPEG
• 338.88 КБ • 1486 просмотров
Результат обработки 25% маленькой картинки с моделью models-DF2K
Результат обработки 25% маленькой картинки с моделью models-DF2K
• 426.81 КБ • 1486 просмотров
Результат обработки 25% маленькой картинки с моделью models-DF2K_JPEG
Результат обработки 25% маленькой картинки с моделью models-DF2K_JPEG
• 483.29 КБ • 1486 просмотров
По моему мнению, модель DF2K совсем плохо тренирована на лицах, не умеет совсем рисовать глаза с оригинала спичечного коробка (хуже только Topaz Gigapixel работает с лицами), но проект Real-ESRGAN и не заточен исключительно на лица. С лицами в разделе Нейросети отдельные другие проекты восстановления лиц отлично работают.
Я попробовал еще шумное видео размером со спичечный коробок обработать в модели models-DF2K_JPEG, но оно осталось шумновато на мой вкус, модель realesrgan-x4plus-anime все же поинтереснее для кино низкого разрешения с сильными шумами.
Загрузка GPU RTX 3060 в процессе работы над кадрами видео
Загрузка GPU RTX 3060 в процессе работы над кадрами видео
• 95.25 КБ • 1486 просмотров
Аватара пользователя
mihas
Администратор
Сообщения: 1385
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Real-ESRGAN, шумный мыльный городской пейзаж

Сообщение mihas »

Поскольку Real-ESRGAN не заточен на восстановление лиц, посмотрим на примере старой фотки городского пейзажа низкого разрешения, шумной, мыльной, снятой в 2008 году при вечернем слабом освещении (оригинал с первой недорогой приличной зеркальной камеры Nikon D50 тут).
Я задействовал по очереди все имеющиеся у меня на сегодня 5 натренированных моделей (ссылки на модели в постах выше):

realesr-animevideov3-x4
models-DF2K
models-DF2K_JPEG
realesrgan-x4plus
realesrgan-x4plus-anime


Вот оригинальная фотка небольшого размера, и вот как каждая модель нейросети Real-ESRGAN фотку оптимизировала, тут явно есть из чего выбрать и что может понравиться. Делаю себе эти тестовые фотки на память, чтобы потом при необходимости быстро визуально определить, какая модель мне лучше подойдет по сюжету в реальной работе по предпечатной подготовке изображений.
Оригинал 800 пикселей
Оригинал 800 пикселей
• 761.98 КБ • 1471 просмотр
Модель realesr-animevideov3-x4
Модель realesr-animevideov3-x4
• 685.84 КБ • 1471 просмотр
Модель DF2K
Модель DF2K
• 1.03 МБ • 1471 просмотр
Модель DF2K_JPEG
Модель DF2K_JPEG
• 1.23 МБ • 1471 просмотр
Модель realesrgan-x4plus
Модель realesrgan-x4plus
• 1 МБ • 1471 просмотр
Модель realesrgan-x4plus-anime
Модель realesrgan-x4plus-anime
• 916.7 КБ • 1471 просмотр
Ответить

Вернуться в «Нейросети»