Редактирование: Neural Style Transfer

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

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
{{в разработке}}
 
 
 
== Описание алгоритма NST==
 
== Описание алгоритма NST==
  
Строка 160: Строка 158:
 
=====Parametric PSPM with Summary Statistics=====
 
=====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 предложены Джонсоном и Ульяновым соответственно. Они имеют схожую идею, заключающуюся в том, чтобы предварительно обучить сеть, ориентированную на стиль прямой связи, и получить стилизованный результат с одним прямым проходом на этапе тестирования. Они отличаются только сетевой архитектурой, для которой дизайн Джонсона примерно соответствует сети, предложенной Рэдвордом, но с остаточными блоками и с извилистыми частями, а Ульянов использовал многомасштабную архитектуру в качестве сети генератора.  
 
Первые два алгоритма MOB-NST предложены Джонсоном и Ульяновым соответственно. Они имеют схожую идею, заключающуюся в том, чтобы предварительно обучить сеть, ориентированную на стиль прямой связи, и получить стилизованный результат с одним прямым проходом на этапе тестирования. Они отличаются только сетевой архитектурой, для которой дизайн Джонсона примерно соответствует сети, предложенной Рэдвордом, но с остаточными блоками и с извилистыми частями, а Ульянов использовал многомасштабную архитектуру в качестве сети генератора.  
 
[[Neural_Style_Transfer#Алгоритм Гатиса | Целевая функция аналогична алгоритму Гатиса]], который указывает, что эти алгоритмы также являются ''параметрическими методами со сводной статистикой''.  
 
[[Neural_Style_Transfer#Алгоритм Гатиса | Целевая функция аналогична алгоритму Гатиса]], который указывает, что эти алгоритмы также являются ''параметрическими методами со сводной статистикой''.  
Строка 170: Строка 167:
 
=====Non-parametric PSPM with MRFs=====
 
=====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. Показано, что этот метод превосходит алгоритмы  Джонсона и Ульянова в сохранении связных текстур в сложных изображениях, благодаря патч-дизайну. Однако их алгоритм имеет менее удовлетворительную производительность с неструктурными стилями (например, изображениями лица), поскольку он не учитывает семантику. Другие недостатки их алгоритма включают в себя отсутствие учета глубины информации и вариаций мазков кисти, которые являются важными визуальными факторами.
 
'''Алгоритм Ли и Ванда''' решает проблему эффективности, обучая марковскую прямую сеть (англ. ''Markovian feed-forward network''), используя состязательное обучение (англ. ''adversarial training''). Он представляет собой непараметрический метод на основе патчей с MRF. Показано, что этот метод превосходит алгоритмы  Джонсона и Ульянова в сохранении связных текстур в сложных изображениях, благодаря патч-дизайну. Однако их алгоритм имеет менее удовлетворительную производительность с неструктурными стилями (например, изображениями лица), поскольку он не учитывает семантику. Другие недостатки их алгоритма включают в себя отсутствие учета глубины информации и вариаций мазков кисти, которые являются важными визуальными факторами.
  
Строка 202: Строка 198:
 
====Arbitrary-Style-Per-Model Neural Methods====
 
====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:
 
ASPM-MOB-NST, направлена ​​на единую модель для всех, то есть на единую обучаемую модель для передачи произвольных художественных стилей. Существует также два типа ASPM:
  
Строка 217: Строка 212:
 
<math>I = Dec(AdaIN(\mathcal{F} (I_{C}), \mathcal{F} (I_{S})))</math>
 
<math>I = Dec(AdaIN(\mathcal{F} (I_{C}), \mathcal{F} (I_{S})))</math>
  
Алгоритм алгоритм Хуана и Белонги - первый алгоритм ASPM, который достигает стилизации в реальном времени. Но он основан на данных и ограничен в обобщении на невидимые алгоритмом стили.  
+
Алгоритм алгоритм Хуана и Белонги - первый алгоритм ASPM, который достигает стилизации в реальном времени. Но он основан на данных и ограничен в обобщении на невидимые стили.  
  
В '''алгоритме Ли''' предпринята попытка использовать ряд трансформаций функций для передачи произвольного художественного стиля в свободной от стиля манере обучения. Аналогично, алгоритм Ли использует первые несколько слоев предварительно обученного VGG в качестве кодера и обучает соответствующий декодер. Но он заменяет слой AdaIN между кодером и декодером парой '''преобразований отбеливания и окрашивания''' (англ '' whitening and colouring transformations''):
+
В '''алгоритме Ли''' предпринята попытка использовать ряд трансформаций функций для передачи произвольного художественного стиля в свободной от стиля манере обучения. Аналогично, алгоритм Ли использует первые несколько слоев предварительно обученного VGG в качестве кодера и обучает соответствующий декодер. Но они заменяют слой AdaIN между кодером и декодером парой '''преобразований отбеливания и окрашивания''' (англ '' whitening and colouring transformations''):
  
 
<math>(WCT): I = Dec(WCT(\mathcal{F} (I_{C})),\mathcal{F} (I_{S}))</math>
 
<math>(WCT): I = Dec(WCT(\mathcal{F} (I_{C})),\mathcal{F} (I_{S}))</math>
Строка 229: Строка 224:
 
=====Non-parametric Texture Modelling with MRFs=====
 
=====Non-parametric Texture Modelling with MRFs=====
  
'''Алгоритм Чена и Шмидта''': сначала извлекается набор патчей активации из активаций контента и функций стиля, рассчитанных в предварительно обученной сети VGG. Затем  каждый патч контента сопоставляется с наиболее похожим патчем стиля, они меняются местами ('''обмен стилями'''). Стилизованный результат можно получить, воссоздав получившуюся карту активации после замены стиля с использованием методов [[Neural_Network_Style#Image Reconstruction techniques | IOB-IR или MOB-IR]].  
+
'''Алгоритм Чена и Шмидта''': сначала извлекается набор патчей активации из активаций контента и функций стиля, рассчитанных в предварительно обученной сети VGG. Затем  каждый патч контента сопоставляется с наиболее похожим патчем стиля, они меняются местами ('''обмен стилями'''). Стилизованный результат можно получить, воссоздав получившуюся карту активации после замены стиля с использованием методов IOB-IR или MOB-IR.  
  
 
Алгоритм Чена и Шмидта является более гибким, чем предыдущие подходы, из-за его характеристики «одна модель для всех». Но стилизованные результаты менее привлекательны, так как патчи контента обычно меняются на патчи стилей, которые не представляют желаемый стиль. В результате контент хорошо сохраняется, в то время как стиль, как правило, плохо отражается.
 
Алгоритм Чена и Шмидта является более гибким, чем предыдущие подходы, из-за его характеристики «одна модель для всех». Но стилизованные результаты менее привлекательны, так как патчи контента обычно меняются на патчи стилей, которые не представляют желаемый стиль. В результате контент хорошо сохраняется, в то время как стиль, как правило, плохо отражается.
Строка 239: Строка 234:
 
В уравнении выше, чтобы получить общую потерю <math>L_{total}</math> нужно рассчитать потерю содержимого <math>L_{content}</math> и потерю стиля <math>L_{style}</math>, а также <math>\alpha</math> и <math>\beta</math> {{---}} гиперпараметры, которые используются для определения весов для каждого типа потерь, то есть эти параметры можно представить просто как "рычаги" для управления тем, сколько контента / стиля мы хотим наследовать в сгенерированном изображении.
 
В уравнении выше, чтобы получить общую потерю <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 Рис. 8. Различные представления, используемые для изображений контента, стиля и сгенерированного изображения]]]
+
[[Файл:Image6.jpeg|500px|thumb|right|[https://towardsdatascience.com/neural-style-transfer-tutorial-part-1-f5cd3315fa7f Рис. 5. Различные представления, используемые для изображений контента, стиля и сгенерированного изображения]]]
  
 
Во время каждой итерации все три изображения, передаются через модель VGG16. Значения функции активации нейронов, которые кодируют представление признаков данного изображения на определенных слоях, принимаются как входные данные для этих двух функций потерь. Также стоит добавить: изначально мы случайным образом инициализируем сгенерированное изображение, например, матрицей случайного шума такого же разрешения, как и изображение контента. С каждой итерацией мы изменяем сгенерированное изображение, чтобы минимизировать общую потерю '''L'''.
 
Во время каждой итерации все три изображения, передаются через модель VGG16. Значения функции активации нейронов, которые кодируют представление признаков данного изображения на определенных слоях, принимаются как входные данные для этих двух функций потерь. Также стоит добавить: изначально мы случайным образом инициализируем сгенерированное изображение, например, матрицей случайного шума такого же разрешения, как и изображение контента. С каждой итерацией мы изменяем сгенерированное изображение, чтобы минимизировать общую потерю '''L'''.
Строка 277: Строка 272:
 
==Расширения алгоритмов NST==
 
==Расширения алгоритмов NST==
  
[[Neural_Style_Transfer#Классификация методов NST | Вышеупомянутые методы NST]] предназначены для общих неподвижных изображений. Они могут не подходить для специализированных типов изображений и видео (например, рисунков, портретов на голове и видеокадров), поэтому были созданы расширения алгоритма NST на эти конкретные типы.
+
[[Neural_Style_Network#Классификация методов NST | Вышеупомянутые методы NST]] предназначены для общих неподвижных изображений. Они могут не подходить для специализированных типов изображений и видео (например, рисунков, портретов на голове и видеокадров), поэтому были созданы расширения алгоритма NST на эти конкретные типы.
  
 
===Semantic Style Transfer===
 
===Semantic Style Transfer===
Строка 534: Строка 529:
 
* [https://towardsdatascience.com/neural-style-transfer-series-part-2-91baad306b24 TensorFlow and pyTorch Implementation of Neural 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://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]
 
  
 
[[Категория: Машинное обучение]]
 
[[Категория: Машинное обучение]]
 
[[Категория: Нейронные сети]]
 
[[Категория: Нейронные сети]]
 
[[Категория: Сверточные нейронные сети]]
 
[[Категория: Сверточные нейронные сети]]

Пожалуйста, учтите, что любой ваш вклад в проект «Викиконспекты» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Викиконспекты:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Чтобы изменить эту страницу, пожалуйста, ответьте на приведённый ниже вопрос (подробнее):

Отменить | Справка по редактированию (в новом окне)

Шаблоны, используемые на этой странице: