Мой личный опыт восстановления старых фотографий с помощью нейросетей

Немного о происхождении фотографий. Напомню, что 26 Апреля 1986 года произошла катастрофа на Чернобыльской АЭС.

91f94dfbdf27dc9ea6f0868bf5ccc609.png


Но мало кто знает, что радиоактивное облако распространилось на тысячи километров. К сожалению, это затронуло и деревню моей бабушки недалеко от Гомеля. Жителей эвакуировали далеко не сразу, но когда пришло время уезжать, то фотографии, которые были приклеены на стене пришлось отклеивать варварским способом. Время потрепало эти фотографии, но попробуем восcтановить.

Для примера я взял только две фотографии. На первой, мой двоюродный брат бабушки и какой-то человек на лошади. На второй — мой прадедушка.

Как можно дать вторую жизнь этим фотографиям?

Осторожно, большие фотграфии!

38963932ce2fb7855afcd92a33f422d2.jpg

Есть множество способов реставрировать фотографии.

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

ad394c52b4b87cbe32465aee87ea15f5.jpg

В этой статье я хочу поделиться своим детским опытом, как бесплатно восстановил несколько фотографий.

Сразу условимся, что статья носит чисто ознакомительный характер.

Я лично тестировал на своем ноутбуке 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 

40eaa44abd856201553700823f7c0c77.jpg4221dd6e07a21b93f7f8fb2f4560e800.jpg

После этого запускаем алгоритм от китайской компании GFPGAN 

cd ../GFPGAN
python inference_gfpgan.py -i ../output/BOPBTL/stage_1_restore_output/restored_image -o ../output/GFPGAN/ -v 1.3 -s 2

b1cfdb2dffd4087eff5b8ae6b4ceda50.jpg844c969d6bd77a926f0f96b906ebb4d0.jpg

И в конце запускаем разукрашивание

cd ../AutoDeOldifyLocal/DeOldify/
python RunColorizer.py --input_folder ../../output/GFPGAN/restored_imgs --GPU -1 --output_folder ../../output/DeOldify/ --artistic True
cd ../../

0bd34baf12581d386e761e1ab91a4a06.jpg545f879e44a719f5300b2037f3fa5699.jpg

Все три алгоритма выполнялись примерно 10 минут.

Конечно, алгоритмы работают неидеально, но результаты, лично для меня, любопытные.

cda179898eadc8d1d1401bc0ba6a1369.jpgb9ad466324a06b797789e885f34b0a4f.jpg

Сслыка на репозиторий со скриптами для установки и запуска.

Еще раз ссылка для скачивания видео.

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

© Habrahabr.ru