Одним из наиболее интересных направлений для изучения в ИТ-сфере являются нейронные сети. Их возможности поражают. Не так давно корпорация Google демонстрировала психоделические изображения, созданные ИИ DeepDream на основе реальных фотографий. Некоторые из сгенерированных изображений просто пугают.


Одно из таких изображений (попробовать сделать собственное можно здесь)

Но нейронные сети могут работать и в более спокойном режиме. Например, делать цветными черно-белые снимки. Для того, чтобы научить систему это делать, исследователи обучают ее, демонстрируя большое количество различных фотографий. Нейронная сеть выбирает с цветных снимков те объекты, что схожи с объектами на черно-белых снимках, и разукрашивает последние. Сейчас такой проект разрабатывается исследователями из Калифорнийского университета в Беркли.



По результатам работы в рамках проекта опубликована статья Colorful Image Colorization (PDF). Далеко не все «окрашенные» снимки можно назвать удачными, но некоторые — просто идеальны. Алгоритм системы, разработанной исследователями, работает с рядом обычных правил (например, небо — голубое, трава — зеленая и т.п.), плюс эти алгоритмы прорабатывают множество схожих фото, чтобы получить информацию о точном цвете нужных объектов.



Цветные снимки показывались добровольцам, которые пытались угадать, какие снимки были изначально черно-белыми, а затем их сделали цветными, а какие — изначально цветными. Около 20% расцвеченных снимков испытуемые посчитали изначально цветными. Интересно, что сети сложно раскрасить, например, зеленый овощ на белой тарелке, или оставить снежно белой цаплю определенного вида.

Исходники алгоритма, документацию и остальные наработки можно найти на Github.

Сейчас нейронные сети не просто разукрашивают фото, но и генерируют лица людей и интерьеры. Так, команда исследователей из компании Indico и Facebook создала нейронную сеть, способную «придумывать» реалистичные изображения. Кстати, об эволюции нейронных сетей можно почитать здесь.

Комментарии (69)


  1. pehat
    04.04.2016 12:09

    Отличные новости! http://ic.pics.livejournal.com/faiman/12547182/43489/43489_320.jpg


    1. toteKopf
      04.04.2016 13:39
      +3

      не понимаю за что минусы, Штирлиц в цвете давнишняя мечта…


      1. pehat
        04.04.2016 13:41

        1) Это не мечта, это уже свершившийся (по мнению прогрессивной общественности) ужас.
        2) Минусы, вероятно, за то, что не картинка, а некликабельная ссылка. Но это уже от меня не зависит.


        1. Bot_0002
          04.04.2016 16:47
          +1

          Как так? Я думал значение кармы всегда кратно «1».


          1. pehat
            04.04.2016 16:59
            -1

            Это не ко мне вопрос, а к администрации сайта. Полагаю, что некоторые пользователи равнее других.


          1. Aingis
            04.04.2016 17:40

            Было старое правило, что при взаимном голосовании значение голоса снижается. Например, если вам влепили минус, то у вас карма снижается на 1. Если вы в ответку влепили минус, то у обидчика карма уменьшается на 0,5, но ваша карма увеличивается (!) на 0,5, давая суммарный эффект тоже на ?0,5. Аналогично, с плюсованием.

            Возможно, есть и более тонкие формулы.


            1. Bot_0002
              04.04.2016 18:06

              Спасибо за просвещение. Это видимо было до введения анонимности оценок.


              1. Aingis
                04.04.2016 20:14

                Оценки всегда были анонимными. Но иногда нетрудно угадать, кто влепил минус. А даже если и не угадал, система провоцирует их ставить.


                1. Bot_0002
                  04.04.2016 21:37
                  +1

                  Ну то что анонимность негативно действует на неокрепшие умы, давно известно.
                  P.S. Ща меня эти умы заминусят. :)


      1. roboter
        04.04.2016 14:25

        читал новость, и сразу в голову пришла мысль прогнать Штирлица!


        1. Halt
          04.04.2016 14:51
          +3

          Мне вот было бы интересно посмотреть на цветного Чарли Чаплина :)


          1. Ra-Jah
            04.04.2016 15:07

            Да, но только если это будет очень качественная работа. Плохую раскраску я никогда не променяют на исходный Ч\Б материал. Сейчас уже приходится тратить время на поиски оригинала в черно-белом варианте, потому что все переиздания цветные и цвета эти фальшивые. Раньше, в молодости, это возбуждало воображение, например, как же режиссер видел картину в цвете, но потом я быстро понял, что моя фантазия делала гораздо больше. ИМХО, конечно.


            1. l_e_v
              05.04.2016 00:05

              как же режиссер видел картину в цвете
              для получения естественных изображений человеческих лиц в начальную эпоху кинематографа, когда киноплёнка не имела приемлемой чувствительности в красной области, порой применялся специальный грим, например, голубая помада для губ. Декорации же для такой съёмки не раскрашивались в сколько-нибудь реальные цвета. (ru.wikipedia.org/wiki/Сенсибилизация_(фото))


          1. olegkrasnov
            04.04.2016 20:20

            Главное чтобы не получилось как на КДПВ :)


      1. mlg
        04.04.2016 20:05
        +1

        Просто оставлю здесь: Цветной Штирлиц



    1. tormozedison
      05.04.2016 06:51

      Ну как ту не вспомнить анекдот:

      • Эта жёлтая машина — Стелькина, а Стелькин — взяточник.
      • Жёлтая? В прямом смысле, или фигурально?
      • Увы, в прямом.
      • Ну вот, Штирлица им мало — эти маляры и к нам добрались!


  1. Dolbe
    04.04.2016 13:42

    Интересно, насколько близко к оригиналу будут окрашены черно-белые снимки, изначально полученные из цветных…


    1. calx
      04.04.2016 14:28

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


      1. facepalmLite
        04.04.2016 14:38

        В оригинальной статье есть несколько примеров известных, изначально чёрно-белых фотографий раскрашенных этой нейросетью.


        1. calx
          04.04.2016 14:40
          +1

          Но при обучении-то всё равно использовались изначально цветные, иначе какой смысл...


  1. Vjatcheslav3345
    04.04.2016 13:42

    У меня не получилось нормально окрасить фотографию Алисы Лидделл из Википедии.


  1. aydahar
    04.04.2016 13:43

    Блин, классно же!
    Где-нибудь есть готовый сервис/программа куда можно загружать фото?


    1. FError
      04.04.2016 14:11
      -4

      А в чем "классность"?
      То что алгоритм работает и это круто или реально очень полезное применение, можно будет фото бабушки расцветить и как бы будет цветное фото (только зачем?).
      Или в дальнейшем можно будет передавать скажем ч/б изображение в некоторых случаях и на принимающей стороне раскрашивать для экономии канала? Но для того другие алгоритмы применимее наверное?
      В чем все же практическое применение?


      1. Anarions
        04.04.2016 14:27
        +1

        Я кроме раскраски старых фото\видео придумать не могу, но это не означает что применения не найдётся.


        1. Logonoff
          04.04.2016 14:51
          +9

          Используя этот алгоритм можно повысить качество съемки в темноте,


          1. napa3um
            05.04.2016 13:54

            А потом и без видеокамеры.


      1. DrZlodberg
        04.04.2016 16:05

        Кстати да, если она может почти идеально восстанавливать цвет на изначально чб-изображениях, то не сможет ли она восстанавливать его абсолютно идеально, если туда изначально добавить какой-то минимум информации о цвете и сжимать только чб-часть?
        А ещё не получится ли с помощью неё избавиться от матрицы Байера в фотоаппарате и использовать его полное разрешение?
        Добавить только какую-нибудь матрицу низкого разрешения, которая даёт общее представление о цвете и восстанавливать остальное по хайрезу.


        1. Sadler
          04.04.2016 17:23

          А ещё вдобавок корректно очертить границы объектов с указанием семантики, чтобы алгоритму не приходилось прикидывать, что он видит и какого это цвета. Тогда должно получиться весьма качественно


        1. gene4000
          04.04.2016 17:29

          Уже — Sigma DP Quattro


      1. Alexey2005
        05.04.2016 00:38

        Ну вот вам пример практического применения. Берём практически любой современный фильм. Думаю, многие заметили, что 95% того, что сейчас снимается, на самом деле чёрно-белое и лишь немного подсинивается или желтится ползунком Hue.
        И раскрашиваем! А если ещё разработают нейросеть для восстановления фона в тех случаях, когда 99% действия происходит чёрной-чёрной ночью в тёмном-тёмном подземелье, из-за чего на всём кадре видны лишь лица и факелы, то это будет прямо-таки возрождение кинематографа, который сейчас просто поражает редкостным нежеланием работать со светом и цветом.


  1. Demonos
    04.04.2016 15:18

    Ради интереса скормил программе пару фоток Лондона викторианской эпохи. Результат получился довольно забавным. Похоже на коллажи, которые время от времени выкладывают на steampunker.
    />


  1. Demonos
    04.04.2016 15:24
    +2

    Что-то не срослось. Как-то вот:
    https://habrastorage.org/files/676/500/b61/676500b61cf74a0fa1545d544e63497f.jpg


    1. Ra-Jah
      04.04.2016 15:30
      +1

      Это вы через Deep Dream прогнали, а надо через https://richzhang.github.io/colorization/


    1. Sadler
      04.04.2016 15:36

      del


  1. Demonos
    04.04.2016 16:04

    Чарли Чаплин там, кстати, присутствует
    https://m.youtube.com/watch?v=_MJU8VK2PI4


  1. Camel
    04.04.2016 16:04

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


    1. Ra-Jah
      04.04.2016 16:14
      +1

      «Еще раз про цвет из чб» — http://tema.livejournal.com/2129837.html


      1. Camel
        04.04.2016 17:31

        В цитате написано что-то похожее на правду, но если перейти на статью про фотографию в комбинезоне: "единственные несколько сине-зеленых пикселей я нашел на комбинезоне." Что это за бред написан? Почему именно сине-зелёные пиксели? Почему не красно-розовые, светло-коричневые, голубые, фиолетовые? Если я предоставлю тем людям чёрно-белую фотографию незнакомого (и им, и нейросети) объекта, то как они определят какие пиксели сине-зелёные, а какие нет? Никак.
        Раскрасить правдоподобно можно, достоверно — не всегда.


        1. Ra-Jah
          05.04.2016 08:27

          Я не совсем это имел ввиду, mia culpa. В комментариях есть неоднократное утверждение, о том что восстановить никак нельзя, кроме как логическими рассуждениями. Иными словами, если ваша мама специально выбирала необычные цвета, раскрасить достоверно нет никаких шансов. Но возможно о цветах можно догадаться по другим предметам. Перебрать базу похожих шапок, может даже базу тканей или фасонов.


    1. Sadler
      04.04.2016 17:29

      Если следовать Вашей логике, то никого нельзя раскрасить, т.к. двух одинаковых людей не существует, даже если они близнецы. Задача программы — не найти именно те цвета, которые были в оригинале, а заставить зрителя поверить, что цвета на выходе алгоритма истинные.


      1. Camel
        04.04.2016 17:39

        Вы неверно трактуете мою логику. Люди все более или менее похожи. У всех, скажем так, коренных европейцев цвет кожи розово-коричневый. И вот цвета вязанных шапочек самые разнообразные. Если шапочка выпускалась серийно, но можно найти похожее изображение в материалах по которым обучалась нейросеть. Грубо говоря логика такая: "Так, это похоже на спортивную шапочку Adidas из коллекции 1988 года, они были чёрные, белые, тёмно-синие и розовые. По насыщенности оттенка эта больше всего похожа на тёмно синюю — красим всю шапку в тёмно-синий." Но если шапка изготовлена в единственном экземпляре, если нет её цветных фотографий, то любая догадка о её цвете не может считаться более верной чем любая другая. Шапка с одинаковым успехом может быть как розовой, так и голубой.
        И дело не только в шапках. Если у вас есть ч.б. фотография с красочного театрального представления, карнавала или ещё чего-то подобного, то вы не знаете в какие точно цвета всё раскрашивать, если только у вас нет дополнительных описаний от очевидцев.


        1. Sadler
          04.04.2016 18:05

          Перечитайте мой предыдущий ответ. Как я уже сказал, сети абсолютно наплевать, Adidas это или что-то ещё. Нет там никакой БД, в которой ищется Adidas 1988 года. Круто уже, если она может понять, что это просто шапка, а шапки обычно цвета N, а полосатые шапки — цвета N в полоску K. Нет задачи получить тот же набор цветов, потому все Ваши умозаключения относительно знания точного цвета не имеют смысла.


          1. Camel
            05.04.2016 13:34

            Ещё раз:
            раскрасить правдоподобно можно, достоверно — не всегда.
            Вы пытаетесь убедить меня ровно в том же в чём я убеждаю вас. "Нет задачи получить тот же набор цветов" равносильно "раскрасить правдоподобно, без гарантии достоверности".


            1. Sadler
              05.04.2016 15:52

              ОК, согласен. В любом случае, надо мне будет почитать о топологии этого дела. Интересно было бы собрать что-то в таком роде самостоятельно.


  1. ScoutUa
    04.04.2016 17:37

    Наконец то заветная кнопка заказчика «сделать красиво» будет скоро доступна :D


    1. Alexey2005
      05.04.2016 00:43
      +2

      Боюсь, спроса на такую кнопку не будет. Народу нужна совсем другая кнопка — "сделать редкостный вырвиглазный шлак, от которого заказчик будет просто в диком восторге".


      1. ScoutUa
        06.04.2016 12:08

        Судя по картинке в заголовке поста с этим тоже проблем не будет))


        1. Aclz
          06.04.2016 12:30

          На это давно есть Инстаграм.


  1. websurfer
    04.04.2016 19:10

    Может кто нибудь объяснить «на пальцах», что такое этот ИИ и как он работает?


    1. DrReiz
      04.04.2016 20:05

      Нейронная сеть для каждой структуры и насыщенности черно-белых пикселей запоминает их исходный цвет.
      Грубо говоря, НС запоминает, что если рядом находятся пиксели {100, 250, 105}, то их надо покрасить в {red, pink, blue}, а если {120, 151, 183}, то в {blue, green, light-green}.
      Дополнительно может учитываться положение пикселей на фотографии (сверху, снизу).


      1. websurfer
        04.04.2016 20:11

        Спасибо, хотя вопросов прибавилось (не обращайте внимания, я дилетант в этом вопросе). Но, как всё не понятное — манит.


      1. Aclz
        05.04.2016 07:55

        >Нейронная сеть для каждой структуры и насыщенности черно-белых пикселей запоминает их исходный цвет.
        Грубо говоря, НС запоминает, что если рядом находятся пиксели {100, 250, 105}, то их надо покрасить в {red, pink, blue}, а если {120, 151, 183}, то в {blue, green, light-green}.

        Свёрточные нейросети не работают с пикселами, они работают с «фичами» (характерными признаками, features), выделяемыми из изображений, и классами групп этих фич.


        1. ankh1989
          06.04.2016 11:39

          Разве это не одно и то же? Мне казалось, что "фичи" это те же самые пиксели, только каждый пиксель "фичи" вычисляется по какому то правилу, скажем "среднее расстояние до ближайших ярких пикселей на картинке."


          1. Aclz
            06.04.2016 12:05

            Идея заключается в том, чтобы после нормализации и фильтрации изображения в нём выделить сначала примитивы типа горизонтальных и вертикальных линий, простых геометрических фигур, а затем раз за разом сворачивать найденные их комбинации до более высокоуровневых абстрактных объектов (на этом этапе идет работа уже не с пикселами, а с описательными наборами фигур и форм), на каком-то этапе совершив прогон по классификатору конечных классов, и идентифицировав конечный объект. В конце, получив на картинке высокие вероятности некоторых классов (например, «бегущий человек» — 2 шт., «мяч», «газон»), можно, прогнав полученные сущности по классической нейросети, получить классификацию всей картинки («футбол»).


  1. dron_k
    04.04.2016 19:57
    -1

    Теперь этот алгоритм зашиваем в кодек и можно резать цвет в фильмах для уменьшения обьема…


    1. Athari
      05.04.2016 01:36
      +1

      Ага. И пишем инструкцию: "Для просмотра фильма в цвете скачайте нейросеть на 50 гигабайтов". =)


  1. Vjatcheslav3345
    04.04.2016 21:12

    А не может ли программа подобрать цвета, если человеком, абсолютно не знакомым с её принципами, будут указываться только качественные характеристики без уточнения оттенков, — например, человек кликает пипеткой по участку а потом по ближайшему подходящему цвету из набора, указывая, что этот листик, например, — зеленый, тот мячик — синий, этот участок — на солнце а тот — в тени, — а программа же, зная качественную информацию, поберет цвета, оттенки, освещение. Если была допущена ошибка, например, алое небо было сочтено голубым, то можно переназначить этот выбор.


    1. Sadler
      04.04.2016 21:50

      Только для начала придётся сегментировать изображение, выделив объекты, цвета которым будут назначаться, либо придётся вручную рисовать пиксельную цветовую маску для каждого изображения. В принципе, ничего принципиально невозможного здесь нет, нужно лишь собрать всё это воедино.


  1. Vjatcheslav3345
    04.04.2016 23:02

    Пользователь указывает цвет и освещенность для одного «типичного» пикселя или маленького кусочка, участка а программа распространяет значения на подобные места и прогнозирует, как будут выглядеть иные места, не указанные человеком.
    Просто сейчас приходится делать маски, обводить, а так дело упрощается — мазнул по фото — назначил параметры, затем опять и опять, хотя бы 2-3 раза, затем нужно поправить те места, которые получились неестественными, опять таки, давая программе качественные оценки, — так как любой человек очень хорошо разбирается в вещах окружающего мира, а в теории хранения графической информации в компьютере разбираются только специалисты.


  1. u007
    04.04.2016 23:04
    +1

    Спасибо за собачек. Вот чего мне не хватало, чтобы уснуть


  1. alek0585
    05.04.2016 00:04
    -5

    s3-us-west-1.amazonaws.com/ddream/dream_a6b63c5ea1.jpg как-то невпечатлило…


  1. Aclz
    05.04.2016 08:04

    Сравнение различных алгоритмов и реальных цветов:

    https://richzhang.github.io/colorization/resources/imagenet_comparison.html

    Годится лишь для баловства.


    1. igordata
      05.04.2016 09:39

      Господин высказал своё мнение.

      Однако ж на некоторых фотках, например с яблоком, отработало восхитительно!


      1. Aclz
        05.04.2016 10:03

        В этом и проблема: в нестабильности результатов. И ладно бы, когда не угадал цвет заведомо неугадываемый (например, цвет «серого» автомобиля), но некоторые результаты откровенно выстрелили мимо (мужик в красных джинсах, серое море, зеленые пятна на однотонном столе и т.п.). Судя по темпам развития нейросетей, через пару-тройку лет, думаю, допилят, но сейчас у инструмента есть лишь очень нишевое реальное применение.


  1. INDUSTRIALIST
    05.04.2016 13:54

    Ради интереса показали бы старые ч/б фото.


  1. IgorYoOK
    05.04.2016 13:55
    -2

    Осталось вживить эту технологию в голову дальтоникам — вот и практическое применение в будущем.


  1. pro_co_ru
    05.04.2016 13:56

    Скоро будем пересматривать старые чёрно-белые фильмы в цвете.


  1. zDmitriy
    07.04.2016 14:26

    По результатам работы в рамках проекта опубликована статья Colorful Image Colorization (PDF).


    Было бы интересно почитать перевод статьи.