Как стать автором
Обновить

Рисуем остаток совы на базе нейросетей

Время на прочтение 3 мин
Количество просмотров 33K
Идея дорисовать сову из кружочков реализована с помощью нейросетей.

image


На базе машинного обучения и нейронной сети разработчик Кристофер Гессе создал онлайн-сервис, который может «дорисовывать» наброски до полноценных цветных фотографий.

На сайте http://affinelayer.com/pixsrv/index.html Кристофера Гессе представлена нейросеть, способная дорисовывать кошек.

Пользователю предлагается нарисовать набросок кошки в левом окне, нажать «process» и посмотреть, как нейросеть дорисует иллюстрацию. На странице показан такой красивый пример:

image


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

Вот что пишет сам автор:

Недавно, я сделал Tensorflow порт pix2pix на Isola и др., рассмотренный в статье Image-to-Image Translation in Tensorflow. Я взял несколько ранее созданных моделей и сделал интерактивную веб страницу для тестирования. Для просмотра рекомендуется браузер Chrome.
Модель pix2pix работает путем обучения на парах изображений, таких как набросок фасада здания и полного изображения фасадов зданий, а затем пытается сгенерировать соответствующее выходное изображение для любого входного переданного изображения. Эта идея берет начало из статьи pix2pix, которая рекомендуется к прочтению.

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

У меня не было названия различных частей фасадов зданий, так что я просто приблизительно их обозначил.

edges2cats
Обучение проходило на приблизительно 2000 фотографий котов и набросков с автоматически сгенерированными границами для этих фотографий. Модель создает цветные изображения кошек из набросков, но некоторые сталкивается с кошмарными результатами. Один из таких я видел тут.
Некоторые картинки выглядят особенно жуткими, я думаю, потому коты были нарисованы неправильно, особено из за глаз. Процедура автогенерации границ была не очень качественной, и во многих случаях не обнаруживала глаза кошки, что ухудшает качество подготовленной базы изображений для обучения модели.

edges2shoes
Обучение проводилось на базе приблизительно 50 тысяч картинок обуви, собранных из Zappos, а также с автоматически сгенерированными набросками границ для этих изображений. Если вы действительно хорошо нарисуете границы обуви, вы можете попытаться создать некоторый новый дизайн. Имейте в виду, модель обучалась на реальных объектах, так что если вы можете нарисовать более качественный 3D набросок, то результат будет выглядеть лучше.

edges2handbags
По аналогии с предыдущими, обучение проводилось на базе приблизительно 137 тысяч фотографий сумок, собранных из Amazon, c автоматически cгенерированными набросками границ для этих фотографий. Если вы нарисуете здесь ботинок вместо сумочки, вы получите очень странную текстуру обуви.

Реализация
Обучение и экспорт моделей был произведен с помощью скрипта pix2pix.py из pix2pix-tensorflow. Интерактивное демо сделано на базе JavaScript с использованием Canvas API, которое взаимодействует с сервером, который передает изображения Tensorflow. Сервер может запускать Tensorflow сам или пересылать запросы на Cloud ML Google службы Tensorflow.
Обученные модели доступны в разделе Datasets на GitHub. Также должны быть доступны модели идущие вместе с оригинальной реализацией pix2pix. Модели могут быть экспортированы из обученных примеров с использованием скрипта pix2pix.py и ссылки на экспортируемые модели есть в файле README на сервере GitHub.
Границы для фотографий кошек были получены с использованием алгоритма Holistically-Nested Edge Detection и этот функционал был добавлен к скрипту process.py и соответствующие зависимости были добавлены к Docker image.
Теги:
Хабы:
+19
Комментарии 121
Комментарии Комментарии 121

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн