Mail.ru Group corporate blog
Algorithms
Image processing
Machine learning
Comments 43
+3
Было бы неплохо, если бы результат можно было бы выгрузить, например, в формате Photoshop, где изображение было бы разделено на слои для колоризации. Так можно было бы откорректировать, если результат не совсем тот, что ожидался.
+1
Дублируете слой, ставите верхний в режим color. Нижний обесцвечиваете.
Или ставите инструменту палец режим color если нужно двигать цвет.
+2
В целом результат впечатляет, но только если на фото люди в военной форме, идеально получается если на фото люди по пояс. Но вот если дети или женщины в платьях, то все закрашивается зеленоватым цветом.

+1
Спасибо! Мы обновили модель колоризации, и сейчас картинка стала более насыщенной. Проблемы с зеленоватыми участками все еще есть, будем совершенствоваться.
0
прикольно — выглядит как фильтр призмы)))
интересная штука сети — без человека никак))

ссылку для сервиса загрузки и обработки фото можно?
+6
Картинку, раскрашенную нейросетью, проще всего оказалось определить по цвету «красного» крестика на сумке =)

Тем не менее, очень впечатляет!
+1
Не, проще определить по цвету кожи (например, кисти рук). Нейросеть кожу человека не распознает — хорошо видно на всех прмиерах.
+1
Какая-то любовь к зеленому цвету. Скорее всего особенность обучения на военной форме/ экипировке.
The hat was available in eight colors: Lipstick Red, Tangerine, Flamingo, Canary Yellow, Chartreuse, Blush Pink, Rose Pink and Tan.

image
Оригинальный цвет:
image
+3
А не пробовали натаскать алгоритм отдельно на награды? Там же цвета лент строго определённые и, по идее, должны достаточно просто определятся, потом эту информацию как опорную использовать.
+1
Верно, отдельной сеткой выискивать награды — классифицировать их, и потом фрагмент раскрашивать сектой тренированной именно на эту награду.
В реставрации исторических фотографий — очень важна именно достоверность. Иначе потом будем в сети находить холивары ссылками на неверно раскрашенные фото.
0
И погоны. И детали формы. И затем цвет формы выбирать с оглядкой на перечень найденного
0
Идея отличная, это действительно помогло бы улучшить качество колоризации деталей. Мы отказались от идеи детектировать медали, погоны и другие детали одежды так как не хотели усложнять итоговую модель и процесс разработки.
+1
Морскую форму красит плохо, в частности c гюйзом (воротник матроса) вообще беда.
image
+2
Сеть, насколько я понял, тренирована на белых людях.
А какого-нибудь смуглого таджика она насколько правильно раскрасит?

PS Да, я знаю, что есть белокожие таджики, но есть и с кожей цвета кофейных зёрен.
+1
Попробовал с околограничным значением цвета кожи
Скрытый текст


+1
Немного не по теме, но всё же. Вы пишете, что делали это к 9 мая. Я в конце апреля занялся подготовкой фотографии к празднику. Много часов потратил. Так где же Вы были? Я по нескольку раз в день захожу на главную страницу mail.ru. Но анонса сервиса не видел.
-1
Привет! Никогда не бывает достаточно анонсирования, даже в таком массовом деле. Мы подключили огромные ресурсы (СМИ, внутренние размещения, даже промо в соц. сетях), и множество людей увидели его, но вы в их ряды каким-то образом не попали( Это печаль.

Подписывайтесь на нас в соц сетях (VK, FB, Twitter). А еще лучше поделитесь в комменте, где нужно разместить анонс, чтобы вы его 100% увидели?)
0
Извините, но я просто не пользуюсь соцсетями. Но ежедневно пользуюсь почтой, в том числе через браузер. Неужели этого оказалось не достаточно? При просмотре почты мне же показывают всякие баннеры типа «помогите! спасите!» или вот прямо сейчас информация о новом интерфейсе. Можно было бы на их месте.
0
Приятно, что регулярно пользуетесь.) А интерфейс новый не пробовали еще?
-1
Вот интересно, какой это умник меня отминусовал? И что ему не понравилось в словах, не относящихся к статье и обращённых к совершенно конкретному человеку? Его не учили, что влезать со своим мнением в чужой разговор как минимум не культурно? Вот это и есть поколение Y во всём своём проявлении (это, правда, из другой публикации здесь, на хабре). Не разобрался, увидел незнакомые слова или ещё что и минусанул. Зачем? Сам не знает.
+2
Ну в принципе довольно неплохо но еще очееень далеко до крепкой 8)) Проблема в том что к примеру при использовании фотографий просто сделанных черно белыми он вырезал некоторые детали с фоток которые считал браком XD К примеру на девушке в порванных джинсах он попытался зашить дырки на джинсах XD А там где не смог зашить просто увеличил надорванность.
+1
Не очень хорошо справляется с горизонтальными черно-белыми полосами
Оригинал


Восстановленный

+1
Отличная статья, в которой грамотно разбиты разные этапы обработки изображения. Вдвойне круто, что сервис доступен онлайн. Интересно, военные фотография — это самая сложная категория изображений для восстановления (так как присутствуют разные типы дефектов)? Применимы ли похожие алгоритмы для интро- или экстраполяции медицинских изображений (где тоже, например, возможны вырезанные фрагменты)?
+4
Я бы остановился на удалении дефектов. Погоны с просветами серо-буро-малинового цвета, ленты медалей цвета «какой попался» (обычно красный), цвет формы часто туда же. Слишком уж сложная задача — сделать это всё нормально. Но это может я заклёпочник такой.

Поигрался заодно с фото самолётов с людьми или без ради интереса — обычно всё плохо, конечно, но попалось фото, которое вышло почти отлично.
Было
image

Стало
image
0
Спасибо что поделились :)

Сервис возвращает три фотографии:
1) колоризованную с закрашенными дефектами
2) колоризованный оригинал
3) оригинал с закрашенными дефектами.

Вы можете скачать любой из этих вариантов.
Третья фотография — ровно то, что вам нужно.
0
Ага, я уже разобрался что сам себя запутал, спасибо, только пост не успел отредактировать вовремя. Добавил сервис в закладки, пригодится, спасибо за хорошую штуку.
+1
Было бы классно если при загрузке изображения можно было указать какой-то фрагмент и выбрать для него цвет, чтобы был эталон для раскрашивания, либо сервис в зависимости от затененности того или иного фрагмента предлагал выбор цвета
0
Это хорошая идея, люди работают в этом направлении: richzhang.github.io/ideepcolor

Мы решили сделать наш сервис максимально простым для пользователя, поэтому не добавляли возможность выбора цвета.
+1
Не помню где читал, что когда мало фоток для обучения, каждую фотографию скармливают по многу раз, каждый раз поворачивая на, скажем, один градус, тогда будет на 360 фотографий больше. Природа сверточных сетей такова, что для них это иногда хорошо срабатывает. В вашем случае надо поворачивать фото и сделаную вручную разметку дефектов.
0
Вы правы, это помогло поднять нам качество. Мы аугментировали данные поворотами, случайными отражениями, вырезанием и масштабированием частей изображения.
+1
жаль что дети сейчас не смотрят хронику чернобелую
возможно что совместно с культура рф вам удастся оцифровать союзкиножурнал за 1941-45
и сделать его цветным
пытался посадить родственицу 15 л за хронику
а ей скучно
худ фильмы к сожалению именно худ фильмы

0
Если предположить, что соотношение яркостей объекта на ЧБ фото несет хоть какую-то информацию о цвете, то можно предложить расцвечивание фото в два этапа.
На первом этапе выделять объекты чей цвет более-менее достоверно возможно установить по форме — участки кожи человека, небо/море/облака, растительность, а в контексте данного примера еще и цвет знаков различия и наград. Далее востанавливаем цвет только этих объектов.
На втором этапе уже подаем на вход два снимка — исходный чернобелый и исходный с востановленными «достоверными цветами», пытаясь по востановленным цветам и соотношениям яркости угадать остальные недостающие цвета.

Соответственно это должны быть N+1 сетей натренированных на специальных наборах данных, которые вобщем-то можно получить из наборов цветных фото.

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

Если по частям:
1) Подход, про который вы рассказываете, называется бустингом. Мы берем N базовых алгоритмов, и учим каждый следующий алгоритм исправлять ошибки предыдущего. Я не встречал в современных работах по колоризации такого подхода. Думаю, это связано с тем, что сеть проще обучить одну большую сеть сразу предсказывать цвета всех пикселей чем учить много маленьких сетей исправлять ошибки друг друга. Для лучшего визуального качества сейчас часто используют GANы, которые тяжело учить и так, поэтому дополнительно усложнять архитектуру генератора не хочется.

Вторая сложность реализации вашей идеи — «это должны быть N+1 сетей натренированных на специальных наборах данных, которые вобщем-то можно получить из наборов цветных фото» — непонятно по каким критериям отбирать наборы цветных фотографий.

0
То ли я плохо объяснил, то ли не до конца понял ответ…
Я не говорил об исправлении ошибок, я говорил о опоре на данные полученные от других сетей.
Вот пример — допустим нам надо красить преимущественно фото сделанные на улице на которых практически всегда есть небо. Тогда мы берем набор цветных фото (набор 1) и обесцвечиваем на них все кроме неба (набор 2), и обесцвечиваем вообще все (набор 3).
Сеть А, мы на наборах 3 и 2 обучаем узнавать на фото небо и раскрашивать его. Оно всегда будет иметь преимущественно синий цвет, очевидно.
Сеть Б, мы уже обучаем на всех 3 наборах где входные будут наборы 2 и 3, а выходной набор 1.
Таким образом сеть А будет выполнять простую достаточно задачу — раскрашивать только один элемент фото с цветом которого тяжело ошибиться. В то же время сеть Б будет опираться как на ЧБ фото, так и на достоверно известный цвет и сможет использовать отношения яркостей в поисках цвета.

Применительно к данной задаче можно бы было натренировать N сетей А, работающих с известными им наградами и элементами формы и одну сеть Б востанавливающую недостающие цвета.
0
Понял :)

Я бы реализовывал вашу идею так: взял бы какой-нибудь детектор на много-много классов, искал бы объекты и для каждого из них учил бы отдельную сеть. Но мне кажется, что такой подход работал бы не сильно лучше одной большой сети.

Продакшн система с вашим решением требовала бы слишком много мощностей, поэтому я бы не стал такое реализовывать.
+1
отличный результат! спасибо вам.

будет ли сервис доступен «всегда»? или может вы выпустите standalone приложение?

0
Спасибо за идею, мы подумаем над приложением.
В течение года сервисом точно можно будет пользоваться.
Only those users with full accounts are able to leave comments. , please.