Четыре примера работы программы, код которой опубликован в открытом доступе. Слева показаны исходные изображения, справа — результат автоматической обработки

Многие задачи в обработке изображений, компьютерной графике и компьютерном зрении можно свести к задаче «трансляции» одного изображения (на входе) в другое (на выходе). Так же как один и тот же текст можно представить на английском или русском языке, так и изображение можно представить в RGB-цветах, в градиентах, в виде карты границ объектов, карты семантических меток и т.д. По образцу систем автоматического перевода текстов, разработчики из лаборатории Berkeley AI Research (BAIR) Калифорнийского университета в Беркли создали приложение для автоматической трансляции изображений из одного представления в другое. Например, из чёрно-белого наброска в полноцветную картинку.

Неосведомлённому человеку работа такой программы покажется магией, но в основе её лежит программная модель условных генеративных состязательных сетей (conditional generative adversarial networks, cGAN) — разновидности известного типа генеративных состязательных сетей (generative adversarial networks, GAN).

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

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


Влияние различных функций потери на результат

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

Разработчики использовали для поставленной задачи условные генеративные состязательные сети (cGAN), то есть GAN с условным параметром. Так же как GAN усваивает генеративную модель данных, cGAN усваивает генеративную модель по определённому условию, что делает её пригодной для трансляции изображений «один в один».


Трансляция разметки Cityscapes в реалистичные фотографии. Слева разметка, в центре оригинал, а справа сгенерированное изображение

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

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


Трансляция карандашных набросков в реалистичные фотографии. Слева карандашный рисунок, в центре оригинал, а справа сгенерированное изображение




Трансляция карандашных набросков в реалистичные фотографии

Как и в других генеративных сетях, в этой GAN нейросети воюют между собой. Одна из них (генератор) пытается создать фальшивое изображение, чтобы обмануть другую (дискриминатор). Со временем генератор обучается всё лучше обманывать дискриминатор, то есть генерирвоать более реалистичные изображения. В отличие от обычных GAN, в Pix2Pix одновременно и дискриминатор, и генератор имеют доступ к исходному изображению.


Обучение cGAN предсказывать фотографии аэрофотосъёмки по картам местности


Примеры работы cGAN по трансляции фотографий аэрофотосъёмки в карты местности и наоборот

Научная статья опубликована в открытом доступе, исходный код Pix2pix — на GitHub. Авторы предлагают всем желающим испытать программу.
Поделиться с друзьями
-->

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


  1. MikeLP
    22.11.2016 19:41
    +7

    Хороший генератор уровней


  1. gionet
    22.11.2016 19:42
    +4

    Скормить бы ей детские рисунки или каракули, которые люди рисуют во время телефонного разговора


    1. igorek_uk
      22.11.2016 21:14
      +6

      1. tmin10
        22.11.2016 21:26

        Или игрушки из Икеи…


        1. bukaz0id
          23.11.2016 00:59

          Они и сделаны по детским рисункам. Это благотворительная программа.


          1. tmin10
            23.11.2016 20:18
            +1

            Я про то и говорю, только там не нейросеть их проектировала, а дизайнеры.


    1. Olezhina
      22.11.2016 22:09
      +2

      Каракули врачей — вот бы научить нейросеть распознавать


      1. sumanai
        22.11.2016 22:32
        +15

        Не требуйте от нейросетей невозможного.


        1. equand
          24.11.2016 13:46

          «This does not look like anything to me»- сказал мне аптекарь.


    1. pOmelchenko
      22.11.2016 22:09
      +1

      Логотип хабра =)


      1. svlasov
        23.11.2016 02:36
        -3

        Какой логотип?


        1. svlasov
          23.11.2016 23:35
          +2

          Пошутил, что хабр убил свой логотип. Не вышло.


  1. Alexmaru
    22.11.2016 20:36
    +1

    Пора собирать GUI ко всем этим вариантам, что тут показывали за последние пол-года.


    1. pudovMaxim
      22.11.2016 22:55

      Кстати о гуи. Неплохая мысль — нарисовать на листочке от руки формочки, прогнать через нейросеть и получить готовый комплект GUI.


      1. pOmelchenko
        22.11.2016 23:39
        +1

        и код обработчика…


        1. pudovMaxim
          23.11.2016 10:06

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


          1. equand
            24.11.2016 13:48

            Скормить нейросети гигаметры кода и получать результат? )


  1. RusikR2D2
    22.11.2016 21:16

    Получается альтернатива CG для фильмов? графика будет совсем реалистичной при минимуме затрат. Эдакий компьютерный мультик на входе, а на выходе реалистичное кино. Наверняка, можно и без актеров обходиться.


    1. pda0
      22.11.2016 23:47

      Глубина-глубина, я не твой… ;-)


    1. deslambada
      23.11.2016 11:11
      +1

      Да! Я мечтаю когда скачаешь обученную нейросеть по созданию CG фильмов, задашь ей в настройках критерии сюжета (типа маленькая девочка спасается в мире зомби апокалипсиса, или вообще в качестве сюжета можно закинуть книгу целиком), задаёшь количество драмы, триллера. Прописываешь какие-нибудь особенности и нажимаешь создать. комп подумает и к вечеру у тебя будет уникальный CG фильм, по качеству как «аватар» и «варкрафт»! Или мульт.

      Хм… ещё было бы круто создавать таким образом целые игры! Типа создай мне похожее на скайрим или ведьмака, только чтобы люди там играли в блэкджек и текстуры покачественней.


    1. imm
      23.11.2016 11:35
      +1

      да и без зрителей — дискриминатор посмотрит и критическую статью напишет, рейтинг imdb выставит


  1. zim32
    22.11.2016 21:29
    +4

    Осталось написать нейросеть которая сможет генерировать нейросеть по наброску и дело в шляпе
    Так глядишь скоро в художественных школах вместо композиции начнуть преподавать питон


    1. deslambada
      23.11.2016 11:23
      -1

      худ. школы не будут популярны, если в открытом доступе будет ИИ, который нарисует всё что угодно, достаточно сделать детский набросок за пару минут (ну и может настрить несколько настроек)


  1. I-Brand
    22.11.2016 22:09
    +1

    Пробовал на этой программе раскрашивать военные фото, ориентировочно 42-45 год. Что сказать, тональность меняется, цвета я бы сказал приближены к тем, которые могли бы быть в реальности. Но как по мне очень блекло все.


    1. equand
      24.11.2016 13:49
      +1

      Проблема статистического алгоритма, нужно обучать, а все просто закидывают «true this, false that»


  1. jazator
    22.11.2016 22:14

    Отдать ей удава и слона Маленьго принца. И вот тогда!
    «Но все они отвечали мне: „Это шляпа“. И я уже не говорил с ними ни об удавах, ни о джунглях, ни о звездах...»


  1. funca
    22.11.2016 23:08
    +1

    Это абстракционизм наоборот. Интересно, что сеть думает про квадрат Малевича? :)


    1. Dmitry_Dor
      23.11.2016 12:50

      Ну, тут все просто 8-)

      image


      1. a5b
        25.11.2016 08:32

        Почти: http://www.vz.ru/news/2015/11/12/777744.html "Они расшифровали надпись на «Черном квадрате», которую считают авторской.… Вся фраза, по мнению музейщиков, звучит как «Битва негров в темной пещере».… картину Малевича можно считать чем-то вроде заочного диалога художника с автором полотна, написанного в 1882 году французским писателем и эксцентриком Альфонсом Алле. Его полностью черная картина называется «Битва негров в темной пещере глубокой ночью»."


  1. aydahar
    23.11.2016 08:02
    +1

    Блин, когда же появятся готовые оффлайновые программы с обученными нейросетями для всего этого?!
    Хочу плагин к фотошопу в виде этой Pix2pix.


    1. ariksu
      23.11.2016 11:11
      +2

      Нейросети — большие. Вы уверены что вас плагин в тридцать гигабайт устроит? А в пятьсот?


      1. RusikR2D2
        23.11.2016 11:23
        +1

        почему нет. главное, чтобы не понадобилась сотня Гб оперативки


    1. TheRexx
      23.11.2016 11:11

      Не совсем оффлайн, вдруг кто прошел мимо темы — Колоризатор от японских мастеров


      1. aydahar
        23.11.2016 13:05

        классно, только результаты сохранить нельзя.


        1. brzsmg
          23.11.2016 15:39

          Хороший ресурс. У меня получилось сохранить:

          Сохранить картинку как...


          1. aydahar
            24.11.2016 07:14

            Да, я не корректно выразился. Нельзя сохранить в исходном размере. Уменьшенный вариант мне не интересен.


            1. equand
              24.11.2016 13:58
              +1

              Для скорости работы скорее всего они ее уменьшают


  1. Cryvage
    23.11.2016 09:24
    +6

    С раскрашиванием манги справится?


  1. maxpsyhos
    23.11.2016 09:46
    +4

    Интересно, а как оно справится с НАСТОЯЩИМИ карандашными набросками, а не оттрассированными с таких же фотографий, на которых сеть учили?


  1. slavius
    23.11.2016 11:11

    Все просто — если в обучении были правильные изображения — будет правильный выхлоп.
    Если-бы сеть учили на «котиках» — было-бы интересно посмотреть на стену и сумку.
    К примеру стена леопардовых диванов в обучении;)


  1. mikefrost
    23.11.2016 11:11

    Жаль нет сервиса с веб-интерфейсом для этой нейросети =/


    1. imm
      23.11.2016 11:39

      и бота в мессенджерах, присылаешь фото наброска с телефона — он тебе результат


    1. Yngvie
      23.11.2016 12:26

      Плагина для браузера, чтобы с quickdraw сразу картинки загружать


      1. brzsmg
        23.11.2016 13:57

        Прикольное приложение! Выдает в конце, похожие творения других пользователей.