Создайте свои собственные нейронные картины с DeepStyle & Ubuntu

Нейронные сети могут многое сделать. Они могут интерпретировать изображения, понимать наши голоса

и переводить разговоры

, Но знаете ли вы, что они также могут рисовать?

Недавняя исследовательская работа (озаглавленная «Нейронный алгоритм художественного стиля») вызвала волну онлайн-дискуссий с несколькими яркими наглядными примерами. По сути, в статье обсуждается методика обучения глубокой нейронной сети.

отделить художественный стиль от структуры изображения и объединить стиль одного изображения со структурой другого. Результатом всего этого является то, что вы можете обучить огромную нейронную сеть превращать фотографии в «нейронные картины», которые выглядят так, как будто они были написаны известными художниками — так называемые «цифровые подделки».

Вот несколько примеров из статьи. Первое изображение — оригинал. Более поздние изображения являются сгенерированными результатами, а рисунок, из которого был взят образец, показан в миниатюре.

PaperImages

Оригинальные исследователи не выпустили свой код, к сожалению. Однако некоторые бесстрашные программисты копировали свои результаты за последние несколько дней, и их код доступен с открытым исходным кодом в Интернете. Все, что вам нужно для запуска — это машина Linux и немного терпения.

Сегодня я расскажу вам, как это сделать, и покажу вам некоторые из моих собственных результатов. Вы можете думать об этом как о свободном продолжении нашего урока DeepDream

, Это немного сложно, но любой, у кого есть машина с Linux, может следовать за ней — опыт программирования не требуется.

Я превратил светлую картину Пикассо в картину в стиле Пикассо с помощью #DeepStyle! pic.twitter.com/cjkEoIhVcF

— Джеймс Блаха (@jamesblaha) 5 сентября 2015 г.

Настройка программного обеспечения

Во-первых, если вы не спешите или у вас нет компьютера с Linux, вы все равно можете поиграть с DeepStyle с помощью бота DeepForger в Twitter (отправьте ему изображение и стиль, и он в конечном итоге ответит результатами, которые вы хочу). Если вы хотите быстро обработать больше изображений (и с большим контролем над результатами), читайте дальше для этого урока.

Прежде всего, убедитесь, что у вас есть актуальная копия Ubuntu (14.04 это то, что я использовал). У вас должно быть хотя бы несколько лишних гигабайт места на жестком диске. Для получения дополнительной информации, ознакомьтесь с нашим руководством по двойной загрузке Ubuntu вместе с Windows

, Вам также понадобятся права суперпользователя, поэтому убедитесь, что вы делаете это, прежде чем продолжить.

Основные инструменты

С самого начала, это проект с открытым исходным кодом, поэтому мы хотим иметь Гит установлены. Git — золотой стандарт для программного обеспечения контроля версий

, Практически каждый проект с открытым исходным кодом, о котором стоит знать, размещается на Github.

Чтобы загрузить и установить Git, просто откройте терминал и введите «sudo apt-get установить gitИ согласны с требованиями установщика.

Далее: мы собираемся настроить некоторые основные инструменты необходимо, чтобы программное обеспечение работало.

Сначала установите Lua. Это язык, на котором написан инструмент. Это довольно просто. Просто введите «sudo apt-get установить lua5.2»И следуйте процессу установки.

Во-вторых, мы собираемся забрать Луарокса. Это инструмент, который облегчает установку других инструментов (разве вы не любите Linux?). Для этого введите «sudo apt-get установить luarocks»И следуйте инструкциям по установке.

В-третьих, мы собираемся установить Luajit. Это своевременный компилятор для Lua, который сделает нашу жизнь немного проще. Просто введите «sudo apt-get установить luajit

Все идет нормально.

Я бот, который создает подделки из ваших фотографий в стиле известных художников. Нажмите для получения инструкций ниже! pic.twitter.com/3MpThDNwRE

— Deep Forger (@DeepForger) 5 сентября 2015 г.

Каркасы

Далее мы собираемся установить Torch — научную среду для вычислительных систем и машинного обучения, которая составляет основу приложения. К сожалению, его нельзя установить с помощью apt-get (стандартный менеджер пакетов Ubuntu).

К счастью, у них есть однострочный установщик, который использует магию командной строки. Вернитесь в свой терминал и введите «curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-all | удар«.

Когда вы закончите, введите «Луаджит-Лторч«. Это вызовет интерфейс резака и проверит, что все установлено правильно.

Выход из этого.

Теперь мы собираемся установить loadcaffe — пакет, специфичный для нейронной сети. Установите его единственную зависимость, набрав «sudo apt-get установить libprotobuf-dev protobuf-compiler«. Затем вы можете установить сам пакет, используя «sudo luarocks устанавливает loadcaffe ".

@Johnicholas Ваша поломка подделки, стиль avec от Школы Рембрандта ван Рейна. #DigitalArt #StyleNet pic.twitter.com/pf0sZxWkaT

— Deep Forger (@DeepForger) 7 сентября 2015 г.

Двойная проверка зависимостей

Наконец, мы собираемся предварительно обновить некоторые вещи, просто чтобы убедиться, что все идет гладко.

Тип «sudo luarocks установочный образ», Чтобы убедиться, что ваш пакет изображений обновлен. Далее введите «luarocks устанавливает nn”, Которая сделает то же самое для вашего пакета“ nn ”.

Установка Deep Style

Хорошо! На данный момент мы готовы фактически установить само программное обеспечение. Ради чистоты создайте новую папку в вашем домашнем каталоге («mkdir DeepStyle»). Затем введите его, используя «CD Deepstyle«. Теперь наберите «sudo git clone https://github.com/jcjohnson/neural-style.git ".

Далее нам нужно скачать модель. Сделать чашку кофе или что-то, это займет некоторое время. Вернитесь к терминалу и введите «sudo sh models / download_models.sh«. Это начнёт долгий, сложный процесс загрузки. Если это не удается из-за ошибок разрешений, попробуйте дать себе разрешения на чтение и запись для соответствующих папок, используя chmod.

@ 44thats44oars заказал этот #ProceduralArt #NeuralArt. pic.twitter.com/tbMH7gsvc8

— Deep Forger (@DeepForger) 6 сентября 2015 г.

Использование Deep Style

Хорошо, мы в порядке. Использовать программное обеспечение довольно просто.

Убедитесь, что вы находитесь в DeepStyle / Нейронный стиль в терминале. Теперь вам нужно несколько изображений для работы. Загрузите их из Интернета (или как угодно), затем скопируйте их в Папка DeepStyle / нейронный стиль с помощью файлового браузера.

Теперь вы можете использовать командную строку для обработки отдельных изображений. Формат довольно прост:

th neural_style.lua -style_image YOURPAINTINGHERE.jpg - content_image YOURPHOTOHERE.jpg -gpu -1

(Очевидно, вам нужно будет заменить куски во ВСЕХ CAPS именами ваших файлов).

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

После нескольких часов попыток (и несколько раз кирпича операционной системы) я не смог заставить Ubuntu и CUDA хорошо играть с моим GPU (NVIDIA GTX 970). Если вам повезет больше, вы захотите установить CUDA и cudann.torch (см. Репозиторий github для получения дополнительной информации). Если нет, то все в порядке — он все еще будет работать с вашим процессором; это будет немного медленнее.

Если у вас есть какие-либо проблемы с получением всей этой работы, просто спросите меня в комментариях, и я сделаю все возможное, чтобы помочь вам.

Результаты

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

Зэк-Paden-композит

Нажмите здесь для полного разрешения.

Это мой друг Зак во время похода в Йеллоустоун. Стиль происходит от абстрактной картины, созданной Терезой Паден. Мне было любопытно посмотреть, как система справится с использованием изображения без какой-либо структуры. Результаты довольно опрятны, и вы определенно можете увидеть сходство со стилем изображения.

Джерси-Сити-Демут-композит

Нажмите здесь для полного разрешения.

Этот — любезно предоставлен одним из моих любимых художников, Чарльзом Демутом (см .: Благовония новой церкви и рисунок 5 на золоте). Интересно, что Демут является одним из основных визуальных источников вдохновения для искусства Team Fortress 2

, как вы можете видеть из изображения стиля.

Я передал ему изображение города Джерси, которое я нашел в Викимедиа. Результаты … довольно хорошие. Он не уловил угловатости стиля Демута, но, несомненно, подобрал мягкий, текстурированный вид и цветовую палитру.

цветы-OKeefe-композит

Нажмите здесь для полного разрешения.

Это попытка создать синтетический О’Киф, используя довольно приземленную картину некоторых цветов, которые я нашел. Результаты, честно говоря, впечатляющие. Эстетически это один из моих любимых результатов. Богатство цветов и форм О’Киффа четко прослеживается. Слоистые края цветочных лепестков становятся краями листьев на заднем плане. Сами цветы растворяются в цветах, становясь почти абстрактными.

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

Шеннон-Picasso-композит

Нажмите здесь для полного разрешения.

Вот моя подруга Шеннон в своем костюме на Хэллоуин с принтом Пикассо. Интересно, что устройство предпочло покрасить нижнюю часть ее лица в белый цвет (аналогично цветовой раскладке кусочка Пикассо). Я не уверен, было ли это совпадением или нет, но результаты поразительны. Похоже, что он правильно идентифицировал волосы Шеннона на левой стороне и заново нарисовал их, используя цвет и линию линий волос в образе стиля. То же самое для ее шляпы.

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

эйфель-VanGogh-композит

Нажмите здесь для полного разрешения.

Довольно просто: фотография Эйфелевой башни и другая Звездная ночь Ван Гога. Он отлично справляется с рендерингом облака в стиле Ван Гога, несмотря на отсутствие облаков на исходном изображении. Это также делает хорошую работу по переводу сцены со дня на ночь.

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

Туманность-VanGogh-композит

Нажмите здесь для полного разрешения.

Та же картина Ван Гога, но на этот раз я подарил ей несколько настоящих звезд. В этом случае часть столбов туманности Орла. Мне нравятся результаты — хотя, еще раз вы можете видеть его одержимость желтыми полосами. Каждая вертикальная часть столба становится яркой, шаткой желтой линией. Он также явно расстроен зелеными, которых нет в данных тренировок, и делает все возможное, чтобы избавиться от них в пользу синих и черных.

Технология

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

Что меня во всем этом волнует, так это то, что я не считаю эти ограничения фундаментальными.

Используемый здесь подход — тренировка сети на одном изображении и использование его для построения другого — в основном является своего рода взломом. Это дает сети очень мало данных для работы. Более продвинутая версия этого приложения будет использовать сеть, которая имеет информацию о многих картинах и, возможно, даже реальных изображениях, чтобы дать ей достаточно контекста об изображении, которое он пытается «нарисовать».

Глубокое понимание стиля может существовать только в более широком контексте. Вы не можете получить его из одного изображения. Разработка архитектуры, которая дает системе доступ к более широким данным, может позволить ей получить более «человеческое» представление об изображении и о том, как художники представляют различные элементы реального мира. Такая сеть может создавать изображения, которые являются более абстрактными и имеют лучшую композицию. Такие алгоритмы перестали бы быть крутой игрушкой (как эта) и стали бы способом создавать настоящее, оригинальное искусство.

Это в некотором роде очень своеобразная мысль.

Создание ваших собственных изображений

Если вы получите неутешительный результат, вы можете немного поэкспериментировать с вариантами, чтобы получить более убедительные результаты. Полный список есть на Github. Важными из них являются

  • -content_weight -value Сколько весит срок реконструкции контента. По умолчанию 5e0.
  • -style_weight -value: Сколько веса придать стилю изображения. По умолчанию 1e2.
  • -style_scale — значение: Какой размер патчей изображения должен анализировать система («Большой» становится более абстрактным). По умолчанию 1,0.

Как только вы получите все, что вам нравится, пожалуйста, оставьте ваши самые интересные изображения в комментариях. Мне действительно интересно посмотреть, что вы, ребята, придумали.

Авторы изображений: художник мозга человека через Shutterstock

Ссылка на основную публикацию
Adblock
detector