Пару недель назад на Geektimes публиковался материал о том, что нейронные сети научились окрашивать черное-белые фото. Нейронные сети давно уже умеют многое, не только работать с фотографиями. Но это, вероятно, одна из наиболее показательных демонстраций возможностей сетей. Еще более показательной является «кастомизация изображений» ИИ DeepDream от Google, хотя получаемые изображения являются несколько… психоделическими, скажем так.
Теперь же нейронную сеть научили окрашивать черно-белые фильмы. Об этом сообщил пользователь mar_cnu. Соответствующий инструмент по расцвечиванию черно-белых фильмов создан именно его стараниями. И хотя результат нельзя назвать идеальным, все довольно неплохо.
В качестве исходного материала он выбрал трейлер старого французского фильма от 1964 года. Вот исходный фрагмент:
Разработчик объяснил свой выбор тем, что в трейлере есть все, что нужно — джунгли, река, люди, дома, дороги. Вот, что получилось после обработки видео:
Как видим, результат не идеальный, как и говорилось выше. Но одной из причин этого может быть само исходное видео. Оно нечеткое, как и все фильмы тех времен, зачастую на «картинке» все сливается, поэтому логично, что и у программы возникают затруднения.
Сделано все это было следующим образом:
1. Найдено исходное видео;
2. Исходник конвертируется при помощи вот этого сервиса;
3. Запускаем скрипт
for file in video/*
do
echo «$file»
th colorize.lua «$file» «color-${file%.jpg}.png»
done
4. ffmpeg -i «color-frame%04d.png» -c:v libx264 colorvideo.mp4
5. ffmpeg -i blackandwhitevideo.webm audio.mp3
6. 6) ffmpeg -i colorvideo.mp4 -i audio.mp3 -c:v libx264 -c:a copy -strict
Для сервиса, как верно заметили пользователи, самым сложным заданием является реализовать плавный переход между отдельными кадрами. Если поставить видео на паузу, часто удается «поймать» кадр с почти идеальными цветами. Но вот осуществить плавный переход между кадрами — это отдельная сложная задача.