Изменения

Перейти к: навигация, поиск

Neural Style Transfer

85 байт убрано, 17:42, 19 апреля 2020
Нет описания правки
{{в разработке}}
 
== Описание алгоритма NST==
====Parametric Texture Modelling with Summary Statistics====
Одним из путей к моделированию текстуры является сбор статистики изображения из образца текстуры и использование сводных статистических свойств для моделирования текстуры. Создается представление на основе Грам Грама для текстур модели, которое представляет собой корреляцию между откликами фильтра в различных слоях предварительно обученной классификационной сети (сеть VGG). Основанное Представление на Грамах основе Грама кодирует статистику второго порядка набора ответов фильтра CNN.
Предположим, что карта объектов образца изображения текстуры <math>I_{s}</math> на слое <math>l</math> предварительно обученной модели:
 <math>\mathcal{F}^l(I_{s}) \in \mathbb{R} ^ {C \times H \times W}</math>,  где <math>С</math> {{---}} количество каналов, <math>H</math> и <math>W</math> {{---}} высота и ширина карты объектов <math>\mathcal{F}^l(I_{s})</math>.
Тогда представление на основе Грама может быть получено путем вычисления матрицы Грама <math>G(\mathcal{F}^l(I_{s})^\prime) \in \mathbb{R} ^ {C \times C}</math> на карте объектов <math>\mathcal{F}^l(I_{s})^\prime \in \mathbb{R} ^ {C \times HW}</math> :
====Non-parametric Texture Modelling with Markov Random Fields (MRFs)====
Другой известной методологией моделирования текстур является использование непараметрического ресемплирования. Различные непараметрические методы основаны на '''модели MRF''', которая предполагает, что в текстурном изображении каждый пиксель полностью характеризуется своей пространственной окрестностью. Предлагается синтезировать каждый пиксель один за другим путем поиска похожих окрестностей в исходном текстурном изображении и назначения соответствующего пикселя. Ускорить процесс сопоставления окрестностей можно всегда используя фиксированную окрестность.
===Image Reconstruction techniques===
====Model-Optimisation-Based Offline Image Reconstruction====
''Реконструкция автономных изображений на основе оптимизации моделей'' (MOB-IR). Для решения проблемы эффективности, было предложено заранее обучить сеть прямой связи (англ. ''feed-forward network'') и поставить вычислительную нагрузку на этапе обучения. На этапе тестирования обратный процесс может быть просто выполнен с помощью прямого прохода по сети. Это значительно ускоряет процесс восстановления изображения.
==Классификация методов NST==
===Image-Optimisation-Based Online Neural Methods===
Основная идея алгоритмов IOB-NST состоит в том, чтобы сначала смоделировать и извлечь информацию о стиле и содержимом контенте из соответствующих изображений стиля и содержимогоконтента, объединить их в качестве целевого представления, а затем итеративно восстановить стилизованный результат, который соответствует целевому представлению. В целом, разные  Разные алгоритмы IOB-NST используют одну и ту же технику IOB-IR, но отличаются тем, как они [[Neural_Style_Transfer#Visual Style Modelling | моделируют визуальный стиль]], который основан на категориях [[Neural_Style_Transfer#Visual Texture Modelling | методов визуального моделирования текстур]].
Общим ограничением алгоритмов IOB-NST является то, что они являются дорогостоящими в вычислительном отношении, из-за итеративной процедуры оптимизации изображения.
=====Алгоритм Гатиса=====
Согласно тому, что глубокая CNN способна извлекать содержимое контент изображения из произвольной фотографии и некоторую информацию о внешнем виде из картины, создается компонент контента вновь стилизованного изображения, штрафуя разницу в представлениях высокого уровня, полученных из контента и стилизованных изображений, и дополнительно формируется компонент стиля путем сопоставления сводной статистики стилей и стилизованных изображений на основе Грам Грама из [[Neural_Style_Transfer#Visual Texture Modelling | метода моделирования текстур]].
Для заданного изображения контента <math>I_{C}</math> и стиля изображения <math>I_{S}</math> алгоритм пытается найти стилизованное изображение <math>I</math>, которое минимизирует '''цель''':
<math>I^* = \arg \min_{I} \mathcal{L}_{total}(I_{C}, I_{S}, I) = \arg \min_{I} \alpha \mathcal{L}_{C}(I_{C}, I) + \beta \mathcal{L}_{S}(I_{S}, I)</math>,
где <math>\mathcal{L}_{C}</math> {{---}} потеря контента, сравнивает представление контента данного изображения и контента с изображением стилизованного изображения, а <math>\mathcal{L}_{S}</math> {{---}} потеря стиля, сравнивает представление стиля на основе Грамы, полученной из изображения стиля, Грама с стилизованным изображением стилизованного изображения. <math>\alpha</math> и <math>\beta</math> используются для баланса компонента контента и компонента стиля в стилизованном результате.
<math>\mathcal{L}_{C}</math> и <math>\mathcal{L}_{S}</math> дифференцируемы. Таким образом, при случайном шуме в качестве начального <math>I</math>, это уравнение можно минимизировать, используя градиентный спуск с обратным распространением в пространстве изображения с обратным распространением.
=====Возможные варианты решения проблем алгоритма Гатиса=====
'''Алгоритм Гатиса''' не имеет явных ограничений на тип стилевых изображений, в отличие от предыдущих алгоритмов [[Neural_Style_Transfer#Обзор предыдущих методов | IB-AR без CNN]]. Однако алгоритм неэффективно сохраняет согласованность тонких структур и деталей во время стилизации, так как функции CNN неизбежно теряют некоторую информацию низкого уровня. Кроме того, он обычно не подходит для фотореалистичного синтеза из-за ограничений представления стилей на основе ГрамГрама. Также он не учитывает изменения мазков кисти, информацию о семантике и глубине, содержащуюся в изображении контента, которые являются важными факторами при оценке качества изображения.
Одним из ограничений алгоритма на основе Грама является его нестабильность во время оптимизаций и ручная настройка параметров. Райзером было обнаружено, что активация функций с совершенно разными средствами средними и дисперсиями может иметь одну и ту же матрицу Грама, что является основной причиной нестабильности. Поэтому была введена '''дополнительная потеря гистограммы, которая направляет оптимизацию для соответствия всей гистограмме активаций функции'''. Также было представлено предварительное решение для автоматической настройки параметров, которое заключается в явном предотвращении градиентов с экстремальными значениями посредством экстремальной нормализации градиента.Путем И путем дополнительного сопоставления гистограммы активаций признаков '''алгоритм Райзера''' обеспечивает более стабильную передачу стилей с меньшим количеством итераций и усилий по настройке параметров. Однако его преимущество достигается за счет высокой вычислительной сложности. Кроме того, Но вышеупомянутые недостатки алгоритма Гатиса все еще существуют, например, недостаток рассмотрения в глубину и согласованность деталей.
Так как функции CNN неизбежно теряют некоторую информацию низкого уровня, содержащуюся в изображении, в стилизованных результатах изображениях обычно присутствуют некоторые непривлекательные искаженные структуры и нерегулярные артефакты. Чтобы сохранить согласованность тонких структур во время стилизации, Ли предлагает включить дополнительные ограничения на низкоуровневые элементы в пиксельном пространстве. Он вводит дополнительную потерю Лапласа, которая определяется как квадрат евклидова расстояния между ответами фильтра Лапласа на контентное изображение и стилизованным результатом. '''Алгоритм Ли''' имеет хорошую производительность при сохранении тонких структур и деталей во время стилизации. Но ему все еще не хватает соображений имеются проблемы в семантике, глубине, вариациях мазков и т. д.
====Nonparametric Texture Modelling with MRFs====
===Model-Optimisation-Based Offline Neural Methods===
MOB-NST решает проблему скорости и вычислительных затрат [[Neural_Style_Transfer#Image-Optimisation-Based Online Neural Methods | IOB-NST ]] путем использования [[Neural_Style_Transfer#Model-Optimisation-Based Offline Image Reconstruction | MOB-IR]] для восстановления стилизованного результата, то есть сеть <math>g</math> с прямой связью оптимизируется для большого набора через большой набор изображений <math>I_{C}</math> для одного или нескольких изображений стиля <math>I_{S}</math>:
<math>\theta ^* = \arg \min \mathcal{L}_{total} (I_{C}, I_{S}, g_{\theta *}(I_{C})), I^* = g_{\theta *}(I_{C}) </math>
MOB-NST делится на методы:[[Neural_Style_Transfer#Per-Style-Per-Model Neural Methods | PerStyle-Per-Model (PSPM) MOB-NST]], [[Neural_Style_Transfer#Multiple-Style-Per-Model Neural Methods | Multiple StylePer-Model (MSPM) MOB-NST]] и [[Neural_Style_Transfer#Arbitrary-Style-Per-Model Neural Methods | Arbitrary-StylePer-Model (ASPM) MOB-NST]].
====Per-Style-Per-Model Neural Methods====
=====Parametric PSPM with Summary Statistics=====
[[Файл:IOB PSPM-MOB.JPG|600px|thumb|right|[https://arxiv.org/pdf/1705.04058.pdf Рис. 5. Примеры результатов IOB-NST и PSPM-MOB-NST]]]
Первые два алгоритма MOB-NST предложены Джонсоном и Ульяновым соответственно. Они имеют схожую идею, заключающуюся в том, чтобы предварительно обучить сеть, ориентированную на стиль прямой связи, и получить стилизованный результат с одним прямым проходом на этапе тестирования. Они отличаются только сетевой архитектурой, для которой дизайн Джонсона примерно соответствует сети, предложенной Рэдвордом, но с остаточными блоками и с извилистыми частями, а Ульянов использовал многомасштабную архитектуру в качестве сети генератора.
[[Neural_Style_Transfer#Алгоритм Гатиса | Целевая функция аналогична алгоритму Гатиса]], который указывает, что они эти алгоритмы также являются ''параметрическими методами со сводной статистикой''.
'''Алгоритмы Джонсона и Ульянова''' добились передачи стиля в реальном времени. Тем не менее, конструкция алгоритма в основном следует алгоритму Гатиса, что приводит к аналогичным проблем, что и у Гатиса (например, отсутствие рассмотрения в согласованность деталей и глубины информации).
После Ульянов также обнаружил, что простое применение нормализации к каждому отдельному изображению, а не к '''пакетной нормализации''' (англ. ''batch normalization, BN'') приводит к значительному улучшению качества стилизации. Нормализация одиночного изображения называется '''нормализацией экземпляра''' (англ. ''instance normalisation, IN''), что эквивалентно нормализации пакета, когда размер пакета = 1. Показано, что сеть передачи стиля с IN сходится быстрее, чем BN, а также обеспечивает визуально лучшие результаты. Одно из объяснений состоит в том, что IN является формой нормализации стиля и может напрямую нормализовать стиль каждого изображения контента до желаемого стиля. Следовательно, цель легче минимизировать, так как остальная часть сети должна заботиться только о потере контента.
=====Non-parametric PSPM with MRFs=====
[[Файл:MSPM MOB.JPG|600px|thumb|right|[https://arxiv.org/pdf/1705.04058.pdf Рис. 6. Примеры результатов ASPM-MOB-NST]]]'''Алгоритм Ли и Ванда''' решает проблему эффективности, обучая марковскую прямую сеть(англ. ''Markovian feed-forward network''), используя состязательное обучение(англ. ''adversarial training''). Он представляет собой непараметрический метод на основе патчей с MRF. Показано, что их этот метод превосходит алгоритмы Джонсона и Ульянова в сохранении связных текстур в сложных изображениях, благодаря патч-дизайну. Однако их алгоритм имеет менее удовлетворительную производительность с неструктурными стилями (например, изображениями лица), поскольку их алгоритм он не учитывает семантику. Другие недостатки их алгоритма включают в себя отсутствие учета глубины информации и вариаций мазков кисти, которые являются важными визуальными факторами.
====Multiple-Style-Per-Model Neural Methods====
Хотя вышеупомянутые подходы PSPM могут создавать стилизованные изображения на два порядка быстрее, чем предыдущие методы IOB-NST, отдельные генеративные сети (англ. ''generative networks'') должны быть обучены для каждого конкретного изображения стиля. Но многие картины (например, картины импрессионистов) имеют одинаковые мазки и отличаются только своей цветовой палитрой и для каждой из них необходимо обучать отдельную сеть. Поэтому предлагается MSPM, который повышает гибкость PSPM путем дальнейшего объединения нескольких стилей в одну модель. Это можно сделать двумя способами:
=====Привязка только небольшого количества параметров к каждому стилю=====
'''Алгоритм Дюмулена'''. Дюмулен обнаружил, что для моделирования различных стилей достаточно использовать одни и те же сверточные параметры масштабирования и сдвига в слоях [[Neural_Style_Transfer#Parametric PSPM with Summary Statistics | IN]]. Поэтому он предлагает алгоритм обучения условной мульти-стильной стилевой сети (англ. ''multi-style transfer network'') передачи на основе '''нормализации условного экземпляра''' (CIN):
<math>CIN(\mathcal{F}(I_{C}), s) = \gamma ^s \left ( \frac{\mathcal{F}(I_{C}) - \mu (\mathcal {F}(I_{C}))}{\sigma (\mathcal {F}(I_{C}))} \right ) + \beta ^s</math>
Каждый стиль <math>I_{S}</math> может быть достигнут путем настройки параметров аффинного преобразования. Нормализация статистики объектов с различными аффинными параметрами может нормализовать входное изображение контента для разных стилей. Кроме того, алгоритм Дюмулена также может быть расширен для объединения нескольких стилей в одном стилизованном результате путем объединения аффинных параметров различных стилей.
Другой алгоритм, который следует первому пути MSPM, предложен Чен. '''Алгоритм Чена''' явно отделяет стиль и контент, то есть использует отдельные сетевые компоненты для изучения соответствующего контента и информации о стиле.  Недостатком этим алгоритмов этого алгоритма является то, что они он не учитывают учитывает общие ограничения алгоритмов NST, например, отсутствие деталей, семантики, глубины и вариаций мазков кисти.
=====Объединение стиля и контента в качестве входных данных=====
Одним из недостатков привязки только небольшого количества параметров к каждому стилю является то, что размер модели, как правило, увеличивается с увеличением количества изученных стилей. Этот способ MSPM устраняет это ограничение, полностью исследуя возможности одной единственной сети и комбинируя контент и стиль в сети для идентификации стиля.
Учитывая <math>N</math> целевых стилей, '''алгоритм Ли''' проектирует единицу выбора для стиля, которая представляет собой N-мерный однократный вектор. Каждый бит в блоке выбора представляет определенный стиль в наборе целевых стилей. Для каждого бита в единице выбора сначала выбирают соответствующую шумовую карту <math>f(I_{S})</math> из равномерного распределения, а затем подают <math>f(I_{S})</math> в подсеть стиля, чтобы получить кодированные признаки соответствующего стиля <math>\mathcal{F} (f(I_{S}))</math>. Путем подачи конкатенации функций <math>\mathcal{F} (f(I_{S}))</math>, закодированных в стиле, и функций <math>Enc(I_{C})</math>, закодированных в контенте, в часть декодера сети передачи стиля NST можно получить желаемый стилизованный результат:
<math>I = Dec(\mathcal{F} (f(I_{S})) \odot Enc(I_{C}))</math>
Другой '''алгоритм Чжана и Дана''' сначала направляет каждое изображение стиля в стиле, установленном через предварительно обученную сеть VGG, и получает многомасштабные активации функций <math>\mathcal{F} (I_{S})</math> в разных слоях VGG. Затем многомасштабные <math>\mathcal{F} (I_{S})</math> объединяются с многомасштабными кодированными функциями <math>Enc(I_{C})</math> из разных уровней в кодере через их предлагаемые слои инспирации, которые предназначены для изменения формы <math>\mathcal{F} (I_{S})</math> в соответствии с требуемым измерением, а также имеют обучаемую матрицу весов для настройки карт объектов, чтобы помочь минимизировать целевую функцию.
Масштабируемость стилей этого типа MSPM намного меньше, поскольку для нескольких стилей используется только одна сеть. Кроме того, некоторые вышеупомянутые ограничения в первом типе MSPM Но при этом алгоритм все еще существуют, то есть алгоритмы второго типа MSPM все еще ограничены ограничен в сохранении когерентности тонких структур и информации о глубине.
====Arbitrary-Style-Per-Model Neural Methods====
[[Файл:ASPM-MOB.JPG|600px|thumb|right|[https://arxiv.org/pdf/1705.04058.pdf Рис. 7. Примеры результатов ASPM-MOB-NST]]]
ASPM-MOB-NST, направлена ​​на единую модель для всех, то есть на единую обучаемую модель для передачи произвольных художественных стилей. Существует также два типа ASPM:
<math>I = Dec(AdaIN(\mathcal{F} (I_{C}), \mathcal{F} (I_{S})))</math>
Алгоритм алгоритм Хуана и Белонги - первый алгоритм ASPM, который достигает стилизации в реальном времени. Но он основан на данных и ограничен в обобщении на невидимые алгоритмом стили.
В '''алгоритме Ли''' предпринята попытка использовать ряд трансформаций функций для передачи произвольного художественного стиля в свободной от стиля манере обучения. Аналогично, алгоритм Ли использует первые несколько слоев предварительно обученного VGG в качестве кодера и обучает соответствующий декодер. Но они заменяют он заменяет слой AdaIN между кодером и декодером парой '''преобразований отбеливания и окрашивания''' (англ '' whitening and colouring transformations''):
<math>(WCT): I = Dec(WCT(\mathcal{F} (I_{C})),\mathcal{F} (I_{S}))</math>
=====Non-parametric Texture Modelling with MRFs=====
'''Алгоритм Чена и Шмидта''': сначала извлекается набор патчей активации из активаций контента и функций стиля, рассчитанных в предварительно обученной сети VGG. Затем каждый патч контента сопоставляется с наиболее похожим патчем стиля, они меняются местами ('''обмен стилями'''). Стилизованный результат можно получить, воссоздав получившуюся карту активации после замены стиля с использованием методов [[Neural_Network_Style#Image Reconstruction techniques | IOB-IR или MOB-IR]].
Алгоритм Чена и Шмидта является более гибким, чем предыдущие подходы, из-за его характеристики «одна модель для всех». Но стилизованные результаты менее привлекательны, так как патчи контента обычно меняются на патчи стилей, которые не представляют желаемый стиль. В результате контент хорошо сохраняется, в то время как стиль, как правило, плохо отражается.
В уравнении выше, чтобы получить общую потерю <math>L_{total}</math> нужно рассчитать потерю содержимого <math>L_{content}</math> и потерю стиля <math>L_{style}</math>, а также <math>\alpha</math> и <math>\beta</math> {{---}} гиперпараметры, которые используются для определения весов для каждого типа потерь, то есть эти параметры можно представить просто как "рычаги" для управления тем, сколько контента / стиля мы хотим наследовать в сгенерированном изображении.
[[Файл:Image6.jpeg|500px|thumb|right|[https://towardsdatascience.com/neural-style-transfer-tutorial-part-1-f5cd3315fa7f Рис. 58. Различные представления, используемые для изображений контента, стиля и сгенерированного изображения]]]
Во время каждой итерации все три изображения, передаются через модель VGG16. Значения функции активации нейронов, которые кодируют представление признаков данного изображения на определенных слоях, принимаются как входные данные для этих двух функций потерь. Также стоит добавить: изначально мы случайным образом инициализируем сгенерированное изображение, например, матрицей случайного шума такого же разрешения, как и изображение контента. С каждой итерацией мы изменяем сгенерированное изображение, чтобы минимизировать общую потерю '''L'''.
==Расширения алгоритмов NST==
[[Neural_Style_NetworkNeural_Style_Transfer#Классификация методов NST | Вышеупомянутые методы NST]] предназначены для общих неподвижных изображений. Они могут не подходить для специализированных типов изображений и видео (например, рисунков, портретов на голове и видеокадров), поэтому были созданы расширения алгоритма NST на эти конкретные типы.
===Semantic Style Transfer===
* [https://towardsdatascience.com/neural-style-transfer-series-part-2-91baad306b24 TensorFlow and pyTorch Implementation of Neural Style Transfer]
* [https://pytorch.org/tutorials/advanced/neural_style_tutorial.html Neural Style Transfer using PyTorch]
* [https://arxiv.org/pdf/1705.04058.pdf Neural Style Transfer: A Review]
[[Категория: Машинное обучение]]
[[Категория: Нейронные сети]]
[[Категория: Сверточные нейронные сети]]
74
правки

Навигация