Реклама

Нейронные сети могут многое сделать. Они могут интерпретировать изображения, понять наши голоса 6 Google Now Особенности, которые изменят ваш поиск Возможно, вы уже используете Google Now на своем устройстве Android, но получаете ли вы от него все, что можете? Знание об этих небольших особенностях может иметь большое значение. Подробнее , и переводить разговоры Как работает Skype Trek TranslatorНовая функция перевода Skype предлагает что-то, о чем мечтали со времен Star Trek - удобный способ общения на разных языках. Подробнее . Но знаете ли вы, что они также могут рисовать?

Недавний исследовательский документ (озаглавленный «Нейронный алгоритм художественного стиля«) Начал бурную онлайн-дискуссию с несколькими яркими наглядными примерами. По сути, в статье обсуждается методика обучения глубокая нейронная сеть Microsoft против Google - Кто возглавляет гонку искусственного интеллекта?Исследователи искусственного интеллекта достигают ощутимого прогресса, и люди снова начинают серьезно говорить об искусственном интеллекте. Двумя титанами, ведущими гонку искусственного интеллекта, являются Google и Microsoft.

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

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

PaperImages

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

Сегодня я расскажу вам, как это сделать, и покажу вам некоторые из моих собственных результатов. Вы можете думать об этом как о свободном продолжении нашего DeepDream учебник Создайте свои собственные мечты об искусственной лихорадке с Google "DeepDream"Вы видели странные изображения, выходящие из DeepDream? Хочешь сделать свой собственный? Смотрите не дальше! Подробнее . Это немного сложно, но любой, у кого есть машина с Linux, может следовать за ней - никакого опыта программирования не требуется.

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

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

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

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

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

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

С самого начала, это проект с открытым исходным кодом, поэтому мы хотим иметь Гит установлены. Git это золотой стандарт для программного обеспечения контроля версий Что такое Git и почему вы должны использовать контроль версий, если вы разработчикКак веб-разработчики, мы часто работаем над локальными сайтами разработки, а затем просто загружаем все, когда закончим. Это хорошо, когда это только ты и изменения небольшие, ... Подробнее . Практически каждый проект с открытым исходным кодом, о котором стоит знать, размещается на Github.

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

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

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

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

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

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

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

- Глубокий Подделчик (@DeepForger) 5 сентября 2015 г.

Каркасы

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

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

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

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

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

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

- Глубокий Подделчик (@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

- Глубокий Подделчик (@DeepForger) 6 сентября 2015 г.

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

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

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

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

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

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

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

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

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

Результаты

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Технологии

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

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

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

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

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

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

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

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

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

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

Андре, писатель и журналист, базирующийся на юго-западе, гарантированно сохраняет работоспособность до 50 градусов Цельсия и водонепроницаем на глубине до двенадцати футов.