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

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

Какое-то время продолжим трудится на общее благо по адресу https://n-n-n.ru.
На новой платформе мы уделили особое внимание удобству поиска материалов.
Особенно рекомендуем познакомиться с работой рубрикатора.

Спасибо, ждём вас на N-N-N.ru

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

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

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

feae0bd831b94c77a4a0079aa7398327.jpeg

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

3c8571a2871c40d5bdf2a83ca22c62f4.png

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

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

Недавно, я сделал 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.

Пожалуйста, оцените статью:
Пока нет голосов
Источник(и):

geektimes.ru