Одно из таких изображений (попробовать сделать собственное можно здесь)
Но нейронные сети могут работать и в более спокойном режиме. Например, делать цветными черно-белые снимки. Для того, чтобы научить систему это делать, исследователи обучают ее, демонстрируя большое количество различных фотографий. Нейронная сеть выбирает с цветных снимков те объекты, что схожи с объектами на черно-белых снимках, и разукрашивает последние. Сейчас такой проект разрабатывается исследователями из Калифорнийского университета в Беркли.
По результатам работы в рамках проекта опубликована статья Colorful Image Colorization (PDF). Далеко не все «окрашенные» снимки можно назвать удачными, но некоторые — просто идеальны. Алгоритм системы, разработанной исследователями, работает с рядом обычных правил (например, небо — голубое, трава — зеленая и т.п.), плюс эти алгоритмы прорабатывают множество схожих фото, чтобы получить информацию о точном цвете нужных объектов.
Цветные снимки показывались добровольцам, которые пытались угадать, какие снимки были изначально черно-белыми, а затем их сделали цветными, а какие — изначально цветными. Около 20% расцвеченных снимков испытуемые посчитали изначально цветными. Интересно, что сети сложно раскрасить, например, зеленый овощ на белой тарелке, или оставить снежно белой цаплю определенного вида.
Исходники алгоритма, документацию и остальные наработки можно найти на Github.
Сейчас нейронные сети не просто разукрашивают фото, но и генерируют лица людей и интерьеры. Так, команда исследователей из компании Indico и Facebook создала нейронную сеть, способную «придумывать» реалистичные изображения. Кстати, об эволюции нейронных сетей можно почитать здесь.
Комментарии (69)
Dolbe
04.04.2016 13:42Интересно, насколько близко к оригиналу будут окрашены черно-белые снимки, изначально полученные из цветных…
calx
04.04.2016 14:28Скорее всего, все использованные черно-белые снимки получены из цветных.
facepalmLite
04.04.2016 14:38В оригинальной статье есть несколько примеров известных, изначально чёрно-белых фотографий раскрашенных этой нейросетью.
calx
04.04.2016 14:40+1Но при обучении-то всё равно использовались изначально цветные, иначе какой смысл...
Vjatcheslav3345
04.04.2016 13:42У меня не получилось нормально окрасить фотографию Алисы Лидделл из Википедии.
aydahar
04.04.2016 13:43Блин, классно же!
Где-нибудь есть готовый сервис/программа куда можно загружать фото?FError
04.04.2016 14:11-4А в чем "классность"?
То что алгоритм работает и это круто или реально очень полезное применение, можно будет фото бабушки расцветить и как бы будет цветное фото (только зачем?).
Или в дальнейшем можно будет передавать скажем ч/б изображение в некоторых случаях и на принимающей стороне раскрашивать для экономии канала? Но для того другие алгоритмы применимее наверное?
В чем все же практическое применение?DrZlodberg
04.04.2016 16:05Кстати да, если она может почти идеально восстанавливать цвет на изначально чб-изображениях, то не сможет ли она восстанавливать его абсолютно идеально, если туда изначально добавить какой-то минимум информации о цвете и сжимать только чб-часть?
А ещё не получится ли с помощью неё избавиться от матрицы Байера в фотоаппарате и использовать его полное разрешение?
Добавить только какую-нибудь матрицу низкого разрешения, которая даёт общее представление о цвете и восстанавливать остальное по хайрезу.Sadler
04.04.2016 17:23А ещё вдобавок корректно очертить границы объектов с указанием семантики, чтобы алгоритму не приходилось прикидывать, что он видит и какого это цвета. Тогда должно получиться весьма качественно
Alexey2005
05.04.2016 00:38Ну вот вам пример практического применения. Берём практически любой современный фильм. Думаю, многие заметили, что 95% того, что сейчас снимается, на самом деле чёрно-белое и лишь немного подсинивается или желтится ползунком Hue.
И раскрашиваем! А если ещё разработают нейросеть для восстановления фона в тех случаях, когда 99% действия происходит чёрной-чёрной ночью в тёмном-тёмном подземелье, из-за чего на всём кадре видны лишь лица и факелы, то это будет прямо-таки возрождение кинематографа, который сейчас просто поражает редкостным нежеланием работать со светом и цветом.
Demonos
04.04.2016 15:18Ради интереса скормил программе пару фоток Лондона викторианской эпохи. Результат получился довольно забавным. Похоже на коллажи, которые время от времени выкладывают на steampunker.
/>
Demonos
04.04.2016 16:04Чарли Чаплин там, кстати, присутствует
https://m.youtube.com/watch?v=_MJU8VK2PI4
Camel
04.04.2016 16:04плюс эти алгоритмы прорабатывают множество схожих фото, чтобы получить информацию о точном цвете нужных объектов.
Далеко не всегда существуют эти самые «схожие фото». Например фотографию меня в шапке, которую связала моя мама, не получится правильно раскрасить, потому что шапка существует в единственном экземпляре, цветных фотографий не существует. Но всё равно очень круто. Можно подсунуть в качестве образца фотографию шапки любого цвета и получить желаемый результат.Ra-Jah
04.04.2016 16:14+1«Еще раз про цвет из чб» — http://tema.livejournal.com/2129837.html
Camel
04.04.2016 17:31В цитате написано что-то похожее на правду, но если перейти на статью про фотографию в комбинезоне: "единственные несколько сине-зеленых пикселей я нашел на комбинезоне." Что это за бред написан? Почему именно сине-зелёные пиксели? Почему не красно-розовые, светло-коричневые, голубые, фиолетовые? Если я предоставлю тем людям чёрно-белую фотографию незнакомого (и им, и нейросети) объекта, то как они определят какие пиксели сине-зелёные, а какие нет? Никак.
Раскрасить правдоподобно можно, достоверно — не всегда.Ra-Jah
05.04.2016 08:27Я не совсем это имел ввиду, mia culpa. В комментариях есть неоднократное утверждение, о том что восстановить никак нельзя, кроме как логическими рассуждениями. Иными словами, если ваша мама специально выбирала необычные цвета, раскрасить достоверно нет никаких шансов. Но возможно о цветах можно догадаться по другим предметам. Перебрать базу похожих шапок, может даже базу тканей или фасонов.
Sadler
04.04.2016 17:29Если следовать Вашей логике, то никого нельзя раскрасить, т.к. двух одинаковых людей не существует, даже если они близнецы. Задача программы — не найти именно те цвета, которые были в оригинале, а заставить зрителя поверить, что цвета на выходе алгоритма истинные.
Camel
04.04.2016 17:39Вы неверно трактуете мою логику. Люди все более или менее похожи. У всех, скажем так, коренных европейцев цвет кожи розово-коричневый. И вот цвета вязанных шапочек самые разнообразные. Если шапочка выпускалась серийно, но можно найти похожее изображение в материалах по которым обучалась нейросеть. Грубо говоря логика такая: "Так, это похоже на спортивную шапочку Adidas из коллекции 1988 года, они были чёрные, белые, тёмно-синие и розовые. По насыщенности оттенка эта больше всего похожа на тёмно синюю — красим всю шапку в тёмно-синий." Но если шапка изготовлена в единственном экземпляре, если нет её цветных фотографий, то любая догадка о её цвете не может считаться более верной чем любая другая. Шапка с одинаковым успехом может быть как розовой, так и голубой.
И дело не только в шапках. Если у вас есть ч.б. фотография с красочного театрального представления, карнавала или ещё чего-то подобного, то вы не знаете в какие точно цвета всё раскрашивать, если только у вас нет дополнительных описаний от очевидцев.Sadler
04.04.2016 18:05Перечитайте мой предыдущий ответ. Как я уже сказал, сети абсолютно наплевать, Adidas это или что-то ещё. Нет там никакой БД, в которой ищется Adidas 1988 года. Круто уже, если она может понять, что это просто шапка, а шапки обычно цвета N, а полосатые шапки — цвета N в полоску K. Нет задачи получить тот же набор цветов, потому все Ваши умозаключения относительно знания точного цвета не имеют смысла.
Camel
05.04.2016 13:34Ещё раз:
раскрасить правдоподобно можно, достоверно — не всегда.
Вы пытаетесь убедить меня ровно в том же в чём я убеждаю вас. "Нет задачи получить тот же набор цветов" равносильно "раскрасить правдоподобно, без гарантии достоверности".Sadler
05.04.2016 15:52ОК, согласен. В любом случае, надо мне будет почитать о топологии этого дела. Интересно было бы собрать что-то в таком роде самостоятельно.
ScoutUa
04.04.2016 17:37Наконец то заветная кнопка заказчика «сделать красиво» будет скоро доступна :D
Alexey2005
05.04.2016 00:43+2Боюсь, спроса на такую кнопку не будет. Народу нужна совсем другая кнопка — "сделать редкостный вырвиглазный шлак, от которого заказчик будет просто в диком восторге".
websurfer
04.04.2016 19:10Может кто нибудь объяснить «на пальцах», что такое этот ИИ и как он работает?
DrReiz
04.04.2016 20:05Нейронная сеть для каждой структуры и насыщенности черно-белых пикселей запоминает их исходный цвет.
Грубо говоря, НС запоминает, что если рядом находятся пиксели {100, 250, 105}, то их надо покрасить в {red, pink, blue}, а если {120, 151, 183}, то в {blue, green, light-green}.
Дополнительно может учитываться положение пикселей на фотографии (сверху, снизу).websurfer
04.04.2016 20:11Спасибо, хотя вопросов прибавилось (не обращайте внимания, я дилетант в этом вопросе). Но, как всё не понятное — манит.
Aclz
05.04.2016 07:55>Нейронная сеть для каждой структуры и насыщенности черно-белых пикселей запоминает их исходный цвет.
Грубо говоря, НС запоминает, что если рядом находятся пиксели {100, 250, 105}, то их надо покрасить в {red, pink, blue}, а если {120, 151, 183}, то в {blue, green, light-green}.
Свёрточные нейросети не работают с пикселами, они работают с «фичами» (характерными признаками, features), выделяемыми из изображений, и классами групп этих фич.ankh1989
06.04.2016 11:39Разве это не одно и то же? Мне казалось, что "фичи" это те же самые пиксели, только каждый пиксель "фичи" вычисляется по какому то правилу, скажем "среднее расстояние до ближайших ярких пикселей на картинке."
Aclz
06.04.2016 12:05Идея заключается в том, чтобы после нормализации и фильтрации изображения в нём выделить сначала примитивы типа горизонтальных и вертикальных линий, простых геометрических фигур, а затем раз за разом сворачивать найденные их комбинации до более высокоуровневых абстрактных объектов (на этом этапе идет работа уже не с пикселами, а с описательными наборами фигур и форм), на каком-то этапе совершив прогон по классификатору конечных классов, и идентифицировав конечный объект. В конце, получив на картинке высокие вероятности некоторых классов (например, «бегущий человек» — 2 шт., «мяч», «газон»), можно, прогнав полученные сущности по классической нейросети, получить классификацию всей картинки («футбол»).
Vjatcheslav3345
04.04.2016 21:12А не может ли программа подобрать цвета, если человеком, абсолютно не знакомым с её принципами, будут указываться только качественные характеристики без уточнения оттенков, — например, человек кликает пипеткой по участку а потом по ближайшему подходящему цвету из набора, указывая, что этот листик, например, — зеленый, тот мячик — синий, этот участок — на солнце а тот — в тени, — а программа же, зная качественную информацию, поберет цвета, оттенки, освещение. Если была допущена ошибка, например, алое небо было сочтено голубым, то можно переназначить этот выбор.
Sadler
04.04.2016 21:50Только для начала придётся сегментировать изображение, выделив объекты, цвета которым будут назначаться, либо придётся вручную рисовать пиксельную цветовую маску для каждого изображения. В принципе, ничего принципиально невозможного здесь нет, нужно лишь собрать всё это воедино.
Vjatcheslav3345
04.04.2016 23:02Пользователь указывает цвет и освещенность для одного «типичного» пикселя или маленького кусочка, участка а программа распространяет значения на подобные места и прогнозирует, как будут выглядеть иные места, не указанные человеком.
Просто сейчас приходится делать маски, обводить, а так дело упрощается — мазнул по фото — назначил параметры, затем опять и опять, хотя бы 2-3 раза, затем нужно поправить те места, которые получились неестественными, опять таки, давая программе качественные оценки, — так как любой человек очень хорошо разбирается в вещах окружающего мира, а в теории хранения графической информации в компьютере разбираются только специалисты.
alek0585
05.04.2016 00:04-5s3-us-west-1.amazonaws.com/ddream/dream_a6b63c5ea1.jpg как-то невпечатлило…
Aclz
05.04.2016 08:04Сравнение различных алгоритмов и реальных цветов:
https://richzhang.github.io/colorization/resources/imagenet_comparison.html
Годится лишь для баловства.igordata
05.04.2016 09:39Господин высказал своё мнение.
Однако ж на некоторых фотках, например с яблоком, отработало восхитительно!Aclz
05.04.2016 10:03В этом и проблема: в нестабильности результатов. И ладно бы, когда не угадал цвет заведомо неугадываемый (например, цвет «серого» автомобиля), но некоторые результаты откровенно выстрелили мимо (мужик в красных джинсах, серое море, зеленые пятна на однотонном столе и т.п.). Судя по темпам развития нейросетей, через пару-тройку лет, думаю, допилят, но сейчас у инструмента есть лишь очень нишевое реальное применение.
IgorYoOK
05.04.2016 13:55-2Осталось вживить эту технологию в голову дальтоникам — вот и практическое применение в будущем.
zDmitriy
07.04.2016 14:26По результатам работы в рамках проекта опубликована статья Colorful Image Colorization (PDF).
Было бы интересно почитать перевод статьи.
pehat
Отличные новости! http://ic.pics.livejournal.com/faiman/12547182/43489/43489_320.jpg
toteKopf
не понимаю за что минусы, Штирлиц в цвете давнишняя мечта…
pehat
1) Это не мечта, это уже свершившийся (по мнению прогрессивной общественности) ужас.
2) Минусы, вероятно, за то, что не картинка, а некликабельная ссылка. Но это уже от меня не зависит.
Bot_0002
Как так? Я думал значение кармы всегда кратно «1».
pehat
Это не ко мне вопрос, а к администрации сайта. Полагаю, что некоторые пользователи равнее других.
Aingis
Было старое правило, что при взаимном голосовании значение голоса снижается. Например, если вам влепили минус, то у вас карма снижается на 1. Если вы в ответку влепили минус, то у обидчика карма уменьшается на 0,5, но ваша карма увеличивается (!) на 0,5, давая суммарный эффект тоже на ?0,5. Аналогично, с плюсованием.
Возможно, есть и более тонкие формулы.
Bot_0002
Спасибо за просвещение. Это видимо было до введения анонимности оценок.
Aingis
Оценки всегда были анонимными. Но иногда нетрудно угадать, кто влепил минус. А даже если и не угадал, система провоцирует их ставить.
Bot_0002
Ну то что анонимность негативно действует на неокрепшие умы, давно известно.
P.S. Ща меня эти умы заминусят. :)
roboter
читал новость, и сразу в голову пришла мысль прогнать Штирлица!
Halt
Мне вот было бы интересно посмотреть на цветного Чарли Чаплина :)
Ra-Jah
Да, но только если это будет очень качественная работа. Плохую раскраску я никогда не променяют на исходный Ч\Б материал. Сейчас уже приходится тратить время на поиски оригинала в черно-белом варианте, потому что все переиздания цветные и цвета эти фальшивые. Раньше, в молодости, это возбуждало воображение, например, как же режиссер видел картину в цвете, но потом я быстро понял, что моя фантазия делала гораздо больше. ИМХО, конечно.
l_e_v
как же режиссер видел картину в цвете
для получения естественных изображений человеческих лиц в начальную эпоху кинематографа, когда киноплёнка не имела приемлемой чувствительности в красной области, порой применялся специальный грим, например, голубая помада для губ. Декорации же для такой съёмки не раскрашивались в сколько-нибудь реальные цвета. (ru.wikipedia.org/wiki/Сенсибилизация_(фото))
olegkrasnov
Главное чтобы не получилось как на КДПВ :)
mlg
Просто оставлю здесь: Цветной Штирлиц
watashiwaale
Так и есть: richzhang.github.io/colorization/resources/bot_0_index.html
tormozedison
Ну как ту не вспомнить анекдот: