Метод минимизации потерь при переносе стиля в HD-качестве

10 августа 2018
Результат в высоком разрешении

Метод минимизации потерь при переносе стиля в HD-качестве

Изображение содержит информацию не только о фоне и отдельных объектах рисунка, но и о художественном стиле картины (или о фильтре, применённом к фотографии). Стиль — важная часть посыла изображения. Компьютерное…

Изображение содержит информацию не только о фоне и отдельных объектах рисунка, но и о художественном стиле картины (или о фильтре, применённом к фотографии). Стиль — важная часть посыла изображения. Компьютерное зрение помогает разложить рисунок на его содержание и стиль для раздельного анализа каждого из них. Если операция сделана корректно, то можно выполнить перенос стиля на другие изображение с сохранением исходного содержания:

Neural style transfer
Перенос стиля на картину «Мона Лиза» Леонардо да Винчи

Ключевое значение во всех методах переноса стиля играют сети VGG16 и VGG19, предварительно обученные в ImageNet. Современный тренд в глубоком обучении – избежание предварительного контролируемого обучения, которое требует утомительной разметки объектов. Вместо того, чтобы использовать отдельную предварительно подготовленную сеть VGG для измерения и оптимизации качества выходного результата, используется архитектура «кодер-декодер» с состязательным дискриминатором, который стилизует входное изображение, а также кодер для вычисления потерь при восстановлении.

Новый подход

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

Для быстрого переноса определенного стиля на изображение или видео применяют архитектуру прямого распространения, а не медленный подход, основанный на оптимизации. Для этого используется архитектура «кодер-декодер» T, в которой сеть кодера E сопоставляется с сорержанием входного изображения x с его скрытым представлением z=E(x). Генератор-декодер G, выступающий в роли художника, генерирует стилизованное выходное изображение y=G(z) по его наброску z. Как видно, стилизация требует только одного прямого распространения, то есть работает в режиме реального времени.

Предложенная архитектура GAN
Предложенная архитектура

Обучение с вычислением потерь при переносе стиля

В более ранних подходах обучение работало только с одним стилем. В данной работе одиночное изображение y0 задается вместе с набором Y изображений с тем же стилем yj∈Y. Для обучения E и G используется стандартный состязательный дискриминатор D, выделяющий стиль изображения G(E(xi)) из образцов yj∈Y. Преобразованное выражение имеет вид:

content loss

где C × H × W – размеры изображения x, которые нужны для обучения T с равномерным весом. На схеме выше приведена архитектура метода. В итоге полное выражение для потерь выглядит так:

full network

где λ – относительный вклад состязательной части энергии.

Группировка изображений с одинаковым стилем

Пусть дано изображение y0. Задача состоит в том, чтобы найти набор Y изображений yj∈Y с таким же стилем. Для определения художника по картине VGG16 учится с нуля на наборе данных Wikiart, состоящим из произведений 624 крупнейших (по числу работ) авторов. Классификация художников в данном случае является вспомогательной задачей для изучения значимых особенностей стиля картины, которые позволят найти похожие на y0 изображения.

Пусть φ(y) – активатор слоя fc6 сети VGG16 (C) для входного изображения y. Чтобы получить набор изображений с тем же стилем, что y0, из набора данных Wikiart (Y), мы вычисляем «ближайшие» к y0 изображения путем вычисления косинусного расстояния δ активатора φ(·), т.е.

wikiart dataset

Основой для модели переноса стиля является архитектура «кодер-декодер». Сеть кодера содержит 5 conv-слоев: 1×conv-stride-1 и 4×conv-stride-2. Сеть декодера имеет 9 остаточных блоков, 4 блока повышающей выборки и 1×conv-stride-1. Дискриминатор представляет собой полностью сверточную сеть с 7×conv-stride-2 уровнями. Во время обучения стиль переносится на 768 × 768 изображений из обучающего набора Places365 и на 768 × 768 изображений из набора данных Wikiart. С каждым образцом проводится 300 000 итераций, скорость обучения равна 0,0002. Также используется оптимизатор Adam. Скорость обучения снижается в 10 раз после 200 000 итераций.

Результат

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

Таблица 1
Таблица 1

Рассматриваемый метод был признан самым точным наибольшее число раз. Средний рейтинг экспертов рассчитывался для каждого метода с использованием 18 различных стилей (таблица 1).

Сравнение затрат памяти GPU (Titan X) и скорости вычислений для разных методов:

Сравнение затрат памяти GPU (Titan X) и скорости вычислений разных методов
Таблица 2
Сравнение методов
Сравнение методов: (а) — предлагаемый метод, (b) — предобученный VGG16 энкодер вместо E

В сухом остатке

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

Больше примеров работы нейросети:

comparison style transfer methods
Сравнение с другими методами переноса стиля. (b) и (с) — результаты, полученные с помощью нового метода; (d) — (i) — другие методы
Результат в высоком разрешении
Результат переноса стиля в высоком разрешении

ReCoNet: быстрый, точный и когерентный по времени перенос стиля на видео

2 августа 2018
Качественное сравнение с другими методами стилизации

ReCoNet: быстрый, точный и когерентный по времени перенос стиля на видео

По всему миру разработчики используют сверточные нейронные сети для переноса стилистики одного изображения на другое или просто модификации изображения. Когда существующие методы достигли высокой скорости обработки, исследователей и разработчиков заинтересовало…

По всему миру разработчики используют сверточные нейронные сети для переноса стилистики одного изображения на другое или просто модификации изображения. Когда существующие методы достигли высокой скорости обработки, исследователей и разработчиков заинтересовало преобразование видео. Тем не менее, модели стилизации картинок обычно плохо работают для видеороликов из-за высокой временной несогласованности (некогерентности): визуально это наблюдается как “мерцание” между последовательными преобразованными кадрами и несовпадение текстур и узоров движущихся объектов. Некоторым моделям удалось улучшить временную согласованность, но они не могут наряду с этим гарантировать высокую скорость обработки и хорошее качество восприятия.

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

Предлагаемый подход

Группа исследователей из Университета Гонконга предложила real-time coherent video style transfer network (ReCoNet) в качестве современного подхода к стилизации видео. Это нейронная сеть прямого распространения, позволяющая выполнять обработку в режиме real-time. Видеофайл преобразовывается кадр за кадром через энкодер/декодер. Сеть потерь VGG отвечает за учет качества восприятия стиля.

Новизна их подхода заключается в введении штрафов за искажение яркости в временны́х потерях (temporal loss) выходного уровня. Он позволяет фиксировать изменения яркости прослеживаемых пикселей во входном видео и повышает стабильность стилизации в областях с эффектами освещения. В целом, это ограничение является ключевым в подавлении некогерентности. Однако также предлагается ввести временну́ю потерю на уровне объектов, которая штрафует за изменения высокоуровневых признаков одного и того же объекта в последовательных кадрах, тем самым повышая согласованность на прослеживаемых объектах.

Архитектура сети

Рассмотрим технические детали предлагаемого подхода и более внимательно изучим архитектуру сети (представлена на рисунке 2).

Преобразование данных в ReCoNet
Рисунок 2. Преобразование данных в ReCoNet

ReCoNet состоит из трех модулей:

  1. Энкодер преобразует кадры входного изображения в карты признаков с извлеченной информацией о восприятии (perceptual information). Энкодер содержит три сверточных слоя и четыре остаточных блока (residual blocks).
  2. Декодер генерирует стилизованные изображения по картам признаков. Чтобы уменьшить артефакты вида “шахматная доска”, декодер включает в себя два сверточных слоя сэмплирования (up-sampling, он же unpooling) с последним сверточным слоем (вместо одного традиционного деконволюционного слоя).
  3. Сеть потерь VGG-16 вычисляет ошибки восприятия. Предварительно обучена на датасете ImageNet.

таблица 1

Кроме того, на выходах с энкодера и декодера вычисляется и суммируется многоуровневая временная ошибка для уменьшения некогерентности.

На этапе обучения применяется синергический механизм обучения, использующий два кадра (синергический эффект возрастание эффективности деятельности в результате соединения, интеграции, слияния отдельных частей в единую систему за счет так называемого системного эффекта, прим.). Это означает, что для каждой итерации сеть в два прогона генерирует карты признаков и преобразованный вывод для двух последовательных кадров. Обратите внимание, что на этапе тестирования сетью обрабатывается только один кадр ролика за один проход. Тем не менее, в процессе обучения временные потери вычисляются с использованием карт признаков и стилизованного вывода обоих кадров, а потери восприятия вычисляются на каждом кадре независимо и суммируются. Конечная функция потерь для двухкадрового обучения:

Функция потери
Функция потери

где α, 𝛽, 𝛾, 𝜆𝑓  и 𝜆𝜊 — это гиперпараметры при обучении.

Результаты, полученные с помощью ReCoNet

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

результаты

Результаты изменения стиля видео с использованием ReCoNet
Рисунок 3. Результаты изменения стиля видео с использованием ReCoNet

Затем исследователи провели количественное сравнение эффективности ReCoNet с тремя другими методами. В приведенной ниже таблице показаны временные ошибки четырех моделей преобразования видео в пяти разных сценах. Модель Ruder et al демонстрирует самые маленькие ошибки, но значения FPS не позволяют использовать ее в режиме real-time из-за малой скорости вывода. У модели Huang et al более низкие временные ошибки, чем у ReCoNet; но сможет ли эта модель захватить штрихи и мелкие текстуры аналогично ReCoNet? Обратимся к качественному анализу.

таблица 2

Как видно из верхней строки на рисунке 4, модель Huang et al плохо справляется с штрихами и узорами. Это может быть связано с тем, что она использует малое отношение веса между потерями восприятия и временными потерями для поддержания когерентности. Кроме того, модель использует карты признаков из более глубокого слоя relu4_2 в loss-сети для вычисления потери содержимого, что затрудняет обработку низкоуровневых признаков, таких как границы.

Качественное сравнение с другими методами стилизации
Рисунок 4. Качественное сравнение с другими методами стилизации

Нижняя строка на рисунке 4 показывает, что результаты работы Chen et al хорошо воспринимаются и по содержимому, и по стилю. Тем не менее, при увеличении некоторых областей можно обнаружить заметную некогерентность, что подтверждается более высокими временными ошибками.

таблица 3

Интересно, что авторы также сравнили модели, изучая отзывы пользователей. Для каждого из двух сравнений к 4 различным видеоклипам применялись 4 разных стиля. Для опроса были приглашены 50 человек, им предлагалось ответить на следующие вопросы:

  • (Q1) Какая модель передает стиль лучше, особенно цвет, штрихи, текстуры и другие визуальные шаблоны?
  • (Q2) Какая модель лучше согласована по времени (т. е. где меньше мерцающих артефактов и цвет и стиль одного и того же объекта более стабилен)?
  • (Q3) Какая модель предпочтительнее в целом?

Результаты этого исследования, как показано в таблице 3, подтверждают выводы, сделанные из качественного анализа: ReCoNet достигает гораздо лучшей когерентности, чем модель Chen et al, сохраняя при этом одинаково хорошее восприятие стилей; модель Huang et al превосходит ReCoNet, когда дело доходит до временной согласованности, но визуально воспринимается результат гораздо хуже.

Итоги

Этот новый подход к переносу стиля на видео отлично подходит для создания согласованных стилизованных видеороликов в режиме обработки real-time, генерируя при этом действительно приятную для восприятия картинку. Авторы предложили использовать ограничение искажения яркости в временных потерях на уровне выходных данных и временную потерю уровня карты признаков для повышения стабильности при различных эффектах освещения, а также для лучшей временной согласованности. Когда речь заходит про когерентность, то ReCoNet оказывается среди новейших методов. Учитывая высокую скорость обработки и выдающиеся результаты в захвате информации о содержимом и стилистике, этот подход, безусловно, находится на “передовой” в стилистической обработке видео.

Перевод — Эдуард Поконечный

Неконтролируемое преобразование изображений с механизмом внимания

30 июля 2018
Unsupervised Attention-Guided Image-to-Image Translation

Неконтролируемое преобразование изображений с механизмом внимания

Преобразование «image-to-image» – метод отображения фото из исходного домена в целевой. Метод включают в себя раскраску изображений, восстановление со сверхвысоким разрешением, перенос стиля, адаптацию домена и увеличение плотности данных. Для…

Преобразование «image-to-image» – метод отображения фото из исходного домена в целевой. Метод включают в себя раскраску изображений, восстановление со сверхвысоким разрешением, перенос стиля, адаптацию домена и увеличение плотности данных. Для большинства подходов требуется, чтобы данные доменов были спарены или согласованы друг с другом, как, например, при переносе спутниковых снимков на топографические карты. Как следствие, возникают сложности с применением алгоритма, вплоть до невозможности решения некоторых задач.

Неконтролируемые методы, такие как DiscoGAN и CycleGAN, преодолевают проблему путем вычисления циклических потерь, наличие которых побуждает целевой домен точно восстанавливаться в исходный при выполнении обратного преобразования. Входное изображение подается в архитектуру нейронной сети, подобную связке «кодер-декодер», называемую генератором, которая выполняет преобразование изображения. Затем выходной результат подается на дискриминатор, который пытается определить, правильно ли было отображено исходное изображение. Однако эти подходы ограничены неспособностью системы действовать только на определенные участки изображения. В неконтролируемом случае, когда домены не сопряжены или не согласованы, сеть должна дополнительно определить, какие области изображений предназначены для преобразования.

Сравнение различных подходов.
Рис. 1. Сравнение различных подходов преобразования лошади в зебру и льва в тигра

Например, из рисунка 1 видно, что для корректного перехода между доменами лошади и зебры нужно, чтобы сеть находила и изменяла только те участки изображений, на которых изображены животные. Задача является сложной для существующих алгоритмов, даже если они, как PatchGAN, вычисляют локализованные потери, поскольку сама сеть не имеет явного механизма внимания. Вместо этого алгоритмы обычно минимизируют расхождение между изображением в исходном и целевом доменах, учитывая все пиксели. Для преодоления ограничения на эффективность работы алгоритма применяется новый подход, в рамках которого минимизируется расхождение лишь информативной части изображения (в двух доменах) без учета фона.

Архитектура

data flow diagram

Целью преобразования изображения является приближенное вычисление отображения F(S→T) из домена исходного изображения S в домен целевого изображения Т, основанное на независимых выборках X(S) и X(T), таких, что распределение отображенных точек F(S→T) (XS) совпадает с распределением вероятности P(T) целевого изображения. Для обучения передаточной сети F(S→T) требуется наличие дискриминатора D(T), который пытается обнаружить в образцах X(T) преобразованные изображения. Для согласованности циклов обратное отображение F(T→S) и соответствующий дискриминатор D(S) обучаются одновременно. Для этого требуется решение двух одинаково важных задач:

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

Для этого были разработаны две сети внимания A(S) и A(T), которые осуществляют выбор областей для преобразования путем максимизации вероятности того, что дискриминатор совершает ошибку.

Генератор механизма внимания

Исходные изображения подаются в сеть внимания A(s) для выполнения отображения s(a)=AS(s). Получаемое изображение s’ имеет вид:

attention guided generator

«Приоритетный» объект s(f) формируется путем поэлементного умножения в каждом канале RGB: s(f)=s(a)⊙s. Затем s(f) подается в генератор F(S→T), который отображает его в целевой домен Т. Затем к полученному результату добавляется фоновое изображение s(b) =(1-s(a))⊙s.

Функция потерь. Потери определяются состязательной частью энергии:

attention guided generator

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

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

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

При непрерывном отображении внимания дискриминатор может получать на вход «дробные» значения пикселей, которые могут быть близки к нулю в начале обучения. В то время как генератор выигрывает от возможности смешивания пикселей на границах объектов, умножение реальных изображений на эти дробные значения приводит к тому, что дискриминатор начинает считать, что серый цвет является «реальным» (т. е. мы сдвигаем результат в точку 0 нормированной области значений яркости пикселя [-1 , 1]). Обученное отображение внимания для дискриминатора имеет вид:

Таким образом, улучшенное выражение для состязательной части энергии L(adv) имеет вид:

Результат

Для оценки качества работы предложенного метода преобразования изображений использовался принцип Fréchet Inception Distance (FID). FID вычисляет расстояние Фреше между функциями, которые сопоставляются реальному и сгенерированному изображениям. Такие функции извлекаются из последнего скрытого уровня архитектуры FID. Наш метод позволяет достичь наименьшего значения FID во всех случаях, кроме одного. Следующим по эффективности, после нашего, является метод CycleGAN. UNIT достигает второго наименьшего значения FID, что означает, что предположение о скрытых параметрах в данном случае является уместным. Код доступен по ссылке.

FID для различных алгоритмов

Современные неконтролируемые методы преобразования изображения в изображение могут отображать как нужные, так и ненужные (фоновые) части изображения. Как следствие, генерируемые изображения не выглядят реалистично, так как фон и приоритетный объект обычно совмещаются ненадлежащим образом. Включив механизм внимания в неконтролируемое преобразование изображения в изображение, наш подход демонстрирует значительное улучшение качества генерируемых изображений.

image-to-image translation

Превращение яблок в апельсины и наоборот

Превращение яблок в апельсины и наоборот

Бонус: результаты эксперимента по удалению текстур

Используя только дискриминатор всего изображения сразу («Ours-D»), сети внимания начинают изменять помимо «приоритетного» объекта также и его фон, как показано в нижнем ряду:

результаты эксперимента по удалению текстур

Оригинал – Muneeb Ul Hassan

TwinGAN  — междоменный перенос человеческих портретов

25 июня 2018
Neural style transfer

TwinGAN  — междоменный перенос человеческих портретов

С тех пор как Джерри Ли, автор этой статьи, начал смотреть аниме, одна мысль не давала ем покоя: он просто не умеет рисовать. После многочисленных попыток, которые закончились “уничтожением” любимых…

С тех пор как Джерри Ли, автор этой статьи, начал смотреть аниме, одна мысль не давала ем покоя: он просто не умеет рисовать. После многочисленных попыток, которые закончились “уничтожением” любимых персонажей, он сдался… пока не начал заниматься машинным обучением. В наше время ИИ играет в “go” (хорошо), управляет машинами (не очень хорошо), пишет стихи, которые никто не понимает, даже кажется возможным одолжить ему кисточку и надеяться, что он что-то сделает. Как же превратить все человеческие портреты в персонажей аниме с помощью ИИ? Это и является последним проектом автора.

На самом деле было много попыток научить ИИ рисовать. Автор представил два из них в прошлом: Neural Style Transfer и раскрашивание эскиза с использованием Generative Adversarial Networks(GAN), оба из которых тесно связаны с этим проектом.

Neural Style Transfer

Проще говоря, Style transfer — это перенос стиля одного изображения на другое. Стиль включает мазки кисти, выбор цвета, света и тени, объект, к которому применяется стиль. После того как Gatys изобрел метод переноса стиля с использованием нейронных сетей в 2015 году, возникла проблема, которая пугает некоторых исследователей.

twin-gan
Последние результаты Style Transfer от Deep Painterly Harmonization

Neural style transfer требует предварительно обученной сети для сегментации, а большинство таких сетей обучаются на реальных объектах. Таким образом, когда дело доходит до стилей, которые придают объектам реальной жизни совсем другой вид — например, удлиненные ноги, огромные глаза и вообще почти всё, что вы можете получить от аниме-изображения — neural style работает не очень хорошо.

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

GANы

Если перенос стиля является одним из путей в мир аниме, то другой путь — это Generative Adversarial Network, или GAN. Еще в 2014 году знаменитый Ян Гудфеллоу (Ian Goodfellow) придумал GAN — пару конкурирующих нейронных сетей, которые могут имитировать любые данные, если дано достаточное количество образцов, достаточно хорошая сеть и достаточно времени для обучения. Некоторые недавние довольно известные приложения, включая MakeGirlsMoe и PGGAN, о котором мы подробно писали ранее.

Faces by GAN
Несуществующие лица, сгеренерованные PGGAN

Последние GAN модели могут генерировать довольно высокое качество изображения, и это не всё. GAN также способен “переводить” один тип изображений в другой. К концу 2016 года модель под названием pix2pix была изобретена Phillip Isola и др. из Беркли. Изображения из двух разных доменов (например. карты и спутниковые изображения), pix2pix способен переводить с одного в другое. Тем временем, Taizan Yonetsuji из Preferred Networks представил PaintsChainer, основанную на Unet GAN модель, которая автоматически раскрашивает аниме-эскизы. Оба идеально подходят для нашего проекта. Однако оба требуют “парных данных” (по одному изображению из каждого домена). Из-за стоимости никто не публиковал парный набор данных о портретах людей и аниме.

pix2pix
Взято из pix2pix

Непарный междоменный GAN

Когда дело доходит до непарных данных, уровень сложности совершенно другой. Это похоже на изучение нового языка без словаря. К счастью, автор не единственный исследователь, увязший в высокой стоимости парных данных. В 2016 году Facebook опубликовал документ под названием “Unsupervised Cross-Domain Image Generation”, в котором показано, как переводить два типа изображений, когда только один тип имеет метки, без парных данных. Вскоре после этого в 2017, Jun-Yan Zhu и др. ввели похожую модель под названием CycleGan, которая работает на немаркированных непарных наборах данных.

анимация gan
Пример сгенированной анимации

Для решения проблемы непарного набора данных обе модели делают предположение, что при переводе изображения типа A в изображение типа B и обратно в A результирующее изображение после двух переводов не должно сильно отличаться от исходного входного изображения. Используя пример текстового переводчика, когда вы переводите с английского на испанский и обратно на английский, предложение, которое получилось, не должно слишком отличаться от того, с которого вы начали. Разница между ними называется потерей согласованности циклов, которую можно использовать для обучения модели преобразования изображений, такой как CycleGAN.

Unsupervised Cross-Domain Image Generation
Взято из Unsupervised Cross-Domain Image Generation

Пробуем CycleGAN

Хорошая новость: у CycleGAN открытый исходный код. После клонирования репозитория git автор начал собирать тренировочные данные. Он взял 200k изображений из CelebA в качестве человеческих портретов. Затем он использовал метод, упомянутый в техническом отчете MakeGirlsMoe и насобирал около 30к аниме картинок на сайте Getchu.

getchu
Пример изображения из Getchu (Ayaneruuu!)

После двух дней тренировок, результат выглядит так:

Выглядит нормально, но что-то не так… Оказывается, у CycleGAN есть свои ограничения. Сеть вынуждена найти взаимно однозначное сопоставление для всей информации от ввода до целевого домена, поскольку это минимизирует потерю согласованности цикла. Тем не менее, реальные и аниме изображения иногда не имеют биективного (one-to-one) отображения. Например, у людей нет волос или глаз со всеми видами цветов, и в реальной жизни лицо гораздо более подробно, чем в аниме. При выполнении преобразования изображений между ними неразумно просить сеть найти биективное сопоставление, поскольку, вероятно, такого сопоставления нет. Форсирование такой потери в сети, вероятно, не даст хороших результатов.

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

Попробуй Еще Раз! Но с помощью другого подхода

К счастью, когда существующие методы GAN не работают, мы все еще можем отталкиваться от Style Transfer. В начале 2016 года Винсент Дюмулен (Vincent Dumoulin) из Google Brain, изучая только две переменные в Batch Normalization, обнаружил, что они могут использовать одну и ту же сеть для вывода изображений с широким диапазоном стилей. Они могут даже смешивать и соответствовать стилю, смешивая эти параметры. Их статья “A Learned Respresentation For Artistic Style” показывает, что Batch Normalization — метод, первоначально изобретенный для стабилизации обучения нейронной сети — имеет больший потенциал, чем предполагалось.

Вдохновленный методами, упомянутыми выше, автор назвал свою сеть Twin-GAN и завершил ее структуру.

Технические детали Twin-GAN

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

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

  • Человеческий портрет → кодировщик → высокоразмерный вектор → генератор PGGAN + человеческие параметры нормализации→ человеческий портрет
  • Аниме портрет → кодировщик→ высокоразмерный вектор->PGGAN генератор + аниме параметры нормализации → аниме портрет
  • Человеческий портрет → кодировщик → высокоразмерный вектор→ PGGAN генератор + аниме параметры нормализации→ аниме портрет

Как упоминалось в Facebook paper, позволение портретам людей и аниме использовать одну и ту же сеть, помогает сети понять, что хотя они выглядят немного по-разному, портреты людей и аниме описывают лицо. Это очень важно для переноса изображений. Переключатель, который решает, выводить портрет человека или аниме, находится в параметрах нормализации.

Что касается функции потерь, автор использовал следующие четыре потери:

  1. Потеря реконструкции человеческого портрета;
  2. Потеря реконструкции портрета аниме;
  3. Человек к аниме Ган потеря;
  4. Человек к потере последовательности цикла аниме.

Результаты

После обучения результат выглядит следующим образом:

Результат
Результат

Неплохо, правда?

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

twingan generation

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

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

На самом деле, эта сеть может быть применена ко многим другим задачам. Например, что произойдет, если обучить её на изображениях кошек?

cats like

Да! Это весело. Тем не менее, во многих случаях, нельзя быть абсолютно удовлетворенным результатами работы сети. Например, если на входном изображении есть каштановые волосы, а хочется, чтобы на выходе были ярко-зеленые волосы. Модель не поддерживает прямую модификацию таких функций. Автор использовал illust2vecдля извлечения характеристик, таких как цвет волос и глаз. Затем он получил некоторые идеи из Conditional generative adversarial nets и предоставил эти характеристики в качестве вложений в генератор. Теперь, когда создается изображение, оно использует дополнительного персонажа аниме в качестве входных данных, и переданный результат должен выглядеть так, как этот персонаж, с положением и выражением лица (TODO) человеческого портрета, сохраненным нетронутым. Результат следующий:

algorithm twingan

Результат пока не идеален. Но можно потратить еще немного времени на его улучшение в будущем. Самое главное: теперь есть удивительный ИИ, который может превратить человеческий портрет в кошачью морду, оригинального персонажа аниме или любого персонажа, данного на вход пользователем, поэтому больше не нужно учиться живописи.

P. S.

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

mistake

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

Еще две вещи, которые стоит упомянуть: несколько месяцев назад Шуан Ма(Shuang Ma) предложил сеть под названием DA-GAN, которая использует карту внимания для перевода изображений, и также получил хорошие результаты. И только недавно (2018/4/15) Nvidia раскрыла фреймворк, который превращает кошек в собак. И то, и другое заставляет надеяться на более интересные будущие события в этой области.

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