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 весьма недурно отрисовал брови, а вот с естественной фактурой кожи ожидаемо не справился, ибо аниме судя по названию для других явно задач предназначен.
Проект 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.
Real-ESRGAN, нейросеть для восстановления изображений и видео
- mihas
- Администратор
- Сообщения: 1467
- Зарегистрирован: 18 авг 2004, 16:58
- Откуда: Москва
- Контактная информация:
Еще две натренированные модели
Решил рассмотреть повнимательнее еще две натренированные модели. Надо скачать проект и положить его две модели папками в 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% уменьшения:
И вот из 10% и 25% "спичечных коробков" что вышло.
По моему мнению, модель DF2K совсем плохо тренирована на лицах, не умеет совсем рисовать глаза с оригинала спичечного коробка (хуже только Topaz Gigapixel работает с лицами), но проект Real-ESRGAN и не заточен исключительно на лица. С лицами в разделе Нейросети отдельные другие проекты восстановления лиц отлично работают.
Я попробовал еще шумное видео размером со спичечный коробок обработать в модели models-DF2K_JPEG, но оно осталось шумновато на мой вкус, модель realesrgan-x4plus-anime все же поинтереснее для кино низкого разрешения с сильными шумами.
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% уменьшения:
И вот из 10% и 25% "спичечных коробков" что вышло.
По моему мнению, модель DF2K совсем плохо тренирована на лицах, не умеет совсем рисовать глаза с оригинала спичечного коробка (хуже только Topaz Gigapixel работает с лицами), но проект Real-ESRGAN и не заточен исключительно на лица. С лицами в разделе Нейросети отдельные другие проекты восстановления лиц отлично работают.
Я попробовал еще шумное видео размером со спичечный коробок обработать в модели models-DF2K_JPEG, но оно осталось шумновато на мой вкус, модель realesrgan-x4plus-anime все же поинтереснее для кино низкого разрешения с сильными шумами.
- mihas
- Администратор
- Сообщения: 1467
- Зарегистрирован: 18 авг 2004, 16:58
- Откуда: Москва
- Контактная информация:
Real-ESRGAN, шумный мыльный городской пейзаж
Поскольку Real-ESRGAN не заточен на восстановление лиц, посмотрим на примере старой фотки городского пейзажа низкого разрешения, шумной, мыльной, снятой в 2008 году при вечернем слабом освещении (оригинал с первой недорогой приличной зеркальной камеры Nikon D50 тут).
Я задействовал по очереди все имеющиеся у меня на сегодня 5 натренированных моделей (ссылки на модели в постах выше):
realesr-animevideov3-x4
models-DF2K
models-DF2K_JPEG
realesrgan-x4plus
realesrgan-x4plus-anime
Вот оригинальная фотка небольшого размера, и вот как каждая модель нейросети Real-ESRGAN фотку оптимизировала, тут явно есть из чего выбрать и что может понравиться. Делаю себе эти тестовые фотки на память, чтобы потом при необходимости быстро визуально определить, какая модель мне лучше подойдет по сюжету в реальной работе по предпечатной подготовке изображений.
Я задействовал по очереди все имеющиеся у меня на сегодня 5 натренированных моделей (ссылки на модели в постах выше):
realesr-animevideov3-x4
models-DF2K
models-DF2K_JPEG
realesrgan-x4plus
realesrgan-x4plus-anime
Вот оригинальная фотка небольшого размера, и вот как каждая модель нейросети Real-ESRGAN фотку оптимизировала, тут явно есть из чего выбрать и что может понравиться. Делаю себе эти тестовые фотки на память, чтобы потом при необходимости быстро визуально определить, какая модель мне лучше подойдет по сюжету в реальной работе по предпечатной подготовке изображений.