company_banner

Как мы создавали галерею нейросетевого искусства и почему не даём копировать картины

    Мы сегодня запустили виртуальную галерею, где все картины созданы нейронной сетью. Её особенность в том, что каждую картину в полном размере может забрать себе только один человек. Почти как в настоящей галерее.

    В этом посте я расскажу о том, как родилась эта идея и как мы реализовали её с помощью двух нейросетей, одна из которых используется в поиске Яндекса.



    Идея

    Мы довольно много экспериментируем с GAN’ам и пытались нащупать идею красивого и понятного проекта, в котором могли бы показать наши достижения.

    У меня уже был проект ganarts, который я запустил для себя и друзей. Это была просто страница, на которой бесконечно генерировались картины в виде принта на футболку. Их генерировала нейросеть StyleGAN, обученная на вручную подобранных стилях искусств с wikiart.

    Гифка проекта


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

    Реализация

    С тех пор как компания Nvidia выложила код для обучения нейросети StyleGAN, удивить кого-то сгенерированными изображениями достаточно сложно. Её авторам удалось сделать достаточно универсальную архитектуру, которая показывает хорошие результаты на разных данных. Прорыв был ещё и в том, что модель могла обучаться на достаточно большом разрешении (1024х1024) за приемлемое время и с лучшим, чем у конкурентов, качеством.

    Энтузиасты «скармливали» ей всё, что попадает под руку. Если вам интересно взглянуть на подобные проекты, то вот список наиболее ярких.

    — Люди: thispersondoesnotexist.com
    — Аниме: www.thiswaifudoesnotexist.net
    — Коты: thesecatsdonotexist.com
    — Персонажи «Игры престолов»: nanonets.com/blog/stylegan-got
    — Автомобили: twitter.com/SyntopiaDK/status/1094337819659644928
    — Логотипы: twitter.com/matthewjarvisw/status/1110548997729452035
    — Детские рисунки: twitter.com/roberttwomey/status/1239050186120282113
    — Жуки: twitter.com/karim_douieb/status/1229903297378766854
    — Комиксы про Гарфилда: twitter.com/willynguen/status/1220382062554898433
    — Шрифты: twitter.com/cyrildiagne/status/1095603397179396098
    — Снимки с микроскопа: twitter.com/MichaelFriese10/status/1229453681516412928
    — Покемоны: twitter.com/MichaelFriese10/status/1210305621121064960

    Но прогресс не стоит на месте, и в конце 2019 года Nvidia выпустила вторую версию StyleGAN. Подробный обзор всех изменений можно прочитать на Хабре. Главное видимое улучшение — это избавление от характерных droplet-like артефактов за счёт изменения метода нормализации активаций внутри сети. Попробовав новую архитектуру на нашем первоначальном датасете, мы также заметили увеличение разнообразия генерируемых картин, что не могло не радовать. Наша гипотеза: это произошло из-за увеличения количества параметров во второй версии архитектуры, что позволило выучить больше «мод» в распределении данных.

    Еще одним приятным бонусом второй версии StyleGAN стало «более гладкое» латентное пространство. Проще говоря, это позволяет делать плавные перетекания между разными картинам:


    Для создания картин мы применили архитектуру StyleGAN2. Мы обучили нейросеть на произведениях, принадлежащих к разным направлениям живописи: от фовизма и кубизма до минимализма и стрит-арта. Всего в обучающей выборке порядка 40 тысяч картин, на основе которых генерируются совершенно новые изображения.

    В нашей галерее четыре тематических зала: «Люди», «Природа», «Город» и «Настроение». Для того чтобы разделить картины по залам, мы воспользовались нейросетью, которая применяется в Яндекс.Картинках. Она обучается на кликах пользователей из выдачи картинок по текстовому запросу. Наш внутренний датасет для обучения достаточно большой, чтобы эта нейронная сеть смогла разобраться даже со сгенерированными картинами. Она помогла автоматически выбрать изображения по нашим текстовым запросам из огромного количества случайных картин. Например, для зала под названием «Люди» картины выбирались по запросам «красавица», «хоровод», «свидание», «господин» и так далее. Это создало ощущение тематических залов, а исходные запросы послужили названиями для картин.

    Результат



    Мы сделали галерею из четырёх тысяч картин, каждая из которых может найти своего владельца. Такой виртуальной галереей мы хотим ещё немного уменьшить дистанцию между нейросетевым творчеством и более осязаемым искусством.

    Считаю, что процесс выбора картины пользователем тоже можно назвать проявлением творчества. И надеюсь, что в будущем возможностей творческого выбора будет гораздо больше.
    Яндекс
    Как мы делаем Яндекс

    Комментарии 31

      +2

      Так почему?

        +1
        Цитируя Решетникова — cадись яндекс опять двойка вашим фронтендерам. Шаринг не работает из за
        этой оказии
        image

          0
          Какой у вас браузер и операционная система?
            0
            а на каких вы тестировали?
              +2
              ну не зависимо от платформы количество открывающих тегов меньше чем закрывающих
                0
                Спасибо, пофиксили
                  0

                  Отлично, благодарю

                    0
                    На iOS кнопка «поделиться» не работает.
                      0
                      А что происходит при нажатии на кнопку?
                        0
                        Именно, что ничего. Браузер Safari.
              0
              Задам идиотский вопрос, можно? Я пробовал поиграть с нейросетками, по-идее, они все обучались что-то с чем-то сравнивая, но ни одну я не смог заставить что-то генерировать. Как вы это делаете в общем случае?
                0
                Нейросети, которые учатся классификации(отличать кошек от собак) извлекают признаки из картинок, чтобы потом, в пространстве меньшей размерности можно было их разделить. Отдаленно можно это назвать сравнением. Ну или поиск по картинкам — чистое сравнение.

                Генеративные модели работают по другому. Например, в концепции GAN есть две сети: одна генерирует изображения из нормально распредленного шума(генератор), другая учится отличать сгенерированные изображения от настоящих(дискриминатор). Цель генератора — обмануть дискриминатор. Обучая их совместно мы получаем генератор, который пытается создавать изображения, похожие на реальные. Подробнее можно почитать на хабре habr.com/ru/search/?target_type=posts&q=%5BGAN%5D
                  0
                  т.е., скажем, на fann'е вообще невозможно ничего генерировать?
                    0
                    Вряд ли
                      0
                      ясно
                      спасибо
                        0
                        почините плиз фронтед, не могу с друзями ссылкой поделиться
                  +2
                  Очень атмосферно вышло.
                  Удачное минималистичное оформление и действительно интересные нейроработы.
                    0
                    Не «дала» сохранить файл :(
                      0
                      Боже в вк какие то ребята флешмоб решили организовать вокруг этих картин туц.
                      Не реклама, мне паблик не заносил.
                        0
                        Ребята, а как в итоге получить выбранную картину? Появилась информация, что картина принадлежит мне, как и у других. Но больше ничего, ни ссылок, ни писем
                          0
                          Если с десктоп браузера — то изображение должно было сразу попасть в загрузки, если с мобильного — должна открываться отдельная вкладка и из нее можно скачивать в полном разрешении
                            0
                            Сидела в браузере с компа и ничего не произошло. У меня хром. С телефона тоже ничего. Вот не пойму чего теперь делать
                              0
                              У меня с десктопа тоже ничего не сказалось. Кнопки «скачать» не вижу.
                                0
                                Скорее всего упало автоматически в загрузки, не всегда это заметно
                                  0
                                  Тоже не скачалось (Яндекс браузер), и в загрузках ничего нет. Картина добавилась «в частную коллекцию», но почему-то не с первого раза.
                                0
                                Боже, не мог пройти мимо:
                                  +2
                                  У меня в детстве был калейдоскоп. Я крутил его и наблюдал, как меняется изображение по алгоритму, заданному наклоном зеркал и стекляшками различных формы и цвета.
                                  Как-то не приходило в голову называть это искусством.
                                    0
                                    ну вот, всё бесплатное уже разобрали…
                                    Придётся покупать?
                                      +1

                                      25 марта в каждом зале появится ещё по тысяче картин ;)

                                      0
                                      Ребята, а как в итоге выбрать картину? показывает только картины которые уже находятся в чьейто частно коллекции
                                        0
                                        Их было ограниченное количество. 25го(т.е. сегодня) должны добавиться еще 4 тысячи картин

                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                      Самое читаемое