Генерация изображения по тексту — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Add image examples)
(Remove category "В разработке")
 
(не показано 17 промежуточных версий 3 участников)
Строка 1: Строка 1:
{{В разработке}}
+
Автоматическое создание реалистичных высококачественных изображений из текстовых описаний было бы интересно и довольно полезно, так как имеет множество практических применений, но современные системы искусственного интеллекта все еще далеки от этой цели, так как это является довольно сложной задачей в области компьютерного зрения. Однако в последние годы были разработаны универсальные и мощные рекуррентные архитектуры нейронных сетей для изучения различных представлений текстовых признаков. Между тем, глубокие сверточные [[Generative Adversarial Nets (GAN)| генеративные состязательные сети]] (англ. ''Generative Adversarial Nets, GANs'') начали генерировать весьма убедительные изображения определенных категорий, таких как лица, обложки альбомов и интерьеры комнат. Образцы, генерируемые существующими подходами "текст-изображение", могут приблизительно отражать смысл данных описаний, но они не содержат необходимых деталей и ярких частей объекта. В данной статье рассмотрены формулировка и глубокая архитектура GAN, а также объединены достижения в генерации изображений по тексту.
Автоматическое создание реалистичных высококачественных изображений из текстовых описаний был бы интересен и довольно полезен, так как имеет множество практических применений, но современные системы искусственного интеллекта все еще далеки от этой цели, так как это является довольно сложной задачей в области компьютерного зрения. Однако в последние годы были разработаны универсальные и мощные рекуррентные архитектуры нейронных сетей для изучения различных представлений текстовых признаков. Между тем, глубокие сверточные [[Generative Adversarial Nets (GAN)| генеративные состязательные сети]] (англ. ''Generative Adversarial Nets, GANs'') начали генерировать весьма убедительные изображения определенных категорий, таких как лица, обложки альбомов и интерьеры комнат. Образцы, генерируемые существующими подходами "текст-изображение", могут приблизительно отражать смысл данных описаний, но они не содержат необходимых деталей и ярких частей объекта. В данной статье рассмотрены формулировка и глубокая архитектура GAN, а также объединены достижения в генерации изображений по тексту.
 
  
 
== Обзор генеративных моделей ==
 
== Обзор генеративных моделей ==
Строка 14: Строка 13:
 
| style = "text-align: center" | [[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]]
 
| style = "text-align: center" | [[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]]
 
|-
 
|-
| style = "text-align: right"  | [[#Attribute2Image|Attribute2Image]]  
+
| style = "text-align: center"  | [[#Attribute2Image|Attribute2Image, 2015]]  
 
| style = "text-align: center" | <tex>14.30 \pm 0.10</tex>
 
| style = "text-align: center" | <tex>14.30 \pm 0.10</tex>
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
| style = "text-align: center" | <tex>256 \times 256</tex>
+
| style = "text-align: center" | <tex>64 \times 64</tex>
 
| style = "text-align: center" | [https://github.com/xcyan/eccv16_attr2img да]
 
| style = "text-align: center" | [https://github.com/xcyan/eccv16_attr2img да]
 
| Генерация изображения как смесь переднего и заднего планов на основе многоуровневой генеративной модели.
 
| Генерация изображения как смесь переднего и заднего планов на основе многоуровневой генеративной модели.
 
| [[Файл:Attribute2Image-example.png|128px|thumb|center|Male, no eyewear, frowning, receding hairline, bushy eyebrow, eyes open, pointy nose, teeth not visible, rosy cheeks, flushed face.]]
 
| [[Файл:Attribute2Image-example.png|128px|thumb|center|Male, no eyewear, frowning, receding hairline, bushy eyebrow, eyes open, pointy nose, teeth not visible, rosy cheeks, flushed face.]]
 
|-
 
|-
| style = "text-align: right"  | [[#GAN-INT-CLS|GAN-INT-CLS]]  
+
| style = "text-align: center"  | [[#GAN-INT-CLS|GAN-INT-CLS, 2016]]  
 
| style = "text-align: center" | <tex>7.88 \pm 0.07</tex>
 
| style = "text-align: center" | <tex>7.88 \pm 0.07</tex>
 
| style = "text-align: center" | <tex>2.88 \pm 0.04</tex>
 
| style = "text-align: center" | <tex>2.88 \pm 0.04</tex>
 
| style = "text-align: center" | <tex>60.62</tex>
 
| style = "text-align: center" | <tex>60.62</tex>
| style = "text-align: center" | <tex>256 \times 256</tex>
+
| style = "text-align: center" | <tex>64 \times 64</tex>
 
| style = "text-align: center" | [https://github.com/soumith/dcgan.torch да]
 
| style = "text-align: center" | [https://github.com/soumith/dcgan.torch да]
 
| Обучение на текстовых признаках, кодируемых гибридной сверточно-рекуррентной нейронной сетью.
 
| Обучение на текстовых признаках, кодируемых гибридной сверточно-рекуррентной нейронной сетью.
 
| [[Файл:GAN-INT-CLS-example.png|128px|thumb|center|This flower is white and pink in color, with petals that have veins.]]
 
| [[Файл:GAN-INT-CLS-example.png|128px|thumb|center|This flower is white and pink in color, with petals that have veins.]]
 
|-
 
|-
| style = "text-align: right"  | [[#StackGAN|StackGAN]]  
+
| style = "text-align: center"  | [[#StackGAN|StackGAN, 2017]]  
 
| style = "text-align: center" | <tex>8.45 \pm 0.03</tex>
 
| style = "text-align: center" | <tex>8.45 \pm 0.03</tex>
 
| style = "text-align: center" | <tex>3.70 \pm 0.04</tex>
 
| style = "text-align: center" | <tex>3.70 \pm 0.04</tex>
Строка 41: Строка 40:
 
| [[Файл:StackGAN-example.png|128px|thumb|center|This flower has a lot of small purple petals in a dome-like configuration.]]
 
| [[Файл:StackGAN-example.png|128px|thumb|center|This flower has a lot of small purple petals in a dome-like configuration.]]
 
|-
 
|-
| style = "text-align: right"  | [[#FusedGAN|FusedGAN]]  
+
| style = "text-align: center"  | [[#FusedGAN|FusedGAN, 2018]]  
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | <tex>3.00 \pm 0.03</tex>
 
| style = "text-align: center" | <tex>3.00 \pm 0.03</tex>
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
| style = "text-align: center" | <tex>256 \times 256</tex>
+
| style = "text-align: center" | <tex>64 \times 64</tex>
 
| style = "text-align: center" | нет
 
| style = "text-align: center" | нет
 
| Генерация изображения в два этапа, на первом задаются признаки стиля, на втором генерируется изображение.
 
| Генерация изображения в два этапа, на первом задаются признаки стиля, на втором генерируется изображение.
 
| [[Файл:FusedGan_256x256_cub.png|128px|thumb|center|This bird has a bright yellow body, with brown on it's crown and wings.]]
 
| [[Файл:FusedGan_256x256_cub.png|128px|thumb|center|This bird has a bright yellow body, with brown on it's crown and wings.]]
 
|-
 
|-
| style = "text-align: right" | [[#ChatPainter|ChatPainter]]  
+
| style = "text-align: center" | [[#ChatPainter|ChatPainter, 2018]]  
 
| style = "text-align: center" | <tex>9.74 \pm 0.02</tex>
 
| style = "text-align: center" | <tex>9.74 \pm 0.02</tex>
 
| style = "text-align: center"| {{---}}
 
| style = "text-align: center"| {{---}}
Строка 57: Строка 56:
 
| style = "text-align: center" | нет
 
| style = "text-align: center" | нет
 
| В качестве дополнительных данных для обучения используется диалог описания изображения.
 
| В качестве дополнительных данных для обучения используется диалог описания изображения.
| [[Файл:ChatPainter_256x256_coco.png|128px|thumb|center]]
+
| [[Файл:ChatPainter_256x256_coco.png|128px|thumb|center|A person in yellow pants in on a snowboard.]]
 
|-
 
|-
| style = "text-align: right"  | [[#StackGAN++|StackGAN++]]  
+
| style = "text-align: center"  | [[#StackGAN++|StackGAN++, 2018]]  
 
| style = "text-align: center" | <tex>8.30 \pm 0.10</tex>
 
| style = "text-align: center" | <tex>8.30 \pm 0.10</tex>
 
| style = "text-align: center" | <tex>3.84 \pm 0.06</tex>
 
| style = "text-align: center" | <tex>3.84 \pm 0.06</tex>
Строка 68: Строка 67:
 
| [[Файл:StackGAN++-example.png|128px|thumb|center|A picture of a very clean living room.]]
 
| [[Файл:StackGAN++-example.png|128px|thumb|center|A picture of a very clean living room.]]
 
|-
 
|-
| style = "text-align: right"  | [[#HTIS|HTIS]]  
+
| style = "text-align: center"  | [[#HTIS|HTIS, 2018]]  
 
| style = "text-align: center" | <tex>11.46 \pm 0.09</tex>
 
| style = "text-align: center" | <tex>11.46 \pm 0.09</tex>
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
Строка 77: Строка 76:
 
| [[Файл:HTIS-example.png|128px|thumb|center|A man is surfing in the ocean with a surfboard.]]
 
| [[Файл:HTIS-example.png|128px|thumb|center|A man is surfing in the ocean with a surfboard.]]
 
|-
 
|-
| style = "text-align: right"  | [[#AttnGAN | AttnGAN]]  
+
| style = "text-align: center"  | [[#AttnGAN | AttnGAN, 2018]]  
 
| style = "text-align: center" | <tex>25.89 \pm 0.47</tex>
 
| style = "text-align: center" | <tex>25.89 \pm 0.47</tex>
 
| style = "text-align: center" | <tex>4.36 \pm 0.03</tex>
 
| style = "text-align: center" | <tex>4.36 \pm 0.03</tex>
Строка 86: Строка 85:
 
| [[Файл:AttnGan_256x256_coco.png|128px|thumb|center|A photo a homemade swirly pasta with broccoli carrots and onions.]]
 
| [[Файл:AttnGan_256x256_coco.png|128px|thumb|center|A photo a homemade swirly pasta with broccoli carrots and onions.]]
 
|-
 
|-
| style = "text-align: right"  | [[#CVAE&GAN|CVAE&GAN]]  
+
| style = "text-align: center"  | [[#CVAE&GAN|CVAE&GAN, 2018]]  
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
Строка 95: Строка 94:
 
| [[Файл:CVAE&GAN_256x256_cub.png|128px|thumb|center|This is a yellow and gray bird with a small beak.]]
 
| [[Файл:CVAE&GAN_256x256_cub.png|128px|thumb|center|This is a yellow and gray bird with a small beak.]]
 
|-
 
|-
| style = "text-align: right"  | [[#MMVR|MMVR]]  
+
| style = "text-align: center"  | [[#MMVR|MMVR, 2018]]  
 
| style = "text-align: center" | <tex>8.30 \pm 0.78</tex>
 
| style = "text-align: center" | <tex>8.30 \pm 0.78</tex>
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
Строка 104: Строка 103:
 
| [[Файл:MMVR_256x256_coco.png|128px|thumb|center|A boat on a beach near some water.]]
 
| [[Файл:MMVR_256x256_coco.png|128px|thumb|center|A boat on a beach near some water.]]
 
|-
 
|-
| style = "text-align: right"  | [[#MirrorGAN|MirrorGAN]]  
+
| style = "text-align: center"  | [[#MirrorGAN|MirrorGAN, 2019]]  
 
| style = "text-align: center" | <tex>26.47 \pm 0.41</tex>
 
| style = "text-align: center" | <tex>26.47 \pm 0.41</tex>
 
| style = "text-align: center" | <tex>4.56 \pm 0.05</tex>
 
| style = "text-align: center" | <tex>4.56 \pm 0.05</tex>
Строка 111: Строка 110:
 
| style = "text-align: center" | [https://github.com/qiaott/MirrorGAN да]
 
| style = "text-align: center" | [https://github.com/qiaott/MirrorGAN да]
 
| Генерация изображения с использованием идеи обучения посредством переописания.
 
| Генерация изображения с использованием идеи обучения посредством переописания.
|
+
| [[Файл:MirrorGANExample.png|128px|thumb|center|Boats at the dock with a city backdrop.]]
 
|-
 
|-
| style = "text-align: right"  | [[#TextKD-GAN|TextKD-GAN]]
+
| style = "text-align: center"  | [[#Obj-GAN|Obj-GAN, 2019]]  
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | text
 
| style = "text-align: center" | [https://github.com/zubairbaqai/TextKD-GAN да]
 
| Генерация текста с использованием дистилляции знаний (перенос знаний, усвоенных большой моделью (учителем), на меньшую модель (ученика)).
 
|
 
|-
 
| style = "text-align: right"  | [[#Obj-GAN|Obj-GAN]]  
 
 
| style = "text-align: center" | <tex>31.01 \pm 0.27</tex>
 
| style = "text-align: center" | <tex>31.01 \pm 0.27</tex>
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
Строка 129: Строка 119:
 
| style = "text-align: center" | [https://github.com/jamesli1618/Obj-GAN да]
 
| style = "text-align: center" | [https://github.com/jamesli1618/Obj-GAN да]
 
| Основной принцип генерации изображений заключается в распознавании и создании отдельных объектов из заданного текстового описания.
 
| Основной принцип генерации изображений заключается в распознавании и создании отдельных объектов из заданного текстового описания.
|
+
| [[Файл:Obj-GANExample.png|128px|thumb|center|A hotel room with one bed and a blue chair.]]
 
|-
 
|-
| style = "text-align: right"  | [[#LayoutVAE|LayoutVAE]]  
+
| style = "text-align: center"  | [[#LayoutVAE|LayoutVAE, 2019]]  
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
Строка 138: Строка 128:
 
| style = "text-align: center" | нет
 
| style = "text-align: center" | нет
 
| Генерация стохастических макетов сцен (англ. ''stochastic scene layouts'') из заданного набора слов.
 
| Генерация стохастических макетов сцен (англ. ''stochastic scene layouts'') из заданного набора слов.
|
+
| [[Файл:LayoutVAEExample.png|128px|thumb|center|Person, sea, surfboard.]]
 
|-
 
|-
| style = "text-align: right"  | [[#MCA-GAN|MCA-GAN]]  
+
| style = "text-align: center"  | [[#MCA-GAN|MCA-GAN, 2019]]  
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
 
| style = "text-align: center" | {{---}}
Строка 146: Строка 136:
 
| style = "text-align: center" | <tex>256 \times 256</tex>
 
| style = "text-align: center" | <tex>256 \times 256</tex>
 
| style = "text-align: center" | нет
 
| style = "text-align: center" | нет
| Генерацию изображения с произвольных перспективах, основывающаяся на семантическом отображении (англ. ''semantic mapping'').
+
| Генерация изображения с произвольных ракурсов, основывающаяся на семантическом отображении (англ. ''semantic mapping'').
|
+
| [[Файл:MCA-GANExample.png|128px|thumb|center]]
 
|}
 
|}
  
Строка 168: Строка 158:
 
заданному описанию или нет. Модель должна неявно разделять два источника ошибок: нереалистичные образы (для любого текста) и реалистичные образы неправильного класса, которые не соответствуют текстовым признакам. Алгоритм обучения GAN был модифицирован таким образом, чтобы разделять эти источники ошибок. В дополнение к реальным/поддельным входным данным в дискриминатор во время обучения был добавлен третий тип входных данных, состоящий из реальных изображений с несовпадающим текстовым описанием, на которых дискриминатор должен обучиться оценивать поддельные изображения.
 
заданному описанию или нет. Модель должна неявно разделять два источника ошибок: нереалистичные образы (для любого текста) и реалистичные образы неправильного класса, которые не соответствуют текстовым признакам. Алгоритм обучения GAN был модифицирован таким образом, чтобы разделять эти источники ошибок. В дополнение к реальным/поддельным входным данным в дискриминатор во время обучения был добавлен третий тип входных данных, состоящий из реальных изображений с несовпадающим текстовым описанием, на которых дискриминатор должен обучиться оценивать поддельные изображения.
  
<gallery mode="slideshow" caption="Рисунок 2. Пример результата работы GAN-CLS, GAN-INT и GAN-INT-CLS.">
+
<gallery mode=packed heights=400px caption="Рисунок 2. Пример результата работы GAN-CLS, GAN-INT и GAN-INT-CLS.">
 
Файл:DCGAN-2.png|Сгенерированные изображения птиц<ref name="DCGAN"/>.|alt=Сгенерированные изображения птиц
 
Файл:DCGAN-2.png|Сгенерированные изображения птиц<ref name="DCGAN"/>.|alt=Сгенерированные изображения птиц
 
Файл:DCGAN-3.png|Сгенерированные изображения цветов<ref name="DCGAN"/>.|alt=Сгенерированные изображения цветов
 
Файл:DCGAN-3.png|Сгенерированные изображения цветов<ref name="DCGAN"/>.|alt=Сгенерированные изображения цветов
Строка 199: Строка 189:
 
Для проверки метода были проведены обширные количественные и качественные оценки. Результаты работы модели сравниваются с двумя современными методами синтеза текста в изображение {{---}} [[#GAN-INT-CLS|GAN-INT-CLS]] и [[#GAN-INT-CLS|GAWWN]] (рис. 6).
 
Для проверки метода были проведены обширные количественные и качественные оценки. Результаты работы модели сравниваются с двумя современными методами синтеза текста в изображение {{---}} [[#GAN-INT-CLS|GAN-INT-CLS]] и [[#GAN-INT-CLS|GAWWN]] (рис. 6).
  
<gallery mode="slideshow" caption="Рисунок 6. Пример результата работы StackGAN.">
+
<gallery mode=packed heights=350px caption="Рисунок 6. Пример результата работы StackGAN.">
 
Файл:StackGAN-2.png|Сгенерированные изображения птиц<ref name="StackGAN/>.|alt=Сгенерированные изображения птиц
 
Файл:StackGAN-2.png|Сгенерированные изображения птиц<ref name="StackGAN/>.|alt=Сгенерированные изображения птиц
 
Файл:StackGAN-3.png|Сгенерированные изображения цветов<ref name="StackGAN/>.|alt=Сгенерированные изображения цветов
 
Файл:StackGAN-3.png|Сгенерированные изображения цветов<ref name="StackGAN/>.|alt=Сгенерированные изображения цветов
Строка 269: Строка 259:
 
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:StackGAN++-1.png|thumb|alt=Архитектура StackGAN++|x350px|center|Рисунок 7.<ref name="StackGAN++"/> Архитектура StackGAN++.]]</div>
 
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:StackGAN++-1.png|thumb|alt=Архитектура StackGAN++|x350px|center|Рисунок 7.<ref name="StackGAN++"/> Архитектура StackGAN++.]]</div>
  
Несмотря на успех, GAN, как известно, сложно обучить. Тренировочный процесс обычно нестабилен и чувствителен к выбору [[Настройка гиперпараметров | гиперпараметров]]. При обучении GAN генерировать изображения с высоким разрешением (например, 256x256), вероятность того, что распределение изображений и распределение моделей будет совместно использовать один и тот же носитель в многомерном пространстве, очень мала. Более того, обычным явлением сбоя при обучении GAN является '''коллапс режима''' (англ. ''mode collapse''), когда многие из сгенерированных выборок содержат одинаковый цвет или узор текстуры.
+
Несмотря на успех, GAN, как известно, сложно обучить. Тренировочный процесс обычно нестабилен и чувствителен к выбору [[Настройка гиперпараметров | гиперпараметров]]. При обучении GAN генерировать изображения с высоким разрешением (например, 256x256), вероятность того, что распределение изображений и распределение моделей будет совместно использовать один и тот же носитель в многомерном пространстве, очень мала. Более того, обычным явлением сбоя при обучении GAN является [[Generative_Adversarial_Nets_(GAN)#Mode_Collapse|схлопывание мод распределения]] (англ. ''mode collapse''), когда многие из сгенерированных выборок содержат одинаковый цвет или узор текстуры.
  
 
Предлагается продвинутая многоэтапная генеративно-состязательная сетевая архитектура StackGAN-v2 как для условных, так и для безусловных генеративных задач. StackGAN-v2 имеет несколько генераторов, которые разделяют между собой большинство своих параметров в древовидной структуре. Входные данные сети можно рассматривать как корень дерева, а изображения разного масштаба генерируются из разных ветвей дерева. Конечная цель генератора на самой глубокой ветви {{---}} создание фотореалистичных изображений с высоким разрешением. Генераторы в промежуточных ветвях имеют прогрессивную цель создания изображений от малых до больших для достижения конечной цели. Вся сеть совместно обучается аппроксимировать различные, но сильно взаимосвязанные распределения изображений в разных ветвях. Кроме того, используется '''регуляризация согласованности цвета''' (англ. ''color-consistency  regularization''), чтобы генераторы могли генерировать более согласованные образцы для разных масштабов.
 
Предлагается продвинутая многоэтапная генеративно-состязательная сетевая архитектура StackGAN-v2 как для условных, так и для безусловных генеративных задач. StackGAN-v2 имеет несколько генераторов, которые разделяют между собой большинство своих параметров в древовидной структуре. Входные данные сети можно рассматривать как корень дерева, а изображения разного масштаба генерируются из разных ветвей дерева. Конечная цель генератора на самой глубокой ветви {{---}} создание фотореалистичных изображений с высоким разрешением. Генераторы в промежуточных ветвях имеют прогрессивную цель создания изображений от малых до больших для достижения конечной цели. Вся сеть совместно обучается аппроксимировать различные, но сильно взаимосвязанные распределения изображений в разных ветвях. Кроме того, используется '''регуляризация согласованности цвета''' (англ. ''color-consistency  regularization''), чтобы генераторы могли генерировать более согласованные образцы для разных масштабов.
Строка 352: Строка 342:
 
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:Stacking_VAE&GAN.png|thumb|alt=Архитектура Stacking VAE and GAN|x350px|center|Рисунок 13.<ref name="CVAE&GAN"/> Архитектура Stacking VAE and GAN.]]</div>
 
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:Stacking_VAE&GAN.png|thumb|alt=Архитектура Stacking VAE and GAN|x350px|center|Рисунок 13.<ref name="CVAE&GAN"/> Архитектура Stacking VAE and GAN.]]</div>
  
[[Вариационный автокодировщик| VAE]] имеет более стабильный выход чем GAN без [[Generative Adversarial Nets (GAN)#Улучшение обучения GAN|схлопывания мод распределения]] (англ. ''mode collapse''), это можно использовать для достоверной подборки распределения и выявления разнообразия исходного изображения. Однако он не подходит для генерации изображений высокого качества, т. к. генерируемые VAE изображения легко размываются. Чтобы исправить данный недостаток архитектура включает два компонента (рис. 13):
+
[[Вариационный автокодировщик| VAE]] имеет более стабильный выход чем GAN без [[Generative_Adversarial_Nets_(GAN)#Mode_Collapse|схлопывания мод распределения]] (англ. ''mode collapse''), это можно использовать для достоверной подборки распределения и выявления разнообразия исходного изображения. Однако он не подходит для генерации изображений высокого качества, т. к. генерируемые VAE изображения легко размываются. Чтобы исправить данный недостаток архитектура включает два компонента (рис. 13):
 
*Контекстно-зависимый вариационный кодировщик (англ. ''conditional [[Вариационный автокодировщик| VAE]], CVAE'') используется для захвата основной компоновки и цвета, разделяя фон и передний план изображения.
 
*Контекстно-зависимый вариационный кодировщик (англ. ''conditional [[Вариационный автокодировщик| VAE]], CVAE'') используется для захвата основной компоновки и цвета, разделяя фон и передний план изображения.
 
*[[Generative Adversarial Nets (GAN)|GAN]] уточняет вывод CVAE с помощью состязательного обучения, которое восстанавливает потерянные детали и исправляет дефекты для создания реалистичного изображения.  
 
*[[Generative Adversarial Nets (GAN)|GAN]] уточняет вывод CVAE с помощью состязательного обучения, которое восстанавливает потерянные детали и исправляет дефекты для создания реалистичного изображения.  
Строка 391: Строка 381:
 
! Модель !! Inception Score ([[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]]) !! Inception Score ([[Известные наборы данных#COCO|COCO]])
 
! Модель !! Inception Score ([[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]]) !! Inception Score ([[Известные наборы данных#COCO|COCO]])
 
|-
 
|-
| style = "text-align: right" | [[#GAN-INT-CLS|GAN-INT-CLS]] GAN-INT-CLS || style = "text-align: center" | <tex>2.88 \pm 0.04</tex> || style = "text-align: center" | <tex>7.88 \pm 0.07</tex>
+
| style = "text-align: right" | [[#GAN-INT-CLS|GAN-INT-CLS]] || style = "text-align: center" | <tex>2.88 \pm 0.04</tex> || style = "text-align: center" | <tex>7.88 \pm 0.07</tex>
 
|-
 
|-
 
| style = "text-align: right" | [[#GAN-INT-CLS|GAWWN]] || style = "text-align: center" | <tex>3.70 \pm 0.04</tex> || style = "text-align: center" | <tex>-</tex>
 
| style = "text-align: right" | [[#GAN-INT-CLS|GAWWN]] || style = "text-align: center" | <tex>3.70 \pm 0.04</tex> || style = "text-align: center" | <tex>-</tex>
Строка 434: Строка 424:
  
 
=== TextKD-GAN ===
 
=== TextKD-GAN ===
Генерация текста представляет особый интерес во многих приложениях [https://en.wikipedia.org/wiki/Neuro-linguistic_programming нейролингвистического программирования] (англ. ''neuro-linguistic programming, NLP''), таких как [https://en.wikipedia.org/wiki/Machine_translation машинный перевод], моделирование языка и обобщение текста. [[Generative Adversarial Nets (GAN) | Генеративные состязательные сети]] достигли замечательного успеха в создании высококачественных изображений в [[Компьютерное зрение | компьютерном зрении]], и в последнее время GANs также вызвали большой интерес со стороны сообщества NLP. Однако достижение подобного успеха в NLP было бы более сложным из-за дискретности текста. В данной статье<ref name="TextKD-GAN">[https://arxiv.org/abs/1905.01976 Md. Akmal H. and Mehdi R.{{---}} TextKD-GAN: Text Generation using KnowledgeDistillation and Generative Adversarial Networks, 2019]</ref> вводится метод, использующий дистилляцию знаний для эффективного использования настройку GAN для генерации текста. Также показываются, как [[Автокодировщик | автокодировщики]] (англ. ''autoencoders, AEs'') могут быть использованы для обеспечения непрерывного представления предложений, которое в свою очередь представляет собой гладкое представление, присваивающее ненулевые вероятности более чем одному слову.
+
Генерация текста представляет особый интерес во многих приложениях [https://en.wikipedia.org/wiki/Neuro-linguistic_programming нейролингвистического программирования] (англ. ''neuro-linguistic programming, NLP''), таких как [https://en.wikipedia.org/wiki/Machine_translation машинный перевод], моделирование языка и обобщение текста. [[Generative Adversarial Nets (GAN) | Генеративные состязательные сети]] достигли замечательного успеха в создании высококачественных изображений в [[Компьютерное зрение | компьютерном зрении]], и в последнее время они также вызвали большой интерес со стороны сообщества NLP. Однако достижение подобного успеха в NLP было бы более сложным из-за дискретности текста. В данной статье<ref name="TextKD-GAN">[https://arxiv.org/abs/1905.01976 Md. Akmal H. and Mehdi R.{{---}} TextKD-GAN: Text Generation using KnowledgeDistillation and Generative Adversarial Networks, 2019]</ref> вводится метод, использующий дистилляцию знаний (перенос знаний, усвоенных большой моделью (учителем), на меньшую модель (ученика)) для эффективного оперирования настройками сети.
  
TextKD-GAN представляет из себя решение для основного узкого места использования генеративных состязательных сетей для генерации текста с дистилляцией знаний: метод, переносящий знания смягченного вывода модели преподавателя в модель студента. Решение основано на AE (учителе), чтобы получить гладкое представление реального текста. Это гладкое представление подается в дискриминатор TextKD-GAN вместо обычного однократного представления. Генератор (студент) пытается изучить многообразие смягченного гладкого представления AE. TextKD-GAN, в конечном итоге, будет превосходить обычный генератор текста на основе GAN, который не нуждается в предварительной подготовке.
+
TextKD-GAN представляет из себя решение для основного узкого места использования генеративных состязательных сетей для генерации текста с <b>дистилляцией знаний</b> {{---}} методом, переносящим знания смягченного вывода модели (учителя) в меньшую модель (ученика). Решение основано на автокодировщике (учителе), чтобы получить гладкое представление настоящего текста. Это представление затем подается в дискриминатор TextKD-GAN вместо обычного one-hot представления. Генератор (студент) пытается изучить многообразие смягченного гладкого представления автокодировщика. TextKD-GAN, в конечном итоге, будет превосходить обычный генератор текста на основе генеративных состязательных сетей, который не нуждается в предварительном обучении.
  
 
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:TextKD-GAN_Model.png|thumb|center|x400px|Рисунок 27.<ref name="TextKD-GAN"/> Модель TextKD-GAN для генерации текста.]]</div>
 
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:TextKD-GAN_Model.png|thumb|center|x400px|Рисунок 27.<ref name="TextKD-GAN"/> Модель TextKD-GAN для генерации текста.]]</div>
  
В общепринятом текстовом подходе к распознавании, реальные и сгенерированные входные данные дискриминатора будут иметь разные типы ([https://en.wikipedia.org/wiki/One-hot one-hot] и [https://en.wikipedia.org/wiki/Softmax_function softmax]), и он может обыкновенно отличить их друг от друга. Один из способов избежать этой проблемы состоит в получении непрерывно гладкого представление слов, а не one-hot представления, и обучении дискриминатора различать их. Здесь используется общепринятый атокодировщик (учитель), чтобы заменить one-hot представление выходом, перестроенным softmax-функцией, который является представлением, дающим меньшую дисперсию градиентов. Предложенная модель изображена на рисунке 27. Как видно, вместо one-hot представления реальных слов смягченный реконструированный выход автокодировщика подается на вход дискриминатору. Эта техника значительно усложняет распознавание для самого дискриминатора. Генератор GAN с softmax выходом пытается имитировать распределение выходного сигнала автокодировщика вместо общепринятого one-hot представления.
+
В общепринятом текстовом распознавании, реальные и сгенерированные входные данные дискриминатора будут иметь разные типы ([https://en.wikipedia.org/wiki/One-hot one-hot] и [https://en.wikipedia.org/wiki/Softmax_function softmax]). Один из способов избежать этой проблемы состоит в получении непрерывно гладкого представление слов, а не one-hot представления, и обучении дискриминатора различать их. На рисунке 27 проиллюстрирована модель, в которой используется стандартный автокодировщик (учитель), чтобы заменить one-hot представление выходом, перестроенным softmax-функцией, который является представлением, дающим меньшую дисперсию градиентов. Как видно, вместо one-hot представления реальных слов смягченный преобразованный выход автокодировщика подается на вход дискриминатору. Эта техника значительно усложняет распознавание для самого дискриминатора. Генератор с softmax выходом пытается имитировать распределение выходного сигнала автокодировщика вместо обычного one-hot представления.
  
 
Обучение автокодировщика и TextKD-GAN происходит одновременно. Чтобы добиться этого, необходимо раздробить целевую функцию на три члена:
 
Обучение автокодировщика и TextKD-GAN происходит одновременно. Чтобы добиться этого, необходимо раздробить целевую функцию на три члена:
Строка 481: Строка 471:
  
 
=== LayoutVAE ===
 
=== LayoutVAE ===
Модели, используемые для генерации макетов сцен из текстовых описаний по большей части игнорируют возможные визуальные вариации внутри структуры, описываемой самим текстом.
+
Модели, используемые для создания макетов сцен из текстовых описаний по большей части игнорируют возможные визуальные вариации внутри структуры, описываемой самим текстом.
  
'''Макетный вариационный автокодировщик''' (англ. ''Layout variational autoencoder (LayoutVAE)'') {{---}} фреймворк, базирующийся на [[Вариационный автокодировщик | вариационном автокодировщике]] для генерации стохастических макетов сцен (англ. ''stochastic scene layouts'') {{---}} есть разносторонняя программная платформа моделирования, позволяющая генерировать либо полные макеты изображений с заданным набором меток, либо макеты меток для существующего изображения с заданной новой меткой. Вдобавок, она также способна обнаруживать необычные макеты, потенциально открывая пути к решению проблемы генерации макетов.
+
'''Макетный вариационный автокодировщик''' (англ. ''Layout variational autoencoder, LayoutVAE'') {{---}} фреймворк, базирующийся на [[Вариационный автокодировщик | вариационном автокодировщике]] для генерации стохастических макетов сцен (англ. ''stochastic scene layouts'') {{---}} это программная платформа моделирования, позволяющая генерировать либо полные макеты изображений с заданным набором меток, либо макеты меток для существующего изображения с новой заданной меткой.
  
Будем рассматривать задачу генерации сцен с описанием набора меток. Набор меток, представленный как более слабое описание, всего лишь предоставляет множество меток, присутствующих в данном изображении без дополнительного описания взаимосвязи, заставляя модель изучать пространственные и подсчитываемые отношения (англ. ''spatial and count relationships'') на основе визуальных данных.  
+
Рассмотрим задачу генерации сцен с описанием набора меток. Этот набор всего лишь предоставляет множество меток, присутствующих в данном изображении (без дополнительного описания взаимосвязи), заставляя модель изучать пространственные и подсчитываемые отношения (англ. ''spatial and count relationships'') на основе визуальных данных.  
  
Касательно описанных проблем предлагаются следующие решения:
+
Касательно вышеописанной задачи предлагаются следующие решения:
 
* Модель стохастических генераций макетов сцен с заданным множеством меток, которая будет иметь две компоненты: моделирование распределений подсчитываемых отношений между объектами; моделирование распределений пространственных отношений между объектами.
 
* Модель стохастических генераций макетов сцен с заданным множеством меток, которая будет иметь две компоненты: моделирование распределений подсчитываемых отношений между объектами; моделирование распределений пространственных отношений между объектами.
 
* Синтетический набор данных, MNIST-макеты, отражающие стохастическую природу генерации макета сцен.
 
* Синтетический набор данных, MNIST-макеты, отражающие стохастическую природу генерации макета сцен.
Строка 493: Строка 483:
  
 
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:LayoutVAE.png|thumb|center|x350px|Рисунок 25.<ref name="LayoutVAE"/> Архитектура LayoutVAE.]]</div>
 
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:LayoutVAE.png|thumb|center|x350px|Рисунок 25.<ref name="LayoutVAE"/> Архитектура LayoutVAE.]]</div>
В статье<ref name="LayoutVAE">[https://openaccess.thecvf.com/content_ICCV_2019/papers/Jyothi_LayoutVAE_Stochastic_Scene_Layout_Generation_From_a_Label_Set_ICCV_2019_paper.pdf LayoutVAE: Stochastic Scene Layout Generation From a Label Set]</ref> были предложены фреймворки и структуры моделей, взаимодействующие с LayoutVE, такие как: <b>PNP-Net</b> {{---}} фреймворк вариационного автокодировщика для генерации изображения абстрактной сцены из текстовой программы, полностью описывающей её (помимо того, что это {{---}} стохастическая модель для генерации, она была протестирована на синтетических наборах данных с малым числом классов); <b>LayoutGAN</b> {{---}} модель, основанная на [[Generative Adversarial Nets (GAN) | генеративных состязательных сетях]], генерирующая макеты графических элементов (прямоугольники, треугольники, и так далее); VAE-базированный фреймворк, кодирующий объект и информацию о макете 3D-сцен в помещении в скрытом коде; и так далее...
+
В статье<ref name="LayoutVAE">[https://openaccess.thecvf.com/content_ICCV_2019/papers/Jyothi_LayoutVAE_Stochastic_Scene_Layout_Generation_From_a_Label_Set_ICCV_2019_paper.pdf LayoutVAE: Stochastic Scene Layout Generation From a Label Set]</ref> были предложены фреймворки и структуры моделей, взаимодействующие с LayoutVE, такие как: <b>PNP-Net</b> {{---}} фреймворк вариационного автокодировщика для создания изображения из текстовой программы, которая полностью её описывает (помимо того, что это стохастическая модель для генерации, она была протестирована на синтетических наборах данных с малым числом классов); <b>LayoutGAN</b> {{---}} модель, основанная на [[Generative Adversarial Nets (GAN) | генеративных состязательных сетях]], создающая макеты графических элементов (прямоугольники, треугольники, и так далее); фреймворк, базирующийся на вариационном автокодировщике, который кодирует объект и информацию о макете 3D-сцен в помещении в скрытом коде; и так далее...
 
 
Обучение генеративных моделей нужно, чтобы предсказать разнообразные, но правдоподобные наборы ограничивающих рамок, учитывая набор меток в качестве входных данных. Рамки в наборе представлены верхними левыми координатами, шириной и высотой <tex>i</tex>-й ограничивающей рамки категории <tex>k</tex>. LayoutVAE естественным образом декомпозируется на модель для предсказания количества для каждой заданной метки {{---}} <b>CountVAE</b> {{---}} и другая для предсказания местоположения и размера каждого объекта {{---}} <b>BBoxVAE</b>.
 
  
Имея набор меток <tex>L</tex> и количество объектов в категории <tex>\left\{ n_m : m \in L \right\}</tex>, BBoxVAE предсказывает распределение координат для ограничивающих рамок авторегрессионно. Мы следуем тому же предопределенному порядку меток, что и в CountVAE, в пространстве меток, и упорядочиваем ограничивающие рамки слева направо для каждой метки; <b>все ограничивающие рамки предсказываются перед переходом к следующей метке.</b>
+
Обучение генеративных моделей необходимо, чтобы предсказать разнообразные, но правдоподобные наборы ограничивающих рамок (англ. ''bounding boxes'') <tex>b_{k, i} = [x_{k, i}, y_{k, i}, w_{k, i}, h_{k, i}]</tex>, учитывая набор меток в качестве входных данных. Рамки в наборе представлены верхними левыми координатами, шириной и высотой <tex>i</tex>-й ограничивающей рамки категории <tex>k</tex>. LayoutVAE декомпозируется на модель для предсказания количества для каждой заданной метки {{---}} <b>CountVAE</b> {{---}} и модель для предсказания местоположения и размера каждого объекта {{---}} <b>BBoxVAE</b>.
  
 +
Имея набор меток <tex>L</tex> и количество объектов в категории <tex>\left\{ n_m : m \in L \right\}</tex>, BBoxVAE предсказывает распределение координат для ограничивающих рамок авторегрессионно. Мы следуем тому же предопределенному порядку меток, что и в CountVAE, в пространстве меток, и упорядочиваем ограничивающие рамки слева направо для каждой метки; <b>сначала все ограничивающие рамки предсказываются для заданной метки, а уже потом происходит переход к следующей метке.</b>
  
 
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:LayoutVAEGeneration.png|thumb|center|x350px|Рисунок 26.<ref name="LayoutVAE"/> Генерация по множеству меток <tex>\{person, sea, surfboard\}</tex>.]]</div>
 
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:LayoutVAEGeneration.png|thumb|center|x350px|Рисунок 26.<ref name="LayoutVAE"/> Генерация по множеству меток <tex>\{person, sea, surfboard\}</tex>.]]</div>
  
 
=== MCA-GAN ===
 
=== MCA-GAN ===
Преобразование изображений перекрестным видом (англ. ''cross-view image translation'') проблематично, поскольку оно оперирует изображениями со значительно отличающимися перспективами и тяжёлыми деформациями. В статье<ref name="MCA-GAN">[https://arxiv.org/pdf/1904.06807.pdf Multi-Channel Attention Selection GAN with Cascaded Semantic Guidancefor Cross-View Image Translation]</ref> о выборочной [[Generative Adversarial Nets (GAN) | генеративной состязательной сети]] с мультиканальным вниманием (англ. ''Multi-Channel Attention Selection GAN, MCA-GAN'') рассматривается подход, позволяющий делать возможным генерацию изображения, максимально приближенной к реальной, с произвольных перспективах, основывающийся на семантическом отображении (англ. ''semantic mapping''). Работа сети происходит в два этапа:
+
Преобразование изображений перекрестным видом (англ. ''cross-view image translation'') проблематично, поскольку оно оперирует изображениями со значительно отличающимися ракурсами и тяжёлыми деформациями. В статье<ref name="MCA-GAN">[https://arxiv.org/pdf/1904.06807.pdf Multi-Channel Attention Selection GAN with Cascaded Semantic Guidancefor Cross-View Image Translation]</ref> о выборочной [[Generative Adversarial Nets (GAN) | генеративной состязательной сети]] с мультиканальным вниманием (англ. ''Multi-Channel Attention Selection GAN, MCA-GAN'') рассматривается подход, позволяющий делать возможным генерацию изображения, максимально приближенной к реальной, с произвольных ракурсах, основывающийся на семантическом отображении (англ. ''semantic mapping''). Работа сети происходит в два этапа:
# Изображение и целевое семантическое отображение (англ. ''target semantic map'') подаются на вход циклической семантически-управляемой генерационной сети (англ. ''cycled semantic-guided generation network'') для получения начальных результатов.
+
# Изображение и целевое семантическое отображение (англ. ''target semantic map'') подаются на вход циклической семантически-управляемой генеративной сети (англ. ''cycled semantic-guided generation network'') для получения начальных результатов.
 
# Начальные результаты уточняются, используя механизм мультиканального выделения внимания (англ. ''multi-channel attention selection mechanism'').
 
# Начальные результаты уточняются, используя механизм мультиканального выделения внимания (англ. ''multi-channel attention selection mechanism'').
 
Обширные эксперименты на наборах данных Dayton, CVUSA<ref>[http://mvrl.cs.uky.edu/datasets/cvusa/ Crossview USA (CVUSA)]</ref> и Ego2Top<ref>[https://www.crcv.ucf.edu/projects/ego2top/index.php Ego2Top: Matching Viewers in Egocentric and Top-view Videos (ECCV 2016)]</ref> показывают, что данная модель способна генерировать значительно более качественные результаты, чем другие современные методы.
 
Обширные эксперименты на наборах данных Dayton, CVUSA<ref>[http://mvrl.cs.uky.edu/datasets/cvusa/ Crossview USA (CVUSA)]</ref> и Ego2Top<ref>[https://www.crcv.ucf.edu/projects/ego2top/index.php Ego2Top: Matching Viewers in Egocentric and Top-view Videos (ECCV 2016)]</ref> показывают, что данная модель способна генерировать значительно более качественные результаты, чем другие современные методы.
Строка 510: Строка 499:
 
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:MCA-GAD.png|thumb|center|x300px|Рисунок 29.<ref name="MCA-GAN"/> Архитектура MCA-GAD.]]</div>
 
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:MCA-GAD.png|thumb|center|x300px|Рисунок 29.<ref name="MCA-GAN"/> Архитектура MCA-GAD.]]</div>
  
На рисунке 29 проиллюстрирована структура сети. Первый этап, как было описано выше, состоит из каскадной семантически-управляемой генерацинной подсети, использующая изображения с одном представлении и условные семантические отображения в другом представлении в качестве входных данных и реконструирующая эти изображения в другом представлении. Результирующие изображения далее подаются на вход семантическому генератору для восстановления исходного семантического отображения, формируя цикл генерации. Второй этап заключается в том, что грубый синтез (англ. ''coarse synthesis'') и глубокие характеристики объединяются и передаются в модуль мультиканального выделения внимания, направленный на получение более детализированного синтеза (англ. ''fine-grained synthesis'') из большего пространства генерации и создание отображений неопределенности (англ. ''uncertainty maps'') для управления множественными потерями оптимизации (англ. ''optimization losses'').
+
На рисунке 29 проиллюстрирована структура сети. Первый этап, как было описано выше, состоит из <b>каскадной семантически-управляемой генерацинной подсети</b>, использующая изображения в одном представлении и условные семантические отображения в другом представлении в качестве входных данных и преобразующая эти изображения в другом представлении. Результирующие изображения далее подаются на вход семантическому генератору для восстановления исходного семантического отображения, формируя цикл генерации. Второй этап заключается в том, что грубый синтез (англ. ''coarse synthesis'') и отображения глубоких характеристик объединяются и подаются на вход в <b>модуль мультиканального выделения внимания</b>, направленный на получение более детализированного синтеза (англ. ''fine-grained synthesis'') из большего пространства генерации и создание отображений неопределенности (англ. ''uncertainty maps'') для управления множественными потерями оптимизации (англ. ''optimization losses''). Модуль мультиканального выделения внимания в свою очередь состоит из многомасштабного пространственного пулинга (англ. ''multiscale spatial pooling'') и компоненты мультиканального выделения внимания (англ. ''multichannel attention selection component'').  
 
 
Модуль мультиканального выделения внимания в свою очередь состоит из многомасштабного пространственного пулинга (англ. ''multiscale spatial pooling'') и компоненты мультиканального выделения внимания (англ. ''multichannel attention selection component'').  
 
  
Поскольку между изначальной перспективой и результирующей существует объемная деформация объекта и/или сцены, одномасштабная характеристика (англ. ''single-scale feature'') вряд ли сможет захватить всю необходимую информацию о пространстве для детализированной генерации. Многомасштабный пространственный пулинг оперирует же другими значениями размера ядра и шага для выполнения глобального среднего пулинга (англ. ''global average pooling'') на одних и тех же входных характеристиках, тем самым получая многомасштабные характеристики с отличающимися рецептивными полями (англ. ''receptive fields'') для восприятия различных пространственных контекстов. Механизм мультиканального внимания позволяет осуществлять выполнение пространственного и временного отбора (англ. ''spatial and temporal selection''), чтобы синтезировать конечный детализированный результат.
+
Поскольку между изначальным ракурсом и результирующим существует объемная деформация объекта и/или сцены, одномасштабная характеристика (англ. ''single-scale feature'') вряд ли сможет захватить всю необходимую информацию о пространстве для детализированной генерации. Многомасштабный пространственный пулинг оперирует же другими значениями размера ядра и шага для выполнения глобального среднего пулинга (англ. ''global average pooling'') на одних и тех же входных характеристиках, тем самым получая многомасштабные характеристики с отличающимися рецептивными полями (англ. ''receptive fields'') для восприятия различных пространственных контекстов. Механизм мультиканального внимания позволяет осуществлять выполнение пространственного и временного отбора (англ. ''spatial and temporal selection''), чтобы синтезировать конечный детализированный результат.
  
 
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:MCA-GAN_Module.png|thumb|center|x400px|Рисунок 30.<ref name="MCA-GAN"/> Архитектура модуля мультиканального выделения внимания (англ. ''multi-channel attention selection module'').]]</div>
 
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:MCA-GAN_Module.png|thumb|center|x400px|Рисунок 30.<ref name="MCA-GAN"/> Архитектура модуля мультиканального выделения внимания (англ. ''multi-channel attention selection module'').]]</div>

Текущая версия на 23:08, 23 января 2021

Автоматическое создание реалистичных высококачественных изображений из текстовых описаний было бы интересно и довольно полезно, так как имеет множество практических применений, но современные системы искусственного интеллекта все еще далеки от этой цели, так как это является довольно сложной задачей в области компьютерного зрения. Однако в последние годы были разработаны универсальные и мощные рекуррентные архитектуры нейронных сетей для изучения различных представлений текстовых признаков. Между тем, глубокие сверточные генеративные состязательные сети (англ. Generative Adversarial Nets, GANs) начали генерировать весьма убедительные изображения определенных категорий, таких как лица, обложки альбомов и интерьеры комнат. Образцы, генерируемые существующими подходами "текст-изображение", могут приблизительно отражать смысл данных описаний, но они не содержат необходимых деталей и ярких частей объекта. В данной статье рассмотрены формулировка и глубокая архитектура GAN, а также объединены достижения в генерации изображений по тексту.

Обзор генеративных моделей[править]

Сообщество глубокого обучения быстро совершенствует генеративные модели. Среди них можно выделить три перспективных типа: авторегрессионные модели (англ. Autoregressive model, AR-model), вариационные автокодировщики (англ. Variational Autoencoder, VAE) и генеративные состязательные сети. На данный момент самые качественные изображения генерируют сети GAN (фотореалистичные и разнообразные, с убедительными деталями в высоком разрешении). Поэтому в данной статье мы сосредоточимся на моделях GAN.

Сравнение моделей
Модель Inception Score [1] FID [2] Разрешение генерируемой картинки Реализация Модификация (отличие от GAN) Пример сгенерированной картинки
COCO Caltech-UCSD
Attribute2Image, 2015 [math]14.30 \pm 0.10[/math] [math]64 \times 64[/math] да Генерация изображения как смесь переднего и заднего планов на основе многоуровневой генеративной модели.
Male, no eyewear, frowning, receding hairline, bushy eyebrow, eyes open, pointy nose, teeth not visible, rosy cheeks, flushed face.
GAN-INT-CLS, 2016 [math]7.88 \pm 0.07[/math] [math]2.88 \pm 0.04[/math] [math]60.62[/math] [math]64 \times 64[/math] да Обучение на текстовых признаках, кодируемых гибридной сверточно-рекуррентной нейронной сетью.
This flower is white and pink in color, with petals that have veins.
StackGAN, 2017 [math]8.45 \pm 0.03[/math] [math]3.70 \pm 0.04[/math] [math]74.05[/math] [math]256 \times 256[/math] да Генерация изображения происходит в два этапа, на первом этапе создается примитивная форма изображения и задаются цвета объектов, на втором исправляются дефекты предыдущего этапа и добавляются более мелкие детали.
This flower has a lot of small purple petals in a dome-like configuration.
FusedGAN, 2018 [math]3.00 \pm 0.03[/math] [math]64 \times 64[/math] нет Генерация изображения в два этапа, на первом задаются признаки стиля, на втором генерируется изображение.
This bird has a bright yellow body, with brown on it's crown and wings.
ChatPainter, 2018 [math]9.74 \pm 0.02[/math] [math]256 \times 256[/math] нет В качестве дополнительных данных для обучения используется диалог описания изображения.
A person in yellow pants in on a snowboard.
StackGAN++, 2018 [math]8.30 \pm 0.10[/math] [math]3.84 \pm 0.06[/math] [math]81.59[/math] [math]256 \times 256[/math] да Генерация изображений разного масштаба из разных ветвей древовидной структуры, в которой несколько генераторов разделяют между собой большинство своих параметров.
A picture of a very clean living room.
HTIS, 2018 [math]11.46 \pm 0.09[/math] [math]256 \times 256[/math] нет Генерация изображения разбивается на несколько шагов, сначала создается семантический макет из текста, затем этот макет преобразовывается в изображение.
A man is surfing in the ocean with a surfboard.
AttnGAN, 2018 [math]25.89 \pm 0.47[/math] [math]4.36 \pm 0.03[/math] [math]28.76[/math] [math]256 \times 256[/math] да Выделение слов для генерации областей картинки с помощью механизма внимания.
A photo a homemade swirly pasta with broccoli carrots and onions.
CVAE&GAN, 2018 [math]256 \times 256[/math] нет Разделение переднего и заднего плана, сначала CVAE генерирует картинку в плохом качестве, после качество повышается с помощью GAN.
This is a yellow and gray bird with a small beak.
MMVR, 2018 [math]8.30 \pm 0.78[/math] [math]256 \times 256[/math] нет Обучение на изменённом описании картинки.
A boat on a beach near some water.
MirrorGAN, 2019 [math]26.47 \pm 0.41[/math] [math]4.56 \pm 0.05[/math] [math]256 \times 256[/math] да Генерация изображения с использованием идеи обучения посредством переописания.
Boats at the dock with a city backdrop.
Obj-GAN, 2019 [math]31.01 \pm 0.27[/math] [math]17.03[/math] [math]256 \times 256[/math] да Основной принцип генерации изображений заключается в распознавании и создании отдельных объектов из заданного текстового описания.
A hotel room with one bed and a blue chair.
LayoutVAE, 2019 [math]256 \times 256[/math] нет Генерация стохастических макетов сцен (англ. stochastic scene layouts) из заданного набора слов.
Person, sea, surfboard.
MCA-GAN, 2019 [math]256 \times 256[/math] нет Генерация изображения с произвольных ракурсов, основывающаяся на семантическом отображении (англ. semantic mapping).
MCA-GANExample.png

Attribute2Image[править]

Рисунок 3.[3] Пример результата работы Attribute2Image.
Условная генерация изображений из визуальных атрибутов (англ. Conditional Image Generation from Visual Attributes, Attribute2Image[3]) моделирует изображение как смесь переднего и заднего планов и разрабатывает многоуровневую генеративную модель с выделенными скрытыми переменными (рис. 4), которые можно изучать от начала до конца с помощью вариационного автокодировщика (англ. Variational Autoencoder, VAE). Экспериментируя с естественными изображениями лиц и птиц на наборах данных Caltech-UCSD и LFW Attribute2Image демонстрирует, что способен генерировать реалистичные и разнообразные изображения размером 64x64 пикселя с распутанными скрытыми представлениями (англ. disentangled latent representations) — это состояние, в котором каждый фактор приобретается как каждый элемент скрытых переменных, то есть если в модели с обученными скрытыми представлениями смещение одной скрытой переменной при сохранении других фиксированными генерирует данные, показывающие, что изменяется только соответствующий фактор. (рис. 3). Таким образом, изученные генеративные модели показывают отличные количественные и визуальные результаты в задачах реконструкции и завершения изображения, обусловленного атрибутами.
Архитектура Attribute2Image
Рисунок 4.[3] Архитектура Attribute2Image.

GAN-INT-CLS[править]

Глубокая сверточная генеративная состязательная сеть (англ. Deep Convolutional Generative Adversarial Network, DCGAN) — обусловлена текстовыми признаками, кодируемыми гибридной сверточно-рекуррентной нейронной сетью на уровне символов. DCGAN имеет эффективную архитектуру (рис. 1) и обучающую структуру, которая позволяет синтезировать изображения птиц и цветов из текстовых описаний.

Для обучения такой модели для птиц был использован набор данных Caltech-UCSD, а для цветов — Oxford-102. Наряду с этим было собрано по пять текстовых описаний на изображение, которые были использованы в качестве параметров оценки.

DCGAN во многих случаях может генерировать на основе текста визуально-правдоподобные изображения размером ​64×64 пикселя, а также отличается тем, что сама модель является генеративной состязательней сетью, а не только использует ее для постобработки. Текстовые запросы кодируются с помощью текстового кодировщика [math]\varphi[/math], который позволяет получить векторное представление слов. Затем применяется концепция условной генеративной состязательной сети (англ. Conditional Generative Adversarial Network, CGAN). Таким образом, описание, внедренное в [math]\varphi(t)[/math] сначала сжимается с помощью полностью связанного слоя до небольшого размера (на практике было использовано 128), затем применяется функция активации Leaky ReLU и результат конкатенируется с вектором шума [math]z[/math].

Рисунок 1. Архитектура DCGAN.
Рисунок 1.[4] Архитектура DCGAN.

Как только модель научилась генерировать правдоподобные изображения (рис. 2), она должна также научиться согласовывать их с текстовым описанием, и было бы неплохо, если бы она научилась оценивать, соответствуют ли изображения заданному описанию или нет. Модель должна неявно разделять два источника ошибок: нереалистичные образы (для любого текста) и реалистичные образы неправильного класса, которые не соответствуют текстовым признакам. Алгоритм обучения GAN был модифицирован таким образом, чтобы разделять эти источники ошибок. В дополнение к реальным/поддельным входным данным в дискриминатор во время обучения был добавлен третий тип входных данных, состоящий из реальных изображений с несовпадающим текстовым описанием, на которых дискриминатор должен обучиться оценивать поддельные изображения.

StackGAN[править]

Составные генеративные состязательные сети (англ. Stacked Generative Adversarial Networks, StackGAN[5]) служат для генерации фотореалистичных изображений размера 256x256, заданных текстовыми описаниями. В данной модели трудная задача генерации изображения разлагается на более мелкие подзадачи с помощью процесса эскиз-уточнения (англ. sketch-refinement process). Таким образом, Stage-I GAN рисует примитивную форму и цвета объекта на основе данного текстового описания, получая изображения Stage-I с низким разрешением (рис. 5). Stage-II GAN принимает результаты Stage-I и текстовые описания в качестве входных данных и генерирует изображения высокого разрешения с фотореалистичными деталями. Он способен исправлять дефекты в результатах этапа I и добавлять более мелкие детали в процессе уточнения (англ. refinement process). Чтобы улучшить разнообразие синтезированных изображений и стабилизировать обучение CGAN, вводится техника условно-когнитивной регуляции (англ. Conditioning Augmentation), которая способствует плавности в обусловливающем многообразии.

Архитектура StackGAN
Рисунок 5.[5] Архитектура StackGAN.

Вклад предлагаемого метода состоит в следующем:

  • Предлагается новая составная генеративная состязательная сеть для синтеза фотореалистичных изображений из текстовых описаний. Он разбивает сложную задачу генерации изображений с высоким разрешением на более мелкие подзадачи и значительно улучшает состояние дел. StackGAN впервые генерирует изображения с разрешением 256х256 пикселей с фотореалистичными деталями из текстовых описаний.
  • Предлагается техника Condition Augmentation для стабилизации обучения CGAN, а также для улучшения разнообразия генерируемых выборок.
  • Обширные качественные и количественные эксперименты демонстрируют эффективность дизайна модели в целом, а также влияние отдельных компонентов, которые предоставляют полезную информацию для разработки будущих условных моделей GAN.

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

Inception scores для сгенерированных изображений в тестовых наборах Caltech-UCSD, Oxford-102 и COCO
Набор данных Inception Score [1]
Caltech-UCSD [math]3.70 \pm 0.04[/math]
Oxford-102 [math]3.20 \pm 0.01[/math]
COCO [math]8.45 \pm 0.03[/math]

Для проверки метода были проведены обширные количественные и качественные оценки. Результаты работы модели сравниваются с двумя современными методами синтеза текста в изображение — GAN-INT-CLS и GAWWN (рис. 6).

FusedGAN[править]

Для улучшения генерации изображений по описанию и получения контролируемой выборки, некоторые модели разделяют процесс генерации на несколько этапов. Например, в модели Attribute2Image раздельная генерации фона и переднего плана позволила получить контролируемую выборку (фиксируя фон и меняя основную сцену, и наоборот). В свою очередь модель FusedGAN[6] может выполнять контролируемую выборку различных изображений с очень высокой точностью, что так же достигается путём разбиения процесса генерации изображений на этапы. В данной модели в отличие от StackGAN, где несколько этапов GAN обучаются отдельно с полным контролем помеченных промежуточных изображений, FusedGAN имеет одноступенчатый конвейер со встроенным StackGAN.

Архитектура FusedGAN
Рисунок 19.[6] Архитектура FusedGAN

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

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

[math]М_{s}[/math] выступает в роли шаблона подавая дополнительные признаки на второй шаг генерации. Вследствие чего изображения сгенерированных птиц не только соответствуют описанию, но также сохраняют информацию о стиле. Поэтому вместо того, чтобы учиться с нуля, [math]G_{c}[/math] строится поверх [math]М_{s}[/math], добавляя к нему стили с помощью текстового описания. Следует отметить, что в модели отсутствует явная иерархия, поэтому оба этапа могут обучаться одновременно, используя альтернативный метод оптимизации.

Пример работы FusedGAN
Рисунок 20.[6] Сравнение FusedGAN с другими моделями

Для оценки качества генерируемых изображений с помощью FusedGAN, были отобраны 30 тысяч изображений и посчитано inception scores, используя предварительно обученную модель на тестовом наборе Caltech-UCSD. Данные сравнения приведены в таблице.

Модель Inception Score [1]
GAN-INT-CLS [math]2.88 \pm 0.04[/math]
StackGAN-I [math]2.95 \pm 0.02[/math]
FusedGAN [math]3.00 \pm 0.03[/math]

ChatPainter[править]

В предыдущих и последующих моделях для создания изображений используются текстовые описания. Однако они могут быть недостаточно информативными, чтобы охватить все представленные изображения, и модели будет недостаточно данных для того чтобы сопоставить объекты на изображениях со словами в описании. Поэтому в качестве дополнительных данных в модели ChatPainter предлагается[7] использовать диалоги, которые дополнительно описывают сцены (пример рис. 16). Это приводит к значительному улучшению Inception score[1] и качества генерируемых изображений в наборе данных MS COCO (Microsoft COCO dataset). Для создания нового набора данных с диалогами, были объединены описания представленные в наборе данных MS COCO, с данными из Visual Dialog dataset (VisDial)[8].

Архитектура ChatPainter
Рисунок 15.[7] Архитектура ChatPainter:
  1. Этап 1: модель генерирует изображение 64×64, по описанию и диалогу.
  2. Этап 2: модель генерирует изображение размером 256×256, на основе изображения сгенерированного на 1 этапе, а также описанию и диалогу
Изображение, сгенерированное моделью ChatPainter для данного описания и диалога
Рисунок 16.[7] Пример работы ChatPainter.

Данная архитектура (рис. 15) опирается на модель StackGAN. StackGAN генерирует изображение в два этапа: на первом этапе генерируется грубое изображение 64×64, а на втором генерируется уже улучшенное изображение 256×256.

Формирование вектора текстовых описаний [math]\phi_{t}[/math] происходит путем кодирования подписей с помощью предварительно обученного кодировщика[9]. Для генерации диалоговых вложений [math]\zeta_{d}[/math] используется два метода:

  • Нерекурсивный кодировщик — сжимает весь диалог в одну строку и кодирует его с помощью предварительно обученного кодировщика Skip-Thought[10].
  • Рекурсивный кодировщик — генерирует Skip-Thought векторы (англ. Skip-Thought Vectors)[11] для каждого сообщения в диалоге, а затем кодирует их двунаправленной рекуррентной нейронной сетью c LSTM.

Затем выходы описаний и диалогов объединяются и передаются в качестве входных данных в модуль аугментации данных (англ. Conditioning Augmentation, CA). Модуль CA нужен для получения скрытых условных переменных, которые передаются на вход генератору. Архитектура блоков (рис. 15) upsample, downsample и residual blocks сохраняется такой же, как и у исходного StackGAN

Результаты тестирования и сравнение модели ChatPainter с другими приведены в таблице. Из неё видно, что модель ChatPainter, которая получает дополнительную диалоговую информацию, имеет более высокий Inception score[1], в отличии от модели StackGAN. Кроме того, рекурсивная версия ChatPainter получилась лучше, чем нерекурсивная версия. Вероятно, это связано с тем, что в нерекурсивной версии кодировщик не обучается на длинных предложениях сворачивая весь диалог в одну строку.

Inception scores для сгенерированных изображений в тестовом наборе MS COCO
Модель Inception Score [1]
StackGAN [math]8.45 \pm 0.03[/math]
ChatPainter (non-recurrent) [math]9.43 \pm 0.04[/math]
ChatPainter (recurrent) [math]9.74 \pm 0.02[/math]
AttnGAN [math]25.89 \pm 0.47[/math]

StackGAN++[править]

Хотя генерирующие состязательные сети (GAN) показали замечательный успех в различных задачах, они все еще сталкиваются с проблемами при создании изображений высокого качества. Поэтому в данном разделе, во-первых, предлагается двухэтапная генеративная состязательная сетевая архитектура StackGAN-v1[12] для синтеза текста в изображение. Stage-I по-прежнему рисует примитивную форму и цвета сцены на основе заданного текстового описания, что дает изображения с низким разрешением. Stage-II все также принимает результаты этапа I и текстовое описание в качестве входных данных и генерирует изображения высокого разрешения с фотореалистичными деталями. Во-вторых, усовершенствованная многоэтапная генеративно-состязательная сетевая архитектура StackGAN-v2 предлагается как для условных, так и для безусловных генеративных задач. StackGAN-v2 состоит из нескольких генераторов и нескольких дискриминаторов, организованных в древовидную структуру (рис. 7); изображения в нескольких масштабах, соответствующие одной и той же сцене, генерируются из разных ветвей дерева. StackGAN-v2 демонстрирует более стабильное поведение при обучении, чем StackGAN-v1, за счет совместной аппроксимации нескольких распределений.

Архитектура StackGAN++
Рисунок 7.[12] Архитектура StackGAN++.

Несмотря на успех, GAN, как известно, сложно обучить. Тренировочный процесс обычно нестабилен и чувствителен к выбору гиперпараметров. При обучении GAN генерировать изображения с высоким разрешением (например, 256x256), вероятность того, что распределение изображений и распределение моделей будет совместно использовать один и тот же носитель в многомерном пространстве, очень мала. Более того, обычным явлением сбоя при обучении GAN является схлопывание мод распределения (англ. mode collapse), когда многие из сгенерированных выборок содержат одинаковый цвет или узор текстуры.

Предлагается продвинутая многоэтапная генеративно-состязательная сетевая архитектура StackGAN-v2 как для условных, так и для безусловных генеративных задач. StackGAN-v2 имеет несколько генераторов, которые разделяют между собой большинство своих параметров в древовидной структуре. Входные данные сети можно рассматривать как корень дерева, а изображения разного масштаба генерируются из разных ветвей дерева. Конечная цель генератора на самой глубокой ветви — создание фотореалистичных изображений с высоким разрешением. Генераторы в промежуточных ветвях имеют прогрессивную цель создания изображений от малых до больших для достижения конечной цели. Вся сеть совместно обучается аппроксимировать различные, но сильно взаимосвязанные распределения изображений в разных ветвях. Кроме того, используется регуляризация согласованности цвета (англ. color-consistency regularization), чтобы генераторы могли генерировать более согласованные образцы для разных масштабов.

Inception scores для сгенерированных изображений в тестовых наборах Caltech-UCSD, Oxford-102 и MS COCO
Набор данных StackGAN-v1 StackGAN-v2
Caltech-UCSD [math]3.70 \pm 0.04[/math] [math]4.04 \pm 0.05[/math]
Oxford-102 [math]3.20 \pm 0.01[/math] [math]3.26 \pm 0.01[/math]
MS COCO [math]8.45 \pm 0.03[/math] [math]8.30 \pm 0.10[/math]

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

Введен термин регуляризации согласованности цвета, чтобы образцы, сгенерированные с одного и того же входа на разных генераторах, были более согласованными по цвету и, таким образом, улучшили качество сгенерированных изображений (рис. 8).

HTIS[править]

В данном разделе предлагается новый иерархический подход к синтезу текста (Hierarchical Text-to-Image Synthesis, HTIS[13]) в изображение путем определения семантического макета. Вместо того, чтобы изучать прямое отображение текста в изображение, алгоритм разбивает процесс генерации на несколько шагов, на которых он сначала создает семантический макет из текста с помощью генератора макета и преобразует макет в изображение с помощью генератора изображений (рис. 9). Предлагаемый генератор компоновки постепенно создает семантическую компоновку от грубого к точному, генерируя ограничивающие рамки (англ. bounding box) объекта и уточняя каждую рамку, оценивая формы объектов внутри нее. Генератор изображений синтезирует изображение, обусловленное предполагаемым семантическим макетом, что обеспечивает полезную семантическую структуру изображения, совпадающего с текстовым описанием.

Архитектура
Рисунок 9.[13] Архитектура HTIS.
  • Генератор рамок (англ. Box Generator) принимает в качестве входных данных вложения текста и генерирует грубую компоновку, комбинируя экземпляры объектов в изображении. Выходные данные генератора представляют собой набор ограничивающих рамок [math]B_1: T = \{B_1, ..., B_T\}[/math], где каждая ограничивающая рамка [math]B_t[/math] определяет местоположение, размер и метку категории [math]t[/math]-го объекта.
  • Генератор фигур (англ. Shape Generator) берет набор ограничивающих рамок, созданных на предыдущем шаге, и предсказывает формы объектов внутри рамок. Результатом является набор двоичных масок [math]M_1: T = \{M_1, ..., M_T\}[/math], где каждая маска [math]M_t[/math] определяет форму переднего плана [math]t[/math]-го объекта.
  • Генератор изображений (англ. Image Generator) принимает карту семантических меток [math]M[/math], полученную путем агрегирования масок по экземплярам, и текстовое описание в качестве входных данных, и генерирует изображение, переводя семантический макет в пиксели, соответствующие текстовому описанию.

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

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

Inception scores для сгенерированных изображений в тестовом наборе MS COCO
Модель Inception Score [1]
StackGAN [math]8.45 \pm 0.03[/math]
Рассматриваемая модель [math]11.46 \pm 0.09[/math]

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

Поэтому вместо того, чтобы изучать прямое отображение текста в изображение, был предложен альтернативный подход, который строит семантический макет как промежуточное представление между текстом и изображением. Семантический макет определяет структуру сцены на основе экземпляров объектов и предоставляет детальную информацию о сцене, такую ​​как количество объектов, категорию объекта, расположение, размер, форму и выдает довольно неплохой результат (рис. 10).

AttnGAN[править]

Общепринятый подход заключается в кодировании всего текстового описания в глобальное векторное пространство предложений (англ. global sentence vector). Такой подход демонстрирует ряд впечатляющих результатов, но у него есть главные недостатки: отсутствие чёткой детализации на уровне слов и невозможность генерации изображений высокого разрешения. Эта проблема становится еще более серьезной при генерации сложных кадров, таких как в наборе данных COCO.

В качестве решения данной проблемы была предложена[14] новая генеративно-состязательная нейросеть с вниманием (англ. Attentional Generative Adversarial Network, AttnGAN), которая относится к вниманию как к фактору обучения, что позволяет выделять слова для генерации фрагментов изображения.

Архитектура AttnGAN
Рисунок 11.[14] Архитектура AttnGAN.

Модель состоит из нескольких взаимодействующих нейросетей (рис. 11):

  • Кодировщики текста (англ. Text Encoder) и изображения (англ. Image Encoder) векторизуют исходное текстовое описания и реальные изображения. В данном случае текст рассматривается в виде последовательности отдельных слов, представление которых обрабатывается совместно с представлением изображения, что позволяет сопоставить отдельные слова отдельным частям изображения. Таким образом реализуется механизм внимания (англ. Deep Attentional Multimodal Similarity Model, DAMSM).
  • [math]F^{ca}[/math] — создает сжатое представление об общей сцене на изображении, исходя из всего текстового описания. Значение [math]C[/math] на выходе конкатенируется с вектором из нормального распределения [math]Z[/math], который задает вариативность сцены. Эта информация является основой для работы генератора.
  • Attentional Generative Network — самая большая сеть, состоящая из трех уровней. Каждый уровень порождает изображения все большего разрешения, от 64x64 до 256x256 пикселей, и результат работы на каждом уровне корректируется с помощью сетей внимания [math]F^{attn}[/math], которые несут в себе информацию о правильном расположении отдельных объектов сцены. Кроме того, результаты на каждом уровне проверяются тремя отдельно работающими дискриминаторами, которые оценивают реалистичность изображения и соответствие его общему представлению о сцене.

Благодаря модификациям нейросеть AttnGAN показывает значительно лучшие результаты, чем традиционные системы GAN. В частности, максимальный из известных показателей Inception Score[1] для существующих нейросетей улучшен на 14,14% (с 3,82 до 4,36) на наборе данных Caltech-UCSD и улучшен на целых 170,25% (с 9,58 до 25,89)[15] на более сложном наборе данных COCO.


CVAE&GAN[править]

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

Архитектура Stacking VAE and GAN
Рисунок 13.[16] Архитектура Stacking VAE and GAN.

VAE имеет более стабильный выход чем GAN без схлопывания мод распределения (англ. mode collapse), это можно использовать для достоверной подборки распределения и выявления разнообразия исходного изображения. Однако он не подходит для генерации изображений высокого качества, т. к. генерируемые VAE изображения легко размываются. Чтобы исправить данный недостаток архитектура включает два компонента (рис. 13):

  • Контекстно-зависимый вариационный кодировщик (англ. conditional VAE, CVAE) используется для захвата основной компоновки и цвета, разделяя фон и передний план изображения.
  • GAN уточняет вывод CVAE с помощью состязательного обучения, которое восстанавливает потерянные детали и исправляет дефекты для создания реалистичного изображения.

Полученные результаты проверки (рис.14) на 2 наборах данных (Caltech-UCSD и Oxford-102) эмпирически подтверждают эффективность предложенного метода.

MMVR[править]

Архитектура MMVR
Рисунок 17.[17] Архитектура MMVR.

Модель мультимодальной векторной сети (англ. Multi-Modal Vector Representation, MMVR), впервые предложенная в статье[17], способна создавать изображения по описанию и генерировать описание исходя из предоставленного изображения. Она включает несколько модификаций для улучшения генерации изображений и описаний, а именно: вводится функция потерь на основе метрики N-грамм, которая обобщает описание относительно изображения; так же для генерации вместо одного используется несколько семантически сходных предложений, что так же улучшает создаваемые изображения.

Модель может быть разделена на два взаимозависимых модуля (рис. 17):

  • Генератор изображений на основе GAN с DeePSiM[18].
  • Генератор описаний изображений на основе Long-term Recurrent Convolutional Networks (LRCNs)[19].

Прямое распространение (англ. forward pass) инициируется путем передачи случайного скрытого вектора (англ. latent vector) [math]h_{t}[/math] в генератор изображений ([math]G[/math]), который генерирует изображение [math]\hat{x}[/math]. Затем по сгенерированной картинке генератор описаний создаёт подпись. Для определения ошибки между сгенерированным описанием [math]\hat{y}[/math] и исходным описанием [math]y[/math] используется перекрестная энтропия на уровне слов. Она используется для итеративного обновления [math]h_{t}[/math] (заодно и [math]\hat{x}[/math]), оставляя при этом все остальные компоненты фиксированными. С каждой итерацией [math]\hat{y}[/math] приближается к [math]y[/math], и сгенерированное изображение на каждом шаге [math]\hat{x}[/math] является временным представлением конечного изображения. Для улучшения реалистичности изображения используется кодировщик шумоподавления (англ. Denoising Autoencoder, DAE)[20] — в правило обновления добавляется ошибка восстановления изображения (англ. reconstruction error), вычисляемая как разница между [math]h_{t}[/math] и [math]\hat{h_{t}}[/math].

Рисунок 18.[17] Сравнение PPGN[20] и MMVR.

Обучение начинается с генерации случайного 4096-мерного вектора [math]h_{t}[/math], который передаётся в модель для последующего итеративного обновления. Процесс завершается после 200 итераций, и полученное изображение считается репрезентативным для данного описания.

Inception scores для сгенерированных изображений в тестовом наборе MS COCO
Модель Inception Score [1]
Plug and Play Generative Networks (PPGN)[20] [math]6.71 \pm 0.45[/math]
MMVR [math]7.22 \pm 0.81[/math]
MMVR ([math]N_{c}=5[/math]) [math]8.30 \pm 0.78[/math]
MMVR ([math]N_{c}[/math]) — модификация MMVR с несколькими текстовыми описаниями на изображение, где [math]N_{c}[/math] — количество описаний.

MirrorGAN[править]

Inception scores для сгенерированных изображений в тестовых наборах Caltech-UCSD и COCO
Модель Inception Score (Caltech-UCSD) Inception Score (COCO)
GAN-INT-CLS [math]2.88 \pm 0.04[/math] [math]7.88 \pm 0.07[/math]
GAWWN [math]3.70 \pm 0.04[/math] [math]-[/math]
StackGAN [math]3.62 \pm 0.07[/math] [math]8.45 \pm 0.03[/math]
StackGAN++ [math]3.82 \pm 0.06[/math] [math]-[/math]
PPGN[20] [math]-[/math] [math]9.58 \pm 0.21[/math]
AttnGAN [math]4.36 \pm 0.03[/math] [math]25.89 \pm 0.47[/math]
MirrorGAN [math]4.56 \pm 0.05[/math] [math]26.47 \pm 0.41[/math]

Генерация изображения из заданного текстового описания преследует две главные цели: реалистичность и семантическое постоянство. Несмотря на то, что существует значительный прогресс в создании визуально реалистичных изображений высокого качества посредством генеративных состязательных сетей, обеспечение вышепоставленных целей все еще является довольно сложной задачей. Для осуществления попытки их реализации рассмотрим text-to-image-to-text фреймворк с вниманием, сохраняющий семантику, под названием MirrorGAN[21]. Данный фреймворк, который из текстового описания генерирует изображение, использует идею обучения с помощью переописания (англ. redescription) и состоит из трёх модулей:

  • Модуль встраивания семантического текста (англ. semantic text embedding module, STEM).
  • Глобально-локальный совместный модуль с вниманием для создания каскадных изображений (англ. global-local collaborative attentive module for cascaded image generation, GLAM).
  • Модуль регенерации семантического текста и выравнивания (англ. semantic text regener-ation and alignment module, STREAM).

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

Если изображение, сгенерированное с помощью T2I (text-to-image), семантически соответствует заданному описанию, его текстовое описание, созданное посредством I2T (image-to-text) должно семантически совпадать с заданным.

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

  1. Состязательная потеря в реалистичности: [math]\mathcal{L}_{G_i}^{VR} = -\frac{1}{2} \mathbb{E}_{I_i \sim p_{I_i}} [\log(D_i(I_i))][/math].
  2. Состязательная потеря в семантическом постоянстве: [math]\mathcal{L}_{G_i}^{SC} = -\frac{1}{2} \mathbb{E}_{I_i \sim p_{I_i}} [\log(D_i(I_i, s))][/math].

Где [math]I_i[/math] — сгенерированное на этапе [math]i[/math] изображение, взятое из распределения [math]p_{I_i}[/math]. Вдобавок, для эффективного использования двойного регулирования T2I и I2T, применим текстово-семантическую реконструированную функцию потерь, основанную на перекрёстной энтропии: [math]\mathcal{L}_{stream} = -\displaystyle\sum_{t = 0}^{L - 1} \log(p_t(T_t))[/math].

Рисунок 21.[21] Архитектура MirrorGAN.

MirrorGan представляет собой зеркальную структуру, объединяя T2I и I2T. Чтобы сконструировать многоэтапный каскадный генератор, все три сети генерации изображений (STEM, GLAM и STREAM) необходимо объединить. В качестве архитектуры STREAM будем использовать довольно распространенный фреймворк создания текстового описания изображения (англ. image captioning framework), базирующийся на кодировании и декодировании. Кодировщик изображений — это свёрточная нейронная сеть, предварительно обученная на ImageNet[22], а декодировщик — это рекуррентная нейронная сеть. Предварительное обучение STREAM помогло MirrorGAN достичь более стабильного процесса обучения и более быстрой сходимости, в то время, как их совместная оптимизация довольно нестабильна, занимает много места и долго работает. Структура кодировщик-декодировщик и соответствующие ей параметры фиксированы во время обучения других модулей MirrorGAN.

Обучая [math]G_i[/math], градиенты из [math]\mathcal{L}_{stream}[/math] обратно распространяются через STREAM в [math]G_i[/math], веса сетей которых остаются фиксированными. Финальная целевая функция генератора выглядит так:

[math]\mathcal{L}_G = \displaystyle\sum_{i = 0}^{m - 1}{\mathcal{L}_{G_i}^{VR} + \mathcal{L}_{G_i}^{SC} + \lambda \mathcal{L}_{stream}}[/math],

где [math]\lambda[/math] — вес потери для обработки участия состязательной потери (англ. adversarial loss) и потери текстово-семантической реконструкции (англ. text-semantic reconstruction loss). Для наилучшего качества генерации можно поставить коэффициент [math]\lambda = 20[/math].

Показатель Inception Score[1] был использован для измерения как объективности, так и разнообразия сгенерированных изображений. R-precision был использован для вычисления визуально-семантической схожести между сгенерированными изображениями и их соответствующими текстовыми описаниями.

Рисунок 22.[21] Сравнение MirrorGAN, AttnGAN и других генеративных состязательных сетей.

TextKD-GAN[править]

Генерация текста представляет особый интерес во многих приложениях нейролингвистического программирования (англ. neuro-linguistic programming, NLP), таких как машинный перевод, моделирование языка и обобщение текста. Генеративные состязательные сети достигли замечательного успеха в создании высококачественных изображений в компьютерном зрении, и в последнее время они также вызвали большой интерес со стороны сообщества NLP. Однако достижение подобного успеха в NLP было бы более сложным из-за дискретности текста. В данной статье[23] вводится метод, использующий дистилляцию знаний (перенос знаний, усвоенных большой моделью (учителем), на меньшую модель (ученика)) для эффективного оперирования настройками сети.

TextKD-GAN представляет из себя решение для основного узкого места использования генеративных состязательных сетей для генерации текста с дистилляцией знаний — методом, переносящим знания смягченного вывода модели (учителя) в меньшую модель (ученика). Решение основано на автокодировщике (учителе), чтобы получить гладкое представление настоящего текста. Это представление затем подается в дискриминатор TextKD-GAN вместо обычного one-hot представления. Генератор (студент) пытается изучить многообразие смягченного гладкого представления автокодировщика. TextKD-GAN, в конечном итоге, будет превосходить обычный генератор текста на основе генеративных состязательных сетей, который не нуждается в предварительном обучении.

Рисунок 27.[23] Модель TextKD-GAN для генерации текста.

В общепринятом текстовом распознавании, реальные и сгенерированные входные данные дискриминатора будут иметь разные типы (one-hot и softmax). Один из способов избежать этой проблемы состоит в получении непрерывно гладкого представление слов, а не one-hot представления, и обучении дискриминатора различать их. На рисунке 27 проиллюстрирована модель, в которой используется стандартный автокодировщик (учитель), чтобы заменить one-hot представление выходом, перестроенным softmax-функцией, который является представлением, дающим меньшую дисперсию градиентов. Как видно, вместо one-hot представления реальных слов смягченный преобразованный выход автокодировщика подается на вход дискриминатору. Эта техника значительно усложняет распознавание для самого дискриминатора. Генератор с softmax выходом пытается имитировать распределение выходного сигнала автокодировщика вместо обычного one-hot представления.

Обучение автокодировщика и TextKD-GAN происходит одновременно. Чтобы добиться этого, необходимо раздробить целевую функцию на три члена:

  1. Реконструирующий член для автокодировщика: [math]\min\limits_{(\varphi, \psi)} L_{AE}(\varphi, \psi) = \min\limits_{(\varphi, \psi)} \| x - \mathrm{softmax}(\mathrm{dec}_\psi(\mathrm{enc}_\varphi(x))) \| ^ 2.[/math]
  2. Функция потерь для дискриминатора с градиентным штрафом (англ. discriminator loss function with gradient penalty): [math]\min\limits_{w \in W} L_{discriminator}(w) = \min\limits_{w \in W} -E_{x \sim P_x} [f_w(\mathrm{dec}_\psi(\mathrm{enc}_\varphi(x)))] + E_{z \sim P_z} [f_w(G(z))] + \lambda_2 E_{\hat{x} \sim P_{\hat{x}}} [(\| \nabla_{\hat{x}} f_w(\hat{x}) \| _2 - 1)^2].[/math]
  3. Состязательная стоимость (англ. adversarial cost) генератора: [math]\min\limits_\theta L_{Gen}(\theta) = -\min\limits_\theta E_{z \sim P_z} [f_w(G(z))].[/math]

Эти функции потерь обучаются поочередно, чтобы оптимизировать различные части модели. В члене штрафа градиента необходимо посчитать норму градиента случайных выборок [math]\hat{x} \sim P_{\hat{x}}[/math].

Рисунок 28.[23] Дивергенция Дженсена-Шеннона (англ. Jensen-Shannon divergence, JSD) между сгенерированным и обучающимся предложениями (n-граммами) полученных из эксперимента SNLI[24] (Stanford Natural Language Inference, Стэнфордский Вывод Естественного Языка).

Obj-GAN[править]

Объектно-управляемая генеративная состязательная сеть с вниманием (англ. Object-Driven Attentive Generative Adversarial Network, Obj-GAN) позволяет создавать изображения по описанию с учётом объектной компоновки. Объектно-управляемый генератор изображений, создаёт изображения на основе двухэтапной генерации. Сначала создаётся макет по наиболее значимым словам в текстовом описании, после этого генерируется изображение с полученной компоновкой объектов. А для сопоставления синтезируемых объектов с текстовым описанием и сгенерированным макетом, предлагается[25] новый объектный дискриминатор, основывающийся на Fast R-CNN[26]. В результате модификаций Obj-GAN значительно превосходит по производительности другие модели на наборе данных COCO, увеличивая показатель Inception score[1] на 11% и уменьшая показатель FID (Fréchet inception distance)[2] на 27%.

Архитектура Obj-GAN
Рисунок 23.[25] Архитектура Obj-GAN.
Inception score в тестовом наборе COCO
Модель Inception Score [1] FID [2]
Obj-GAN (pred box & pred shp) [math]27.32 \pm 0.40[/math] [math]24.70[/math]
Obj-GAN (gt box & pred shp) [math]28.22 \pm 0.35[/math] [math]22.67[/math]
Obj-GAN (gt box & gt shp) [math]31.01 \pm 0.27[/math] [math]17.03[/math]

Основная цель Obj-GAN — генерация качественных изображений с семантически значимым макетом и реалистичными объектами. Obj-GAN состоит из пары генератора изображений с вниманием, управляемый объектами, и пообъектного дискриминатора (англ. object-wise discriminator). Генератор изображений в качестве входных данных принимает текстовое описание и предварительно сгенерированный семантический макет (англ. semantic layout), по которым создаёт изображение с помощью процесса, заключающегося в поэтапном улучшении качества результирующего изображения. На каждом этапе генератор синтезирует фрагмент изображений внутри ограничивающей рамки (англ. bounding box), фокусируясь на наиболее релевантных объекту словах.

Говоря более конкретно, он, с использованием управляемого объектами слоя внимания, оперирует метками класса, запрашивая слова в предложениях, чтобы сформировать вектор контекстов, и впоследствии синтезирует фрагмент изображения при условиях метки и вектора контекстов. Пообъектный дискриминатор проверяет каждую ограничивающую рамку, чтобы удостовериться в том, что сгенерированный объект действительно может быть сопоставлен с заранее сгенерированным макетом. Чтобы вычислить все потери при распознавании для всех заданных ограничивающих рамок одновременно и эффективно, дискриминатор представляет из себя быструю свёрточную нейронную сеть на основе регионов (англ. Fast Region-based Convolutional Neural Network, Fast R-CNN) с двоичной функцией потерь перекрёстной энтропии для каждой рамки.


Рассмотрим архитектуру Obj-GAN. Первым этапом, генеративная состязательная сеть принимает текстовое предложение и генерирует семантический макет — последовательность объектов специфицированных соответствующими ограничивающими рамками (наряду с метками классов) и фигурами. Генератор рамок (англ. box generator) и генератор фигур (англ. shape generator) работают соответствующим образом, сначала создавая последовательность ограничивающих рамок, а затем — фигуру для каждой. Поскольку большинству рамок сопоставлены слова из данного текстового предложения, модель seq2seq с вниманием охватывает это соответствие. Далее конструируется [math]G_{shape}[/math], базированный на двунаправленной свёрточной долгой краткосрочной памяти (англ. bidirectional convolutional long short-term memory, LSTM). Обучение [math]G_{shape}[/math] основывается на фреймворке генеративной состязательной сети, в которой потеря восприятия используется для ограничения генерируемых фигур и стабилизирования обучения.

LayoutVAE[править]

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

Макетный вариационный автокодировщик (англ. Layout variational autoencoder, LayoutVAE) — фреймворк, базирующийся на вариационном автокодировщике для генерации стохастических макетов сцен (англ. stochastic scene layouts) — это программная платформа моделирования, позволяющая генерировать либо полные макеты изображений с заданным набором меток, либо макеты меток для существующего изображения с новой заданной меткой.

Рассмотрим задачу генерации сцен с описанием набора меток. Этот набор всего лишь предоставляет множество меток, присутствующих в данном изображении (без дополнительного описания взаимосвязи), заставляя модель изучать пространственные и подсчитываемые отношения (англ. spatial and count relationships) на основе визуальных данных.

Касательно вышеописанной задачи предлагаются следующие решения:

  • Модель стохастических генераций макетов сцен с заданным множеством меток, которая будет иметь две компоненты: моделирование распределений подсчитываемых отношений между объектами; моделирование распределений пространственных отношений между объектами.
  • Синтетический набор данных, MNIST-макеты, отражающие стохастическую природу генерации макета сцен.
  • Экспериментальная валидация моделей с использованием MNIST-макетов и наборов данных COCO, в которой содержатся сложные макеты сцен реального мира.
Рисунок 25.[27] Архитектура LayoutVAE.

В статье[27] были предложены фреймворки и структуры моделей, взаимодействующие с LayoutVE, такие как: PNP-Net — фреймворк вариационного автокодировщика для создания изображения из текстовой программы, которая полностью её описывает (помимо того, что это стохастическая модель для генерации, она была протестирована на синтетических наборах данных с малым числом классов); LayoutGAN — модель, основанная на генеративных состязательных сетях, создающая макеты графических элементов (прямоугольники, треугольники, и так далее); фреймворк, базирующийся на вариационном автокодировщике, который кодирует объект и информацию о макете 3D-сцен в помещении в скрытом коде; и так далее...

Обучение генеративных моделей необходимо, чтобы предсказать разнообразные, но правдоподобные наборы ограничивающих рамок (англ. bounding boxes) [math]b_{k, i} = [x_{k, i}, y_{k, i}, w_{k, i}, h_{k, i}][/math], учитывая набор меток в качестве входных данных. Рамки в наборе представлены верхними левыми координатами, шириной и высотой [math]i[/math]-й ограничивающей рамки категории [math]k[/math]. LayoutVAE декомпозируется на модель для предсказания количества для каждой заданной метки — CountVAE — и модель для предсказания местоположения и размера каждого объекта — BBoxVAE.

Имея набор меток [math]L[/math] и количество объектов в категории [math]\left\{ n_m : m \in L \right\}[/math], BBoxVAE предсказывает распределение координат для ограничивающих рамок авторегрессионно. Мы следуем тому же предопределенному порядку меток, что и в CountVAE, в пространстве меток, и упорядочиваем ограничивающие рамки слева направо для каждой метки; сначала все ограничивающие рамки предсказываются для заданной метки, а уже потом происходит переход к следующей метке.

Рисунок 26.[27] Генерация по множеству меток [math]\{person, sea, surfboard\}[/math].

MCA-GAN[править]

Преобразование изображений перекрестным видом (англ. cross-view image translation) проблематично, поскольку оно оперирует изображениями со значительно отличающимися ракурсами и тяжёлыми деформациями. В статье[28] о выборочной генеративной состязательной сети с мультиканальным вниманием (англ. Multi-Channel Attention Selection GAN, MCA-GAN) рассматривается подход, позволяющий делать возможным генерацию изображения, максимально приближенной к реальной, с произвольных ракурсах, основывающийся на семантическом отображении (англ. semantic mapping). Работа сети происходит в два этапа:

  1. Изображение и целевое семантическое отображение (англ. target semantic map) подаются на вход циклической семантически-управляемой генеративной сети (англ. cycled semantic-guided generation network) для получения начальных результатов.
  2. Начальные результаты уточняются, используя механизм мультиканального выделения внимания (англ. multi-channel attention selection mechanism).

Обширные эксперименты на наборах данных Dayton, CVUSA[29] и Ego2Top[30] показывают, что данная модель способна генерировать значительно более качественные результаты, чем другие современные методы.

Рисунок 29.[28] Архитектура MCA-GAD.

На рисунке 29 проиллюстрирована структура сети. Первый этап, как было описано выше, состоит из каскадной семантически-управляемой генерацинной подсети, использующая изображения в одном представлении и условные семантические отображения в другом представлении в качестве входных данных и преобразующая эти изображения в другом представлении. Результирующие изображения далее подаются на вход семантическому генератору для восстановления исходного семантического отображения, формируя цикл генерации. Второй этап заключается в том, что грубый синтез (англ. coarse synthesis) и отображения глубоких характеристик объединяются и подаются на вход в модуль мультиканального выделения внимания, направленный на получение более детализированного синтеза (англ. fine-grained synthesis) из большего пространства генерации и создание отображений неопределенности (англ. uncertainty maps) для управления множественными потерями оптимизации (англ. optimization losses). Модуль мультиканального выделения внимания в свою очередь состоит из многомасштабного пространственного пулинга (англ. multiscale spatial pooling) и компоненты мультиканального выделения внимания (англ. multichannel attention selection component).

Поскольку между изначальным ракурсом и результирующим существует объемная деформация объекта и/или сцены, одномасштабная характеристика (англ. single-scale feature) вряд ли сможет захватить всю необходимую информацию о пространстве для детализированной генерации. Многомасштабный пространственный пулинг оперирует же другими значениями размера ядра и шага для выполнения глобального среднего пулинга (англ. global average pooling) на одних и тех же входных характеристиках, тем самым получая многомасштабные характеристики с отличающимися рецептивными полями (англ. receptive fields) для восприятия различных пространственных контекстов. Механизм мультиканального внимания позволяет осуществлять выполнение пространственного и временного отбора (англ. spatial and temporal selection), чтобы синтезировать конечный детализированный результат.

Рисунок 30.[28] Архитектура модуля мультиканального выделения внимания (англ. multi-channel attention selection module).
Рисунок 31.[28] Преобразование изображения перекрестным видом.

Области применения[править]

  • Создание контента и данных:
    • картинки для интернет-магазина;
    • аватары для игр;
    • видеоклипы, сгенерированные автоматически, исходя из музыкального бита произведения;
    • виртуальные ведущие[31].
  • Обучение систем на основе синтеза данных, возникающего в результате работы генеративных моделей:
    • генерация реалистичного видео городской среды[32].

См. также[править]

Примечания[править]

  1. 1,00 1,01 1,02 1,03 1,04 1,05 1,06 1,07 1,08 1,09 1,10 1,11 A Note on the Inception Score
  2. 2,0 2,1 2,2 Fréchet inception distance, FID
  3. 3,0 3,1 3,2 Xinchen Y. — Conditional Image Generation from Visual Attributes, 2015
  4. 4,0 4,1 4,2 Scott R. — Generative Adversarial Text to Image Synthesis, 2016
  5. 5,0 5,1 5,2 5,3 Han Z., Tao X. — Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks, 2017
  6. 6,0 6,1 6,2 Navaneeth B., Gang H. — Semi-supervised FusedGAN for ConditionalImage Generation, 2018
  7. 7,0 7,1 7,2 Shikhar S., Dendi S. — ChatPainter: Improving Text to Image Generation using Dialogue, 2018
  8. Visual Dialog
  9. Pre-trained encoder for ICML 2016 paper
  10. Skip-Thought encoder
  11. Skip-Thought Vectors
  12. 12,0 12,1 12,2 12,3 Han Z., Tao X. — Realistic Image Synthesis with Stacked Generative Adversarial Networks, 2018
  13. 13,0 13,1 13,2 13,3 Seunghoon H., Dingdong Y. — Inferring Semantic Layout for Hierarchical Text-to-Image Synthesis, 2018
  14. 14,0 14,1 14,2 Tao X., Pengchuan Z. — AttnGAN: Fine-Grained Text to Image Generationwith Attentional Generative Adversarial Networks, 2018
  15. Test results — Text-to-Image Generation on COCO
  16. 16,0 16,1 16,2 16,3 Chenrui Z., Yuxin P. — Stacking VAE and GAN for Context-awareText-to-Image Generation, 2018
  17. 17,0 17,1 17,2 Shagan S., Dheeraj P. — SEMANTICALLY INVARIANT TEXT-TO-IMAGE GENERATION, 2018
  18. DeePSiM. Alexey D. and Thomas B. — Generating Images with Perceptual Similarity Metrics based on Deep Networks, 2016
  19. Jeff D., Lisa A. H. — Long-term Recurrent Convolutional Networks for Visual Recognition and Description, 2015
  20. 20,0 20,1 20,2 20,3 Anh N., Jeff C. — Plug & Play Generative Networks: Conditional Iterative Generation of Images in Latent Space,2017
  21. 21,0 21,1 21,2 Tingting Q., Jing Z. — MirrorGAN: Learning Text-to-image Generation by Redescription, 2019
  22. ImageNet image database
  23. 23,0 23,1 23,2 Md. Akmal H. and Mehdi R.— TextKD-GAN: Text Generation using KnowledgeDistillation and Generative Adversarial Networks, 2019
  24. The Stanford Natural Language Inference (SNLI) Corpus
  25. 25,0 25,1 25,2 Wendo L., Pengchuan Z. — Object-driven Text-to-Image Synthesis via Adversarial Training 2019
  26. Ross Girshick — Fast R-CNN, 2015
  27. 27,0 27,1 27,2 LayoutVAE: Stochastic Scene Layout Generation From a Label Set
  28. 28,0 28,1 28,2 28,3 Multi-Channel Attention Selection GAN with Cascaded Semantic Guidancefor Cross-View Image Translation
  29. Crossview USA (CVUSA)
  30. Ego2Top: Matching Viewers in Egocentric and Top-view Videos (ECCV 2016)
  31. Виртуальный диктор
  32. NVIDIA Interactive Graphics

Источники информации[править]