Идея дорисовать сову из кружочков реализована с помощью нейросетей.
На базе машинного обучения и нейронной сети разработчик Кристофер Гессе создал онлайн-сервис, который может «дорисовывать» наброски до полноценных цветных фотографий.
На сайте http://affinelayer.com/pixsrv/index.html Кристофера Гессе представлена нейросеть, способная дорисовывать кошек.
Пользователю предлагается нарисовать набросок кошки в левом окне, нажать «process» и посмотреть, как нейросеть дорисует иллюстрацию. На странице показан такой красивый пример:
Видимо чем больше линий использовано в наброске и чем больше набросок походит на кота из обучающей выборки, тем качественней нейросеть создаст полноценный рисунок на его основе.
Вот что пишет сам автор:
Недавно, я сделал 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.
На базе машинного обучения и нейронной сети разработчик Кристофер Гессе создал онлайн-сервис, который может «дорисовывать» наброски до полноценных цветных фотографий.
На сайте http://affinelayer.com/pixsrv/index.html Кристофера Гессе представлена нейросеть, способная дорисовывать кошек.
Пользователю предлагается нарисовать набросок кошки в левом окне, нажать «process» и посмотреть, как нейросеть дорисует иллюстрацию. На странице показан такой красивый пример:
Видимо чем больше линий использовано в наброске и чем больше набросок походит на кота из обучающей выборки, тем качественней нейросеть создаст полноценный рисунок на его основе.
Вот что пишет сам автор:
Недавно, я сделал 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.