
Пару недель назад на 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
Для сервиса, как верно заметили пользователи, самым сложным заданием является реализовать плавный переход между отдельными кадрами. Если поставить видео на паузу, часто удается «поймать» кадр с почти идеальными цветами. Но вот осуществить плавный переход между кадрами — это отдельная сложная задача.
Комментарии (23)
Beholder
28.04.2016 22:42+3Да хватит уже врать, никакой это не ИИ. Ну да, есть там какая-нибудь нейронная сетка, которая пытается что-то угадать по десяткам или сотням заранее загруженных образцов. Причём получается у неё это так себе. ИИ, если был бы, рассуждал логически, что во что покрасить.
Kanut79
29.04.2016 09:50+13Это так называемый «слабый ИИ», то есть формально всё верно :)
Кроме того как бы нам не хотелось верить во что-то другое, но наш мозг это грубо говоря тоже в общем-то всего лишь «нейронная сетка, которая пытается что-то угадать по десяткам или сотням заранее загруженных образцов». :)QWhisper
29.04.2016 11:58+3Это кстати хорошо заметно, когда взаимодействуешь с очень невнятно говорящим человеком. По мере набора информации, качество распознавания речи возрастает. :)
ra3vdx
29.04.2016 20:27Ключевое свойство любой нервной системы (даже состоящей всего из трёх нейронов) — обучаемость.
Именно поэтому раскрашенная чёрно-белая «классика» зачастую вызывает негативные эмоции — несоответствие индивидуального воображаемого образа и того, что было задумано режиссёром вызывает некий диссонанс.
И действительно, как Вы заметили, всё зависит от количества обработанной информации. В качестве примера приведу эпизод из детства — современные (по тем временам) фильмы показывали по польским каналам и мы, жители приграничного района, смотрели именно их (ни интернета, ни VHS тогда не было). Надо ли говорить, что польским языком мы владели на очень приличном уровне?
KvanTTT
29.04.2016 01:50Для видео, мне кажется, трехмерные сверточные сети очень неплохо бы себя проявили, потому что видео как раз можно представить в виде трехмерного параллелепипеда.
Meklon
29.04.2016 18:19+1Я не могу представить видео как трёхмерный параллелепипед. Вы бы еще музыку как тессеракт попросили вообразить ((
Sadler
29.04.2016 18:40На самом деле в общем случае (безотносительно восстановления цвета) вход для видео будет даже четырёхмерным, т.к. придётся подсовывать ещё и 3 цветовых канала (RGB/HSV/whatever), чтобы получить дополнительные данные. В частном же случае трёхмерное представление вполне оправдано.
Представить трёхмерную или четырёхмерную модель можно как видеоплёнку, нарезанную на кадры, которые затем сложены стопкой в порядке следования. В каждый момент времени мы будем рассматривать определённое подмножество кадров в стопке, а определённые участки нейросети будут реагировать на определённые участки или объекты в рамках этого подмножества, а затем воссоздавать недостающую информацию.
Drakoninarius
29.04.2016 10:54а в чем принципиальная разница между оцвечиванием изображений и видео? учитывая что видео, по сути, последовательность изображений.
Kanut79
29.04.2016 10:57Ну если они сначала разбивают видео на кадры, потом расцвечивают, а потом снова делают из этого видео, то разницы никакой :)
Drakoninarius
29.04.2016 11:11-2Врятли они это делают как-то иначе, емнип все ПО для монтажа\постобработки видео при рендере обрабатывает видео именно покадрово.
Sadler
29.04.2016 16:42+5Как раз следует загонять в нейросеть последовательность кадров, а не один кадр, это сильно снижает ошибку. Говорю потому, что сам активно занимаюсь нейросетями, особенно их приложением к графике и видео. Потому работа в этой статье в значительной мере проведена халтурно: при корректной реализации проблемы «плавного перехода между кадрами» либо не существовало бы вовсе, либо это бы менее бросалось в глаза.
Artima
04.05.2016 12:42Видео — не всегда последовательность четких изображений. Там может быть куча всяких шлейфов.
stepik777
29.04.2016 20:08Уже есть несколько нейросетей для колоризации изображений. Какой-то чувак с помощью ffmpeg разбил видео на кадры, пропустил через одну из этих нейросетей и собрал обратно, и это теперь новость? Вот если бы кто-нибудь сделал нейросеть, изначально ориентированную на видео, это другое дело, она могла бы использовать информацию сразу с нескольких кадров, чтобы определить в какой цвет нужно красить тот или иной объект.
QtRoS
30.04.2016 23:25+1Не хочется обижать авторов, но заявление слишком громкое. Пока фактически достигнут уровень «Растительность окрашена в зеленый цвет».
tormozedison
Раньше, чтобы «оцветнить» чёрно-белое изображение на экране телевизора, использовали плёнку-светофильтр с плавным переходом цветов по вертикали. Теперь, наоборот, искусственно омонохромливают изображение на экранах устройств с iOS и Android штатными средствами этих ОС.
Maxmaxmaximus
Нет.