Немного о происхождении фотографий. Напомню, что 26 Апреля 1986 года произошла катастрофа на Чернобыльской АЭС.
Но мало кто знает, что радиоактивное облако распространилось на тысячи километров. К сожалению, это затронуло и деревню моей бабушки недалеко от Гомеля. Жителей эвакуировали далеко не сразу, но когда пришло время уезжать, то фотографии, которые были приклеены на стене пришлось отклеивать варварским способом. Время потрепало эти фотографии, но попробуем восcтановить.
Для примера я взял только две фотографии. На первой, мой двоюродный брат бабушки и какой-то человек на лошади. На второй — мой прадедушка.
Как можно дать вторую жизнь этим фотографиям?
Осторожно, большие фотографии!
Есть множество способов восстановить потрёпанные фотографии.
Можно сделать это вручную в любом удобном графическом редакторе. Можно выбрать онлайн сервисы для восстановления, но всегда есть ограничения. Я же решил найти несколько инструментов на основе нейронных сетей, которые можно запустить на домашнем ПК.
В этой статье я хочу поделиться своим детским опытом, как бесплатно восстановил несколько фотографий.
Сразу условимся, что статья носит чисто ознакомительный характер.
Я лично тестировал на своем ноутбуке 7 летней давности:
i7-5700HQ
16 ГБ оперативной памяти
SSD диск
Опционально можно использовать видео карту NVIDIA, но моя GTX960M устарела, и я её не использовал. Для запуска с видеокартой в каждом скрипте есть опция GPU.
Windows 10/11
На мой взгляд проще всего это сделать с помощью подсистемы Linux в Windows 10 или 11.
1. Установка
Для упрощения записал видео инструкцию.
Специально для тестов я написал небольшой скрипт
Открываем терминал в Ubuntu и вводим
git clone https://github.com/SergeiSOficial/AiPhoto.git
cd AiPhoto
sudo chmod +x *.sh
Далее запускаем установку
./setup.sh
Во время установки откроется папка с проектом. Начальные фотографии складываем в input, в папке output будем искать результаты. Важно, что файлы должны быть не слишком большими или иметь достаточный объем оперативной памяти.
На моем ноутбуке с интернетом 30 Мбит/с вся установка заняла примерно 30 минут.
2.Запуск
Почему алгоритма три?
Bringing Old Photo Back to Life неплохо убирает трещины, но недостаточно хорошо восстанавливает лица. GFPGAN хорошо справляется с людьми, но требует чистую фотографию. DeOldify хорошо разукрашивает.
Запускаем алгоритм от компании Майкрософт
cd AutoDeOldifyLocal/DeOldify/
conda activate deoldify
cd ../../Bringing-Old-Photos-Back-to-Life
python run.py --input_folder ../input --output_folder ../output/BOPBTL/ --GPU -1 --with_scratch --HR
После этого запускаем алгоритм от китайской компании GFPGAN
cd ../GFPGAN
python inference_gfpgan.py -i ../output/BOPBTL/stage_1_restore_output/restored_image -o ../output/GFPGAN/ -v 1.3 -s 2
И в конце запускаем разукрашивание
cd ../AutoDeOldifyLocal/DeOldify/
python RunColorizer.py --input_folder ../../output/GFPGAN/restored_imgs --GPU -1 --output_folder ../../output/DeOldify/ --artistic True
cd ../../
Все три алгоритма выполнялись примерно 10 минут.
Конечно, алгоритмы работают неидеально, но результаты, лично для меня, любопытные.
Ссылка на репозиторий со скриптами для установки и запуска.
Еще раз ссылка для скачивания видео.
Надеюсь, статья будет полезна. Но в любом случае оставляйте комментарии.