Нейросеть превращает каракули в художественные шедевры

сегодня в 20:34

9a4caf169cae4ec79ccf924a81628318.jpg

Программа Neural Doodle, сделанная на основе свёрточной нейросети, представляет собой скрипт doodle.py, который генерирует изображения, принимая три-четыре картинки в качестве входных параметров. В том числе на вход подаётся простенький набросок (то что авторы называют «каракулями») и образец стиля с его наброском. Например, в случае с примером выше образцом стиля является такая картина Ренуара.
Нейросеть извлекает характерные стилевые особенности — и переносит их на набросок.

Вот ещё один пример.

379632697f234f9ab07aa801d39c4fc3.png

Образец стиля от Клода Моне.

0122a232738b4735ac8603af10866a06.jpg

Для запуска программы нужен Python 3.4+, установленные библиотеки numpy и scipy, а также python3-dev. Для работы скрипта потребуется предварительно обученная нейросеть (VGG19, 80 МБ). Инструкции по установке локального окружения см. здесь.

Для рендеринга на GPU требуется хорошая карта Nvidia с поддержкой технологии CUDA и 2–4 ГБ памяти (для больших изображений — 8–12 ГБ). Рендеринг можно запустить и на CPU, в этом случае нужно примерно такое же количество оперативной памяти.

Конструкция нейросети описана в научной работе автора «Semantic Style Transfer and Turning Two-Bit Doodles into Fine Artworks», которую он подготовил для конференции nucl.ai Conference 2016.

Нейросеть использует алгоритм синтеза изображений, который предложен исследователями Чуан Ли (Chuan Li) и Майклом Вандом (Michael Wand) в научной работе «Combining Markov Random Fields and Convolutional Neural Networks for Image Synthesis».

b2382ccaa0679cd72813ba9f6a207133.jpg

Редактор Гиктаймс

© Geektimes