Еще раз про цвет из чб

Недавно я писал про технологию восстановления цвета из черно-белых изображений (https://blog.tema.ru/2121586.html). Хотя все было похоже на шарлатанство (и обычную колоризацию в фотошопе), мне хотелось, чтобы технология оказалась правдой.

Многие читатели, знакомые с моим материалистическим и скептическим подходом, высказали в личной переписке ряд замечаний в духе "не охуел ли ты, Темыч, рекламировать всякую шнягу?". В качестве убедительного примера они приводили цитату с сайте Ильи Смирнова: "мы восстанавливаем цвет, используя законы физики". Мол, если бы у Ильи было описание этих законов, он бы обязательно намекнул, о чем речь.

А потом обнаружилась очень любопытная научная работа с описанием алгоритмов колоризации и восстановления цвета из чб - http://www.cs.cityu.edu.hk/~qiyang/publications/iccv-15.pdf. Я в этот момент как раз переписывался со своим братом Алексеем на тему жульничества метода Смирнова. И мой брат выдал рецензию, которую я хочу привести целиком, чтобы закрыть дискуссию:

Ну, а это - нормальная статья нормальных людей (главный, по-моему, Dr. Yang, Qing-Xiong - http://www.cs.cityu.edu.hk/~qiyang/). Только у них страницы дальше первой не пронумерованы.
На 5й странице наши китайцы соревнуются с другими китайцами в раскрашивании храма Василия Блаженного.
Делается это так: в каждом пикселе черно-белой картинки вычисляется 128 чисел, потом по ним находятся 2 числа (U,V), описывающих цвет. Получаем Y,U,V, искомая картинка дала Y.
Функцию, которая из 128 чисел дает 2, мы тренируем при помощи нейронной сети на 2688 цветных фотографиях, в которых цвет, а стало быть ответ на задаваемый вопрос, известен.
128 чисел в каждом пикселе вычисляются так:
49 чисел -- кусочек чб картинки 7 на 7 вокруг этого пикселя, называется patch.
32 числа -- DAISY -- это алгоритм 2008 года, изначально придуманный для стерео вот этими людьми:
Engin Tola, Vincent Lepetit, Pascal Fua
(http://cvlab.epfl.ch/software/daisy).
DAISY не сокращение, хоть и пишется прописными. Просто алгоритм собирает информацию из области данного пикселя, по форме напоминающей одуванчик.
47 чисел -- алгоритм Semantic Segmentation (arXiv:1411.4038), опубликованный в марте 2015 года. Jonathan Lonf, Evan Shelhamer -- студенты, Trevor Darrell -- профессор (http://www.eecs.berkeley.edu/~trevor/).
Алгоритм для данного пикселя говорит, насколько его область соответствует разным семантическим категориям (трава, машина, лицо, и.т.д)
Получив Y,U,V, удаляем цветной шум (он хорошо виден на небе в картинке (с)+DAISY на 5 странице). Этот шаг, "Chrominance Refinement", использует алгоритм Joint Bilateral Filter из "Digital photography with flash and no-flash image pairs" (http://research.microsoft.com/en-us/um/redmond/projects/flashnoflash/).
Один из соавторов -- Хугуус Хоппе, которого я знал 19 лет назад, занимаясь тогда триангуляциями.
Название статьи "deep colorization" получается из "deep neural networks" (т.е. multi-layer, more than one layer between input and output). Это та самая функция, которая из 128 чисел даёт 2. Это, конечно, суп, сваренный из самых разных ингредиентов. Ни один из 4 основных примененных алгоритмов не принадлежит непосредственно авторам. Они, правда, придумали использовать именно эти четыре из тысяч имеющихся.
На самом деле, иначе и быть не могло. Проблема раскрашивания не однозначна, и в общем случае не решается даже искуственным интеллектом (однородное серое поле могло быть любого цвета). Ребята молодцы и придумали кучу эвристик.
Глубина проделанной работы впечатляет: 3 исследователя первого уровня, 15 второго уровня, хуй знает сколько третьего. И все в открытую.
А

Так что все возможно. Главное - быть на правильной стороне.

Сверху - то, что было скормлено алгоритму, в центре результат раскраски, снизу - настоящее цветное изображение.

Жду, когда появится веб-сервис, выдающий цвет в ответ на загруженную чб-фотку. Мне есть, что ему подсунуть.