В этой статье я проиллюстрирую свою работу, что я сделал. Сначала будет обсуждаться мотивация. Во-вторых, я представлю фундаментальную теорию своей работы. Напоследок покажу доработанный вариант своей идеи и результат моей работы. Авторские права на видео и связанное изображение принадлежат JVR Music International Ltd. и Jay Chou. Оригинальный видео-сайт находится здесь. Если есть какие-либо проблемы с авторскими правами, сообщите мне, и я удалю эти изображения.

Мотивация

18 января 2018 года известный певец Джей Чоу выпустил свой первый сингл за последний год. Название этой песни называется «Жду тебя» (等 你 下課). В этот драгоценный день он передал фанатам согревающее благословение:

這首歌是送給自己、也是送給你們的生日禮物

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

Меня тронула песня, текст и экран. Каждый кадр показывает уникальное чувство к моему сердцу. Первая идея состоит в том, что я хочу жить в мире Джея Чоу и попытаться изменить окончание этого периода эмоций. Однако мы не можем жить в фильме. Как попытаться жить в фильме - главная тема этой работы.

Основная идея о переносе стиля

Сначала я пытаюсь проникнуться трогательностью в видео Чоу. Далее мы можем перенести вопрос в задачу переноса стиля. В последние годы ученые пытаются использовать технику глубокого обучения для решения этой проблемы. Пионером в использовании этого подхода является эта статья [1].

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

Другой метод основан на генеративной состязательной сети (GAN). В этом подходе в структуре есть два компонента: генератор и дискриминатор. Генератор попытается отобразить изображение, а дискриминатор определит, находится ли оно в реальном пространстве изображения или в пространстве стиля изображения.

Классическая модель: CycleGAN

В конце марта 2017 года была разработана классическая модель под названием Cycle-Consistent Adversarial Networks (CycleGAN) [2]. Этот проект за короткое время получил тысячи звезд на страницах GitHub. Самая креативная идея заключается в том, что он может достичь непарного тренировочного образа. Например, вы не можете найти двух лошадей и зебры, выполняющих одно и то же действие в одной и той же среде и на одном фоне. Однако с помощью CycleGAN мы можем достичь преобразования лошадь-зебра. Эта модель также может выполнять некоторые другие задачи, в том числе изображение на фото и лето на зиму, как показано на рисунке 3.

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

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

Другой путь в этой топологии - это обратное направление, противоположное первому пути. Реальное изображение будет передано генератором реального ожидания, а затем определить, находится ли оно в области изображения ожидания, с помощью дискриминатора ожидания. Затем сгенерированное изображение будет передано обратно с помощью генератора ожидания до реального, и в конце будет выполнено сравнение потерь l1.

Есть еще одна ключевая проблема. Чтобы сгенерированное изображение сохранило исходный цветовой тон, автор также включил потерю отображения идентичности. Идея потери сопоставления идентичности заключается в том, что изображение будет сохранять ту же структуру и интенсивность с помощью генератора, чье целевое пространство изображения такое же, как и входное. Идея потери сопоставления идентичности показана на рисунке 5. Добавляя эту потерю l1, генератор может гарантировать сопоставление идентичности между одним и тем же доменом изображения.

Маска-CycleGAN

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

Пересмотренная версия топологии вычисления потерь показана на рисунке 7. Как мы видим, перед вычислением потерь l1 в пространстве ожидания оба изображения умножат маску, чтобы удалить текстовую область. Однако это изменение приведет к слишком высокой дисперсии этой текстовой области. Чтобы контролировать дисперсию. Мы устанавливаем параметр вероятности α, чтобы управлять этим пересмотром. В наших экспериментах α составляет 0,5.

Результат

В наших экспериментах мы используем оборудование GTX 1080-ti. В этой работе будут обучаться две модели: обычный CycleGAN и Mask-CycleGAN. Каждая модель тренируется в течение 10 эпох, и ей нужно потратить около 1 дня, чтобы завершить обучение. Данные обучения, которые мы используем в пространстве ожидания, - это экран в видео, которое вас ждет. Изображение захватывается для каждых 10 кадров, а количество изображений в пространстве ожидания составляет 749.

С другой стороны, мы используем набор данных MS-COCO, чтобы стать обучающими данными в реальном пространстве. В исходной статье естественное изображение использовалось для обучения передаче фотоизображения. Однако в нашем пространстве ожидания встречаются некоторые неестественные объекты, такие как здания и школы. Чтобы увеличить общую семантику между двумя пространствами изображений, мы отбрасываем исходный набор данных Flickr и применяем MS-COCO, который улавливает более дикую семантику в реальном мире.

На рисунке 8 показаны результаты рендеринга. 1-я и 2-я строки показывают первый путь (ожидание → реальное → ожидание), который мы упоминали в предыдущем разделе. С другой стороны, 3-я и 4-я строки показывают второй путь (реальный → ожидающий → реальный). Левая часть - это результат рендеринга обычного CycleGAN, а правая часть - результат рендеринга Mask-CycleGAN. На рисунке 9 показан еще один результат тренировки.

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

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

Наконец, я показываю результат рендеринга на спортивном поле нашей школы на рисунке 11. Левое изображение - исходное изображение, а правая - результат рендеринга. К сожалению, мы можем просто изучить размытие и темную окраску пространства ожидания. Ему еще предстоит дойти до стиля в мире Джея Чоу.

Увеличение общей семантики

Однако, как вы можете видеть на рисунках 8 и 9, результат рендеринга не идеален. Думаю, есть две причины. Во-первых, в наборе данных MS-COCO недостаточно общей семантики, которую генератор мог бы изучить. В оригинальной статье CycleGAN автор также обсуждал, что преобразование между кошкой и собакой не удастся, поскольку у них не было достаточно общей информации.

Во-вторых, состязательная потеря, которую я принимаю, - это потеря по методу наименьших квадратов. Согласно исходной статье LSGAN [3], потеря наименьших квадратов приведет к большему ущербу для изображения, если оно фальшивое, и тенденция показана на рисунке 12. В результате изображение может стать робким, чтобы сгенерировать изображение с помощью специфический пастельный стиль.

Чтобы преодолеть эти два недостатка, я стараюсь использовать оригинальную структуру CycleGAN с генератором ResNet-6 и дискриминатором DCGAN. Затем я пытаюсь использовать исходную двоичную кросс-энтропийную потерю в качестве состязательной потери. Наконец, я использую другой набор данных, который мы собираем сами. Этот набор данных содержит изображение с обложки оригинального клипа. Кроме того, мы принимаем последний долгожданный клип, который Джей Чоу выпустил 21 февраля 2018 года, что может увеличить разнообразие и общее послание.

В этом наборе данных 1782 изображения в модальности реального мира и 2039 изображений в модальности ожидающего вас. Кроме того, есть некоторые изображения с затемнением, которые намного темнее другого. Чтобы предотвратить потемнение результата рендеринга, мы игнорируем эти изображения с низкой яркостью.

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

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

Так в чем же проблема, которая вызывает худшую производительность при первоначальной реализации? Наконец, мы снова пытаемся использовать ошибку наименьших квадратов, и результат показан на рисунке 15. Как вы можете видеть, результат имеет меньшую дисперсию, чем рисунок 14, и контур объекта также более четкий, чем рисунок 14. В результате мы делаем простой вывод: увеличение доли семантики изображения может увеличить свойство, которое находится в другом домене изображения!

Вывод

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

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

Ссылка

[1] Леон А. Гэтис, Александр С. Экер и Маттиас Бетге, «Передача стилей изображения с помощью сверточных нейронных сетей», В 2016 г. конференция IEEE по компьютерному зрению и распознаванию образов (CVPR), Лас-Вегас , Невада, США, 27–30 июня 2016 г., стр. 2414–2423.

[2] Джун-Ян Чжу, Тэсун Пак, Филипп Изола и Алексей А. Эфрос, «Непарный преобразование изображения в изображение с использованием CycleConsistent Adversarial Networks», На Международной конференции по компьютерному зрению (ICCV) , Венеция, Италия, 22–29 октября 2017 г., стр. 2223–2232.

[3] Сюйдун Мао, Цин Ли, Хаоран Се, Раймонд Ю.К. Лау, Чжэнь Ван и Стивен Пол Смолли, «Генеративные состязательные сети методом наименьших квадратов», arXiv: 1611.04076 [cs.CV], апрель 2017 г.