Изменения

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

Задача трансляции изображений

3861 байт добавлено, 19:30, 4 сентября 2022
м
rollbackEdits.php mass rollback
Чтобы различать реальные и синтезированные изображения с высоким разрешением, дискриминатор должен иметь большое поле восприятия. Для этого потребуется либо более глубокая сеть, либо более крупные сверточные ядра, оба из которых увеличат емкость сети и потенциально могут вызвать переобучение. Кроме того, оба варианта требуют большего объема памяти для обучения, что уже является дефицитным ресурсом для создания изображений с высоким разрешением. Для решения проблемы предлагаем используется '''3 дискриминатора''', которые имеют идентичную структуру сети, но работают с разными масштабами изображения<ref name="Pix2PixHDPaper">[https://arxiv.org/pdf/1711.11585.pdf High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs]</ref>.
'''Функция ошибки''' была улучшена за счет добавления ошибки (feature matching loss) в разных масштабах изображениядля каждого дискриминатора <tex>\sum_{k=1}^{3} L_{FM}(G, D_k)</tex>, для вычисления которой будем использовать выдаваемые значения дискриминатора на разных слоях изображения: <tex>L_{FM}(G, D_k) = \mathbb{E}_{(s,x)}\sum_{i=1}^{T}\frac{1}{N_i}[||D_k^{(i)}(s,x) - D_k^{(i)}(s, G(s))||]</tex>, где <tex>T</tex> {{---}} количество слоев, <tex>N_i</tex> {{---}} количество элементов в каждом слое, <tex>s</tex> {{---}} исходное сегментированное изображение, <tex>x</tex> {{---}} соответствующее реальное изображение, <tex>G(s)</tex> {{---}} сгенерированное изображение. На рисунках 11 и 12 приведены примеры генерации изображения по входным сегментированным изображениям с применением различных стилей.
[[File:City_pix2pixhd.gif|600px|center|thumb|Рис. 11. Пример работы Pix2PixHD {{---}} label-to-streetview.<ref name="Pix2PixHD">[https://github.com/NVIDIA/pix2pixHD Pix2PixHD {{---}} GitHub]</ref>]]
== CycleGAN ==
[[File:CycleGAN Arxitecture.jpeg|390px|right|thumb|Рис. 13. Алгоритм CycleGAN <ref name="Алгоритм CycleGAN">[https://habr.com/ru/post/479218/ Алгоритм CycleGAN]</ref>]]Нейронная сеть, в отличии от описанной выше Pix2Pix позволяет реализовать решение задачи обучения на независимых множествах. Обычно применяются для задач изменения стиля фотографий.[[File:Model.jpg|400px|right|thumb| Архитектура CycleGAN]]
=== Архитектура ===
'''CycleGAN '''<ref name=" Cycle-Consistent Adversarial Networks">[https://arxiv.org/abs/1703.10593 Cycle-Consistent Adversarial Networks]</ref> реализует архитектуру циклически-согласованных с циклом состязательных сетей (англ. {{---}} ''Cycle-Consistent Adversarial Networks''), суть, которой состоит в решении проблемы отсутствия парного набора данных. В Архитектуре присутствуют 2 генератора и 2 дискриминатора которые выполняют различные задачи:*Генератор <math>G_{A}</math> учится преобразовывать исходное изображение <math>X</math> в выходное изображение <math>Y</math> *Генератор <math>G_{B}</math> учится преобразовывать выходное изображение <math>Y</math> в исходное изображение <math>X</math>*Дискриминатор <math>D_{A}</math> учится различать изображение <math>X</math> и сгенерированное изображение <math>X ( G_{B}(Y) )</math>*Дискриминатор <math>D_{B}</math> учится различать изображение <math>Y</math> и сгенерированное изображение <math>Y ( G_{A}(X) )</math>Структура генератора состоит из кодировщика (англ. {{---}} ''Encoder''), создающего функцию особенностей из исходного изображения, трансформатора (англ. {{---}} ''Transformation''), изменяющего функцию особенностей для создания сгенерированного изображения, и декодера (англ. {{---}} ''Decoder''), возвращающего функцию особенностей обратно в формат изображения. Структура дискриминатора состоит из декодера, извлекающего особенности из входного изображения, и классификатора, определяющего сгенерировано ли изображение.[[File:Generator.jpeg|390px|right|thumb|Рис. 14. Архитектура Генератора <ref name="how CycleGAN works"></ref>]][[File:Discriminator.jpeg|390px|right|thumb|Рис. 15. Архитектура Дискриминатора <ref name="how CycleGAN works"></ref>]]Реализация элементов дискриминатора и генератора аналогичны тем, которые используются в Pix2Pix. '''Сеть ''' предоставляет подход перевода изображение изображения из исходного домена <math>X</math> в целевой домен <math>Y</math> при отсутствии парных примеров. Цель задачи в изучении отображения <math>G{A}: X → Y </math>, так, чтобы распределение изображений <math>GG_{A}(X)</math> было неотличимо от распределения <math>GG_{B}(Y)</math> с учетом состязательной потери(aнгл. {{---}} ''Сonsistency loss'').Так же что бы Также чтобы избежать коллапса мод<ref name="Mode Collapse">[httpshttp://arxivneerc.ifmo.orgru/abswiki/1705index.php?title=Generative_Adversarial_Nets_(GAN)#.D0.A3.D0.BB.D1.83.D1.87.D1.88.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BE.D0.B1.D1.83.D1.87.D0.B5.D0.BD.D0.B8.07761 режима коллапсаD1.8F_GAN Улучшение обучения GAN]</ref>(англ. {{---}} ''Mode collapse''), мы проверяем следует проверить отображение <math>G : Y → X </math>, который пытается сопоставить <math>Y</math> и <math>X</math>.  Другими словами для выполнения успешного преобразования должно выполниться следующее условие <math>G_{Y to XB}(G_{X to YA}(X)) \sim x X + Сonsistency~lossLoss_{full}. </math> Структура дискриминатора и генератора аналогичны тем, которые используются в Pix2Pix.==== Функция потерь потери ====Функция потерь должен потери<ref name="Cyclic_loss">[https://towardsdatascience.com/a-gentle-introduction-to-cycle-consistent-adversarial-networks-6731c8424a87 Cyclic_loss]</ref> должна быть выполнен выполнена таким образом , что быДискриминатор одобрял все оригинальные изображения соответствующих категорий отображения должны быть противоположными друг другу и взаимно однозначными. Она состоит из потери согласованности цикла (англ. {{---}} ''Cycle Consistency Loss'') и отклонял все изображениясостязательной потери (англ. {{---}} ''Adversarial loss''). <tex>Loss_{adv}(G,D_{B},X) = \frac{1}{m}(\sum_{i=1}^m(1 -D_{B}(G_{Xi})))*2</tex> <tex>Loss_{adv}(F,D_{A},Y) = \frac{1}{m}(\sum_{i=1}^m(1 -D_{A}(F_{Yi}))*2</tex> <tex>Loss_{cyc}(G,F, которые генерируются соответствующими ГенераторамиX, чтобы обмануть их.Y) = \frac{1}{m}\sum_{i=1}^m(F(G(Xi) - Xi) + (G(F(Yi)) - Yi))</tex> Генераторы должны заставить дискриминаторы утверждать все сгенерированные изображения<tex>Loss_{full} = Loss_{adv} + \lambda * Loss_{cyc}</tex>, чтобы обмануть их.
=== Примеры ===Обычно применяются где <tex>\lambda</tex> {{---}} гиперпараметр для следующих задач:* изменения стиля фотографии;[[File:Doge starrynight.jpg|7010px|center|thumb| Пример работы CycleGAN]]уравнения потери согласованности цикла
[[File:Doge starrynight.jpg|700px|center|thumb|Рис. 16. Пример работы CycleGAN <ref name="how CycleGAN works">[https://towardsdatascience.com/cyclegan-how-machine-learning-learns-unpaired-image-to-image-translation-3fa8d9a6aa1d Пример работы CycleGAN]</ref>]]
[[File:Comics.png|700px|center|thumb|Рис. 17. Пример работы CycleGAN <ref name="Алгоритм CycleGAN"></ref>]]
== См. также ==
1632
правки

Навигация