Генерация изображения по тексту — различия между версиями
Hakimov (обсуждение | вклад) |
Geny200 (обсуждение | вклад) (FusedGAN) |
||
Строка 179: | Строка 179: | ||
=== FusedGAN === | === FusedGAN === | ||
+ | Для улучшения генерации изображений по описанию и получения контролируемой выборки, некоторые модели используют разделение процесса генерации на несколько этапов, например, в модели Attribute2image<ref>[https://arxiv.org/abs/1512.00570 Xinchen Y. {{---}} Conditional Image Generation from Visual Attributes, 2015]</ref> разделение генерации переднего и заднего плана позволило получить контролируемую выборку (сохраняя один из них фиксированным и варьируя другой). В свою очередь модель FusedGAN<ref>[https://arxiv.org/abs/1801.05551 Navaneeth B., Gang H. {{---}} Semi-supervised FusedGAN for ConditionalImage Generation, 2018]</ref> может выполнять контролируемую выборку различных изображений с очень высокой точностью, что так же достигается путём разбиения процесса генерации изображений на этапы. В отличие от StackGAN, где несколько этапов [[Generative Adversarial Nets (GAN)| GAN]] обучаются отдельно с полным контролем помеченных промежуточных изображений, FusedGAN имеет одноступенчатый конвейер со встроенной StackGAN. | ||
+ | <div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[ Файл:FusedGAN.png|thumb| alt=Архитектура FusedGAN|x350px|center|Архитектура FusedGAN]]</div> | ||
+ | Контролируемая выборка относится к процессу выборки изображений путем контролируемого изменения таких факторов, как поза, стиль, фон и другие детали. Например, можно генерировать разные изображения, оставляя постоянным фон, или генерировать изображения в различных стилях, сохраняя одну и ту же позу. | ||
+ | Основное преимущество данной модели состоит в том, что для обучения она может использовать полу-размеченные данные. Это означает, что помимо размеченных данных для генерации изображений (изображение и его описание), модель может использовать изображения без текстового описания. | ||
+ | Модель состоит из двух совмещённых шагов: | ||
+ | * На первом этапе с помощью [[Generative Adversarial Nets (GAN)| GAN]] выполняется генерация изображений из случайного вектора шума, а также создаются признаки для стиля, в котором будет оформлено сгенерированное изображение на втором шаге. | ||
+ | * На втором этапе CGAN<ref>[https://arxiv.org/abs/1411.1784 Mirza M. and Osindero S. {{---}} Conditional Generative Adversarial Nets (CGAN) 2014]</ref> генерирует окончательное изображение (то есть изображение, соответствующее описанию и стилю заданному на первом шаге), используя в качестве входных данных текстовое описание и данные полученные с первого шага. | ||
+ | <tex>М_{s}</tex> выступает в роли шаблона подавая дополнительные признаки на второй шаг генерации. Вследствие чего изображения сгенерированных птиц не только соответствуют описанию, но также сохраняют информацию о стиле. Поэтому вместо того, чтобы учиться с нуля, <tex>G_{c}</tex> строится поверх <tex>М_{s}</tex>, добавляя к нему стили с помощью текстового описания. | ||
+ | Следует отметить, что в модели отсутствует явная иерархия, поэтому оба этапа могут обучаться одновременно, используя чередующуюся оптимизацию. | ||
+ | <div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[ Файл:FusedGAN_ example.png|thumb| alt=Пример работы FusedGAN|x350px|center|Сравнение FusedGAN с другими моделями]]</div> | ||
+ | Для оценки качества генерируемых изображений с помощью FusedGAN, были отобраны 30 тысяч изображений и посчитано inception scores, используя предварительно обученную модель на тестовом наборе Caltech-UCSD<ref name="caltech"/>. Данные сравнения приведены в таблице | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Модель !! Inception Score | ||
+ | |- | ||
+ | | style = "text-align: right" | GAN-INT-CLS <ref name="scott"/> || style = "text-align: center" | <tex>2.88 \pm 0.04</tex> | ||
+ | |- | ||
+ | | style = "text-align: right" | StackGAN-I || style = "text-align: center" | <tex>2.95 \pm 0.02</tex> | ||
+ | |- | ||
+ | | style = "text-align: right" | FusedGAN || style = "text-align: center" | <tex>3.00 \pm 0.03</tex> | ||
+ | |} | ||
+ | |||
=== MirrorGAN === | === MirrorGAN === | ||
Генерация изображения из заданного текстового описания преследует две главные цели: визуальный реализм и семантическое постоянство. Несмотря на то, что существует колоссальный прогресс в создании визуально реалистичных изображений высокого качества посредством [[Generative Adversarial Nets (GAN) | генеративных состязательных сетей]], обеспечение вышепоставленных велей все еще является категорически сложной задачей. Для осуществления попытки их реализации рассмотрим глобально-локальный сохраняющий семантику text-to-image-to-text фреймворк с вниманием под названием MirrorGAN. Данный фреймворк эксплуатирует идею обучения text-to-image генерации с помощью переописания и состоит из трёх модулей: | Генерация изображения из заданного текстового описания преследует две главные цели: визуальный реализм и семантическое постоянство. Несмотря на то, что существует колоссальный прогресс в создании визуально реалистичных изображений высокого качества посредством [[Generative Adversarial Nets (GAN) | генеративных состязательных сетей]], обеспечение вышепоставленных велей все еще является категорически сложной задачей. Для осуществления попытки их реализации рассмотрим глобально-локальный сохраняющий семантику text-to-image-to-text фреймворк с вниманием под названием MirrorGAN. Данный фреймворк эксплуатирует идею обучения text-to-image генерации с помощью переописания и состоит из трёх модулей: | ||
Строка 258: | Строка 280: | ||
=== MCA-GAN === | === MCA-GAN === | ||
− | |||
== Области применения == | == Области применения == | ||
*Создание контента и данных | *Создание контента и данных |
Версия 12:05, 12 января 2021
Автоматический синтез реалистичных высококачественных изображений из текстовых описаний был бы интересен и довольно полезен, так как имеет множество практических применений., но современные системы искусственного интеллекта все еще далеки от этой цели, так как это является довольно сложной задачей в области компьютерного зрения. Однако в последние годы были разработаны универсальные и мощные рекуррентные архитектуры нейронных сетей для изучения различных представлений текстовых признаков. Между тем, глубокие сверточные генеративные состязательные сети (англ. Generative Adversarial Nets, GANs) начали генерировать весьма убедительные изображения определенных категорий, таких как лица, обложки альбомов и интерьеры комнат. Образцы, генерируемые существующими подходами "текст-изображение", могут приблизительно отражать смысл данных описаний, но они не содержат необходимых деталей и ярких частей объекта. Мы рассмотрим глубокую архитектуру и формулировку GAN, объединим достижения в моделировании текста и изображений, переводя визуальные концепции из символов в пиксели.
Содержание
- 1 GAN
- 1.1 Глубокая сверточная генеративная состязательная сеть
- 1.2 Условная генерация изображений из визуальных атрибутов
- 1.3 Составные генеративные состязательные сети
- 1.4 Реалистичный синтез изображений с помощью составных генеративных состязательных сетей
- 1.5 Вывод семантического макета для иерархического преобразования текста в изображение
- 1.6 AttnGAN
- 1.7 Stacking VAE and GAN
- 1.8 ChatPainter
- 1.9 MMVR
- 1.10 FusedGAN
- 1.11 MirrorGAN
- 1.12 Obj-GAN
- 1.13 LayoutVAE
- 1.14 TextKD-GAN
- 1.15 MCA-GAN
- 2 Области применения
- 3 См. также
- 4 Примечания
- 5 Источники информации
GAN
Глубокая сверточная генеративная состязательная сеть
Глубокая сверточная генеративная состязательная сеть (англ. Deep Convolutional Generative Adversarial Network, DCGAN) — обусловлена текстовыми признаками, кодируемыми гибридной сверточно-рекуррентной нейронной сетью на уровне символов. DCGAN имеет эффективную архитектуру и обучающую структуру, которая позволяет синтезировать изображения птиц и цветов из письменных описаний, предоставленных человеком.
Для обучения такой модели для птиц был использован набор данных Caltech-UCSD[1], а для цветов — Oxford-102[2] наряду с пятью текстовыми описаниями на изображение, которые были собраны и использованы в качестве параметров оценки. Данная модель обучается на подмножестве обучающих категорий, и здесь будет продемонстрирована ее эффективность как на обучающем множестве, так и на тестовом.
DCGAN во многих случаях может генерировать на основе текста визуально-правдоподобные изображения размером 64×64, а также отличается тем, что сама модель является генеративной состязательней сетью, а не только использует ее для постобработки. Текстовые запросы кодируются с помощью текстового кодировщика Leaky ReLU и результат конкатенируется с вектором шума .
. Описание, внедренное в сначала сжимается с помощью полностью связанного слоя до небольшого размера (на практике было использовано 128), затем применяется функция активацииКак только модель научилась генерировать правдоподобные изображения, она должна также научиться согласовывать их с текстовым описанием и было бы неплохо если она научится оценивать, соответствуют ли изображения этому описанию или нет. Модель должна неявно разделять два источника ошибок: нереалистичные образы (для любого текста)и реалистичные образы неправильного класса, которые не соответствуют текстовым признакам. Алгоритм обучения GAN был модифицирован таким образом, чтобы разделять эти источники ошибок. В дополнение к реальным/поддельным входным данным в дискриминатор во время обучения был добавлен третий тип входных данных, состоящий из реальных изображений с несовпадающим текстовым описанием, на которых дискриминатор должен обучиться оценивать поддельные.
Условная генерация изображений из визуальных атрибутов
Условная генерация изображений из визуальных атрибутов (англ. Conditional Image Generation from Visual Attributes, Attribute2Image) — это еще один способ создания изображений из визуальных атрибутов. Attribute2Image моделирует изображение как смесь переднего и заднего планов и разрабатывает многоуровневую генеративную модель с выделенными скрытыми переменными, которые можно изучать от начала до конца с помощью вариационного автокодировщика. Экспериментируя с естественными изображениями лиц и птиц Attribute2|Image демонстрирует, что способен генерировать реалистичные и разнообразные изображения с распутанными скрытыми представлениями. Модель использует общий алгоритм минимизации энергии для апостериорного вывода скрытых переменных с учетом новых изображений. Таким образом, изученные генеративные модели показывают отличные количественные и визуальные результаты в задачах реконструкции и завершения изображения, обусловленного атрибутами.Составные генеративные состязательные сети
Составные генеративные состязательные сети (англ. Stacked Generative Adversarial Networks, StackGAN) — служат для генерации фотореалистичный изображений размера 256x256, заданных текстовыми описаниями, где трудная задача разлагается на более решаемые подзадачи с помощью процесса эскиз-уточнения (англ. sketch-refinement process). Таким образом, Stage-I GAN рисует примитивную форму и цвета объекта на основе данного текстового описания, получая изображения Stage-I с низким разрешением. Stage-II GAN принимает результаты Stage-I и текстовые описания в качестве входных данных и генерирует изображения высокого разрешения с фотореалистичными деталями. Он способен исправлять дефекты в результатах этапа I и добавлять привлекательные детали в процессе уточнения (англ. refinement process). Чтобы улучшить разнообразие синтезированных изображений и стабилизировать обучение CGAN вводится техника условно-когнитивной регуляции (англ. Conditioning Augmentation), которая способствует плавности в обусловливающем многообразии.
Вклад предлагаемого метода состоит из трех частей:
- Мы предлагаем новую составную генеративную состязательную сеть для синтеза фотореалистичных изображений из текстовых описаний. Он разбивает сложную задачу генерации изображений с высоким разрешением на более решаемые подзадачи и значительно улучшает состояние дел. StackGAN впервые генерирует изображения с разрешением 256х256 пикселей с фотореалистичными деталями из текстовых описаний.
- Предлагается техника Condition Augmentation для стабилизации обучения CGAN, а также для улучшения разнообразия генерируемых выборок.
- Обширные качественные и количественные эксперименты демонстрируют эффективность дизайна модели в целом, а также влияние отдельных компонентов, которые предоставляют полезную информацию для разработки будущих условных моделей GAN.
Генератор Stage-II мы проектируем как сеть кодер-декодер с остаточными блоками. Что касается дискриминатора, его структура аналогична структуре дискриминатора Stage-I только с дополнительными блоками понижающей дискретизации, поскольку на этом этапе размер изображения больше.
Для проверки метода были проведены обширные количественные и качественные оценки. Сравниваются два современных метода синтеза текста в изображение, GAN-INT-CLS[3] и GAWWN[3].
Реалистичный синтез изображений с помощью составных генеративных состязательных сетей
Хотя генерирующие состязательные сети (GAN) показали замечательный успех в различных задачах, они все еще сталкиваются с проблемами при создании изображений высокого качества. В данном разделе предлагаются составные генеративные состязательные сети, предназначенные для создания фотореалистичных изображений с высоким разрешением. Во-первых, предлагается двухэтапная генеративная состязательная сетевая архитектура StackGAN-v1 для синтеза текста в изображение. Stage-I по-прежнему рисует примитивную форму и цвета сцены на основе заданного текстового описания, что дает изображения с низким разрешением. Stage-II все также принимает результаты этапа I и текстовое описание в качестве входных данных и генерирует изображения высокого разрешения с фотореалистичными деталями. Во-вторых, усовершенствованная многоэтапная генеративно-состязательная сетевая архитектура StackGAN-v2 предлагается как для условных, так и для безусловных генеративных задач. StackGAN-v2 состоит из нескольких генераторов и нескольких дискриминаторов, организованных в древовидную структуру; изображения в нескольких масштабах, соответствующие одной и той же сцене, генерируются из разных ветвей дерева. StackGAN-v2 демонстрирует более стабильное поведение при обучении, чем StackGAN-v1, за счет совместной аппроксимации нескольких распределений.
Несмотря на успех, GAN, как известно, сложно обучить. Тренировочный процесс обычно нестабилен и чувствителен к выбору гиперпараметров. В нескольких статьях утверждалось, что нестабильность частично связана с несвязными носителями распределения данных и подразумеваемого модельного распределения. Эта проблема становится более серьезной при обучении GAN генерировать изображения с высоким разрешением (например, 256x256), потому что вероятность очень мала для распределения изображений, а распределение модели для совместного использования поддерживает в многомерном пространстве. Более того, обычным явлением сбоя при обучении GAN является свертывание режима, когда многие из сгенерированных выборок содержат одинаковый цвет или узор текстуры. Чтобы стабилизировать процесс обучения GAN и улучшить разнообразие выборок, несколько методов пытались решить проблемы, предлагая новые сетевые архитектуры, вводя эвристические приемы или изменяя цели обучения.
Предлагается продвинутая многоэтапная генеративно-состязательная сетевая архитектура StackGAN-v2 как для условных, так и для безусловных генеративных задач. StackGAN-v2 имеет несколько генераторов, которые разделяют большинство своих параметров в древовидной структуре. входные данные сети можно рассматривать как корень дерева, а многомасштабные изображения генерируются из разных ветвей дерева. Конечная цель генератора на самой глубокой ветви - создание фотореалистичных изображений с высоким разрешением. Генераторы в промежуточных ветвях имеют прогрессивную цель создания изображений от малых до больших для достижения конечной цели. Вся сеть совместно обучается аппроксимировать различные, но сильно взаимосвязанные распределения изображений в разных ветвях. Кроме того, предлагается термин регуляризации согласованности цвета, чтобы генераторы могли генерировать более согласованные образцы для разных масштабов.
На основе этих генеративных моделей также изучалась условная генерация изображений. В большинстве методов используются простые условные переменные, такие как атрибуты или метки классов. Существуют также работы с изображениями для создания изображений, включая редактирование фотографий, перенос домена и сверхвысокое разрешение. Однако методы сверхвысокого разрешения могут добавлять только ограниченное количество деталей к изображениям с низким разрешением и не могут исправить большие дефекты.
Введен термин регуляризации согласованности цвета, чтобы образцы, сгенерированные с одного и того же входа на разных генераторах, были более согласованными по цвету и, таким образом, улучшили качество сгенерированных изображений.
Вывод семантического макета для иерархического преобразования текста в изображение
В данном разделе предлагается новый иерархический подход к синтезу текста в изображение путем определения семантического макета. Вместо того, чтобы изучать прямое отображение текста в изображение, алгоритм разбивает процесс генерации на несколько шагов, на которых он сначала создает семантический макет из текста с помощью генератора макета и преобразует макет в изображение с помощью генератора изображений. Предлагаемый генератор компоновки постепенно создает семантическую компоновку от грубого к точному, генерируя ограничивающие прямоугольники объекта и уточняя каждый прямоугольник, оценивая формы объектов внутри него. Генератор изображений синтезирует изображение, обусловленное предполагаемым семантическим макетом, что обеспечивает полезную семантическую структуру изображения, совпадающего с текстовым описанием.
Модель не только генерирует семантически более значимые изображения, но также позволяет автоматически аннотировать генерируемые изображения. Созданные изображения и процесс генерации под управлением пользователя путем изменения сгенерированного макета сцены.
Возможности предложенной модели были продемонстрированы на сложном наборе данных MS-COCO dataset[4]. Оказывается, модель может существенно улучшить качество изображения, интерпретируемость вывода и семантическое выравнивание вводимого текста по сравнению с существующими подходами.
Создание изображения из общего предложения «люди, едущие на слонах, идущих по реке» требует множества рассуждений о различных визуальных концепциях, таких как категория объекта (люди и слоны), пространственные конфигурации объектов (верховая езда), контекст сцены (прогулка по реке) и т. д., что намного сложнее, чем создание одного большого объекта, как в более простых наборах данных. Существующие подходы не привели к успеху в создании разумных изображений для таких сложных текстовых описаний из-за сложности обучения прямому преобразованию текста в пиксель из обычных изображений.
Поэтому вместо того, чтобы изучать прямое отображение текста в изображение, был предложен альтернативный подход, который строит семантический макет как промежуточное представление между текстом и изображением. Семантический макет определяет структуру сцены на основе экземпляров объектов и предоставляет детальную информацию о сцене, такую как количество объектов, категорию объекта, расположение, размер, форму.
- Box Generator принимает в качестве входных данных вложения текста и генерирует грубую компоновку, составляя экземпляры объектов в изображении. Выходные данные генератора прямоугольников представляют собой набор ограничивающих прямоугольников , где каждый ограничивающий прямоугольник определяет местоположение, размер и метку категории -го объекта.
- Shape Generator берет набор ограничивающих рамок, созданных из генератора прямоугольников, и предсказывает формы объектов внутри прямоугольников. Результатом является набор двоичных масок , где каждая маска определяет форму переднего плана -го объекта.
- Image Generator принимает карту семантической метки, полученную путем агрегирования масок по экземплярам, и текстовое описание в качестве входных данных, и генерирует изображение, переводя семантический макет в пиксели, соответствующие текстовому описанию.
AttnGAN
Последние разработки исследователей в области автоматического создания изображений по текстовому описанию, основаны на генеративных состязательных сетях (GANs).Общепринятый подход заключается в кодировании всего текстового описания в глобальное векторное пространство предложений (англ. global sentence vector). Такой подход демонстрирует ряд впечатляющих результатов, но у него есть главные недостатки: отсутствие чёткой детализации на уровне слов и невозможность генерации изображений высокого разрешения. Эта проблема становится еще более серьезной при генерации сложных кадров, таких как в наборе данных COCO[4].
В качестве решения данной проблемы была предложена[5] новая генеративно-состязательная нейросеть с вниманием (англ. Attentional Generative Adversarial Network, AttnGAN), которая относится к вниманию как к фактору обучения, что позволяет выделять слова для генерации фрагментов изображения.
Модель состоит из нескольких взаимодействующих нейросетей:
- Энкодер текста (англ. Text Encoder) и изображения (англ. Image Encoder) векторизуют исходное текстовое описания и реальные изображения. В данном случае текст рассматривается в виде последовательности отдельных слов, представление которых обрабатывается совместно с представлением изображения, что позволяет сопоставить отдельные слова отдельным частям изображения. Таким образом реализуется механизм внимания (англ. Deep Attentional Multimodal Similarity Model, DAMSM).
- — создает сжатое представление об общей сцене на изображении, исходя из всего текстового описания. Значение на выходе конкатенируется с вектором из нормального распределения , который задает вариативность сцены. Эта информация является основой для работы генератора.
- Attentional Generative Network — самая большая сеть, состоящая из трех уровней. Каждый уровень порождает изображения все большего разрешения, от 64x64 до 256x256 пикселей, и результат работы на каждом уровне корректируется с помощью сетей внимания , которые несут в себе информацию о правильном расположении отдельных объектов сцены. Кроме того, результаты на каждом уровне проверяются тремя отдельно работающими дискриминаторами, которые оценивают реалистичность изображения и соответствие его общему представлению о сцене.
Благодаря модификациям нейросеть AttnGAN показывает значительно лучшие результаты, чем традиционные системы GAN. В частности, максимальный из известных показателей inception score[6] для существующих нейросетей улучшен на 14,14% (с 3,82 до 4,36) на наборе данных Caltech-UCSD[1] и улучшен на целых 170,25% (с 9,58 до 25,89)[7] на более сложном наборе данных COCO[4].
Stacking VAE and GAN
Большинство существующих методов генерации изображения по тексту нацелены на создание целостных изображений, которые не разделяют передний и задний план изображений, в результате чего объекты искажаются фоном. Более того, они обычно игнорируют взаимодополняемость различных видов генеративных моделей. Данное решение[8] предлагает контекстно-зависимый подход к генерации изображения, который разделяет фон и передний план. Для этого используется взаимодополняющая связка вариационного автокодировщика (англ. Variational Autoencoder, VAE) и генеративно-состязательной нейросети.
VAE считается более устойчивым чем GAN, это можно использовать для достоверной подборки распределения и выявления разнообразия исходного изображения. Однако он не подходит для генерации изображений высокого качества, т. к. генерируемые VAE изображения легко размываются. Чтобы исправить данный недостаток архитектура включает два компонента:
- Контекстно-зависимый вариационный кодировщик (англ. conditional VAE, CVAE) используется для захвата основной компоновки и цвета, разделяя фон и передний план изображения.
- GAN уточняет вывод CVAE с помощью состязательного обучения, которое восстанавливает потерянные детали и исправляет дефекты для создания реалистичного изображения.
Полученные результаты проверки на 2 наборах данных (Caltech-UCSD[1] и Oxford-102[2]) эмпирически подтверждают эффективность предложенного метода.
ChatPainter
В предыдущих и последующих моделях для создания изображений используются текстовые описания. Однако они могут быть недостаточно информативными, чтобы охватить все представленные изображения, и модели будет недостаточно данных для того чтобы сопоставить объекты на изображениях со словами в описании. Поэтому в качестве дополнительных данных предлагается использовать диалоги, которые дополнительно описывают сцены. Это приводит к значительному улучшению inception score и качества генерируемых изображений в наборе данных MS COCO (Microsoft COCO dataset)[9]. Для создания нового набора данных с диалогами, были объединены описания представленные в наборе данных MS COCO[9], с данными из Visual Dialog dataset (VisDial)[10].
Данная архитектура (см. рис) опирается на модель StackGAN. StackGAN генерирует изображение в два этапа: Stage-I генерирует грубое изображение 64×64, а Stage-II генерирует улучшенное изображение 256×256.
Формирование вектора описаний [11]. Для генерации диалоговых вложений используется два метода:
происходит путем кодирования подписей с помощью предварительно обученного энкодера- Не рекурсивный энкодер — сжимает весь диалог в одну строку и кодирует его с помощью предварительно обученного энкодера Skip-Thought[12].
- Рекурсивный энкодер — генерирует Skip-Thought векторы (англ. Skip-Thought Vectors)[13] для каждого сообщения в диалоге, а затем кодирует их двунаправленной рекуррентной нейронной сетью c LSTM
Затем выходы описаний и диалогов объединяются и передаются в качестве входных данных в модуль аугментации данных (англ. Conditioning Augmentation, CA). Модуль CA нужен для получения скрытых скрытые условных переменных, которые передаются на вход генератору. Архитектура блоков upsample, downsample и residual blocks сохраняется такой же, как и у исходного StackGAN
Результаты тестирования и сравнение модели ChatPainter с другими приведены в таблице. Из неё видно, что модель ChatPainter, которая получает дополнительную диалоговую информацию, имеет более высокий Inception Score, в отличии от модели StackGAN. Кроме того, рекурсивная версия ChatPainter получилась лучше, чем не рекурсивная версия. Вероятно, это связано с тем, что в не рекурсивной версии энкодер не обучается на длинных предложениях сворачивая весь диалог в одну строку.
Модель | Inception Score |
---|---|
StackGAN | |
ChatPainter (non-recurrent) | |
ChatPainter (recurrent) | |
AttnGAN |
MMVR
Модель мультимодальной векторной сети (англ. Multi-Modal Vector Representation, MMVR), впервые предложенная в статье[14], способна создавать изображения по описанию и генерировать описание исходя из предоставленного изображения. Она включает несколько модификаций для улучшения генерации изображений и описаний, а именно: вводится функция потерь на основе метрики N-грамм, которая обобщает описание относительно изображения; так же для генерации вместо одного используется несколько семантически сходных предложений, что так же улучшает создаваемые изображения.
Модель может быть разделена на два взаимозависимых модуля (см. рис):
- Генератор изображений на основе GAN с DeePSiM[15].
- Генератор описаний изображений на основе Long-term Recurrent Convolutional Networks (LRCNs)[16].
Прямое распространение (англ. forward pass) инициируется путем передачи случайного скрытого вектора (англ. latent vector) [17] — в правило обновления добавляется ошибка восстановления изображения (англ. reconstruction error), вычисляемая как разница между и .
в генератор изображений ( ), который генерирует изображение . Затем по сгенерированной картинке генератор описаний создаёт подпись. Для определения ошибки между сгенерированным описанием и исходным описанием используется перекрестная энтропия на уровне слов. Она используется для итеративного обновления (заодно и ), оставляя при этом все остальные компоненты фиксированными. С каждой итерацией приближается к < tex>y</tex>, и сгенерированное изображение на каждом шаге является временным представлением конечного изображения. Для улучшения реалистичности изображения используется энкодер шумоподавленя (англ. Denoising Autoencoder, DAE)Обучение начинается с генерации случайного 4096-мерного вектора
, который передаётся в модель для последующего итеративного обновления. Процесс завершается после 200 итераций, и полученное изображение считается репрезентативным для данного описания.Модель | Inception Score |
---|---|
Plug and Play Generative Networks (PPGN)[17] | |
MMVR | |
MMVR ( | )
FusedGAN
Для улучшения генерации изображений по описанию и получения контролируемой выборки, некоторые модели используют разделение процесса генерации на несколько этапов, например, в модели Attribute2image[18] разделение генерации переднего и заднего плана позволило получить контролируемую выборку (сохраняя один из них фиксированным и варьируя другой). В свою очередь модель FusedGAN[19] может выполнять контролируемую выборку различных изображений с очень высокой точностью, что так же достигается путём разбиения процесса генерации изображений на этапы. В отличие от StackGAN, где несколько этапов GAN обучаются отдельно с полным контролем помеченных промежуточных изображений, FusedGAN имеет одноступенчатый конвейер со встроенной StackGAN.
Контролируемая выборка относится к процессу выборки изображений путем контролируемого изменения таких факторов, как поза, стиль, фон и другие детали. Например, можно генерировать разные изображения, оставляя постоянным фон, или генерировать изображения в различных стилях, сохраняя одну и ту же позу. Основное преимущество данной модели состоит в том, что для обучения она может использовать полу-размеченные данные. Это означает, что помимо размеченных данных для генерации изображений (изображение и его описание), модель может использовать изображения без текстового описания. Модель состоит из двух совмещённых шагов:
- На первом этапе с помощью GAN выполняется генерация изображений из случайного вектора шума, а также создаются признаки для стиля, в котором будет оформлено сгенерированное изображение на втором шаге.
- На втором этапе CGAN[20] генерирует окончательное изображение (то есть изображение, соответствующее описанию и стилю заданному на первом шаге), используя в качестве входных данных текстовое описание и данные полученные с первого шага.
выступает в роли шаблона подавая дополнительные признаки на второй шаг генерации. Вследствие чего изображения сгенерированных птиц не только соответствуют описанию, но также сохраняют информацию о стиле. Поэтому вместо того, чтобы учиться с нуля, строится поверх , добавляя к нему стили с помощью текстового описания. Следует отметить, что в модели отсутствует явная иерархия, поэтому оба этапа могут обучаться одновременно, используя чередующуюся оптимизацию.
Для оценки качества генерируемых изображений с помощью FusedGAN, были отобраны 30 тысяч изображений и посчитано inception scores, используя предварительно обученную модель на тестовом наборе Caltech-UCSD[1]. Данные сравнения приведены в таблице
Модель | Inception Score |
---|---|
GAN-INT-CLS [3] | |
StackGAN-I | |
FusedGAN |
MirrorGAN
Генерация изображения из заданного текстового описания преследует две главные цели: визуальный реализм и семантическое постоянство. Несмотря на то, что существует колоссальный прогресс в создании визуально реалистичных изображений высокого качества посредством генеративных состязательных сетей, обеспечение вышепоставленных велей все еще является категорически сложной задачей. Для осуществления попытки их реализации рассмотрим глобально-локальный сохраняющий семантику text-to-image-to-text фреймворк с вниманием под названием MirrorGAN. Данный фреймворк эксплуатирует идею обучения text-to-image генерации с помощью переописания и состоит из трёх модулей:
- модуль встраивания семантического текста (англ. 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) должно предоставлять аналогичную семантику с заданным.
Чтобы обучать модель сквозным методом, будем использовать две состязательные потери: в визуальном реализме и в семантическом постоянстве. В добавок, для максимального использования двойного регулирования T2I и I2T, применим текстово-семантическую реконструированную потерю основанную на перекрёстной энтропии.
MirrorGan представляет собой зеркальную структуру, объдиняя T2I и I2T. Она состоит из трех генераторов. Чтобы сконструировать мультиэтапный каскадный генератор, нужно совместить все три сети генерации изображений последовательно. В качестве архитектуры STREAM будем использовать широко используемый фреймворк захвата изображения, базированный на кодировке и декодировке. Кодировщик изображений есть свёрточная нейронная сеть, предварительно обученная на ImageNet, а декодировщик есть рекуррентная нейронная сеть. Предварительное обучение STREAM помогло MirrorGAN достичь более стабильного процесса обучения и более быстрой сходимости, в то время, как их совместая оптимизация довольно нестабильна и с точки зрения занимаемого места и времени очень дорога. Структура кодировщик-декодировщик и соответствующие ей параметры фиксированы во время обучения других модулей MirrorGAN.
Обучая
, градиенты из обратно распространяются через STREAM в , чьи сети остаются фиксированными.
Для наилучшего качества генерации, поставим коэффициент
.Показатель Inception был использован для измерения как объективности, так и разнообразия сгенерированных изображений. R-precision был использован для вычисления визуально-семантической схожести между сгенерированными изображениями и их соответствующими текстовыми описаниями.
Obj-GAN
Управляемая объектами генеративно-состязательная сеть с вниманием (англ. Object-Driven Attentive Generative Adversarial Network, Obj-GAN) позволяет производить объектно-центрированный text-to-image-синтез сложных структур. Объектно-управляемый генератор изображений, оперирующий двухэтапным layout-image процессом генерации, синтезирует выступающие объекты, обращая внимание на наиболее значимые слова в текстовом описании и в заранее сгенерированном семантическом макете. Стоит добавить, что предлагается новый объектный дискриминатор, базирующийся на Fast R-CNN, позволяющий производить пообъектные сигналы распознавания касательно того, может ли синтезированный объект быть сопоставлен с тектовым описанием и предварительно сгенерированным макетом. Obj-GAN значительно превосходит по производительности предыдущие технологии в различных показателях относительно бенчмарка COCO (Common Objects in Context), увеличивая показатель Inception на 11% и ученьшая показатель FID (Fréchet inception distance) на 27%.
Основная цель Obj-GAN — генерация высококачественных сложных изображений с семантически значимым макетом и реалистическими объектами. Obj-GAN состоит из пары генератора изображений, управляемый объектами, с вниманием и пообъектовый дискриминатор, а также новый механизм внимания. Как было сказано ранее, генератор изображений в качестве входных данных принимает текстовое описание и предварительно сгенерированный семантический макет и синтезирует изображения с помощью многоэтапного процесса coarse-to-fine. На каждом этапе генератор синтезирует фрагмент изображений внутри ограничивающей рамки (англ. bounding box), фокусируясь на наиболее релевантных объекту словах.
Говоря более конкретно, он, с использованием управляемого объектами слоя внимания, оперирует метками класса, запрашивая слова в предложениях, чтобы сформировать вектор контекстов, и впоследствии синтезирует фрагмент изображения при условиях метки и вектора контекстов. Пообъектный дискриминатор проверяет каждую ограничивающую рамку, чтобы удостовериться в том, что сгенерированный объект действительно может быть сопоставлен с заранее сгенерированным макетом. Чтобы вычислить все потери при распознавании для всех заданных ограничивающих рамок одновременно и эффективно, дискриминатор базирован быстрой региональной сверточной нейронной сетью (англ. Fast Region-based Convolutional Neural Network, Fast R-CNN) с двоичной функцией потерь перекрёстной энтропии для каждой рамки.
Рассмотрим архитектуру Obj-GAN. Первым этапом, генеративная состязательная сеть принимает текстовое предложение и генерирует семантический макет — последовательность объектов специфицированных соответствующими ограничивающими рамками (наряду с метками классов) и фигурами. Генератор рамок и генератор фигур работают соответствующим образом, сначала создавая последовательность ограничивающих рамок, а затем — фигуру для каждой. Поскольку большинству рамок сопоставлены слова из данного текстового предложения, модель seq2seq с вниманием охватывает это соответствие. Далее конструируется
, базированный на двунаправленной сверточной долгой краткосрочной памяти (англ. bidirectional convolutional long short-term memory, LSTM). Обучение основывается на фреймворке генеративной состязательной сети, в которой потеря восприятия исплоьзуется для ограничения генерируемых фигур и стабилизирования обучения.LayoutVAE
Модели, используемые для генерации макетов сцен из текстовых описаний по большей части игнорируют возможные визуальные вариации внутри структуры, описываемой самим текстом. Layout variational autoencoder (LayoutVAE) — фреймворк, базирующийся на вариационном автокодировщике для генераций стохастических макетов сцен — есть разносторонняя программная платформа моделирования, позволяющая генерировать полные макеты изображений с заданным набором меток или макеты меток для существующего изображения с заданной новой меткой. Вдобавок она также способна обнаруживать необычные макеты, потенциально открывающая пути к вычислению проблемы генерации макетов.
Будем рассматривать следующую проблему: генерация сцен с описанием набора меток. Набор меток, представленный как более слабое описание, всего лишь предоставляет множество меток, присутствующих в данном изображении без дополнительного описания взаимосвязи, заставляя модель изучать пространственные и подсчитываемые отношения на основе визуальных данных.
Касательно описанных проблем предлагаются следующие решения:
- модель стохастических генераций макетов сцен с заданным множеством меток, которая будет иметь две компоненты: моделирование распределений подсчитываемых отношений между объектами; моделирование распределений пространственных отношений между объектами;
- синтетический набор данных, MNIST-макеты, отражающую стохастическую природу генерации макета сцен;
- экстремальная валидация моделей с использованием MNIST-макетов и наборов данных COCO[4], в которой содержатся сложные макеты сцен реального мира.
В статье[21] были предложены фреймворки и структуры, модели и фреймворки, взаимодействующие с LayoutVE, такие как: PNP-Net — фреймворк вариационного автокодировщика для генерации изображения абстрактной сцены из текстовой программы, полностью описывающей её (помимо того, что это — стохастическая модель для генерации, она была протестирована на синтетических наборах данных с малым числом классов); LayoutGAN — модель, основанная на генеративных состязательных сетях, генерирующая макеты графических элементов (прамоугольники, трегуольники, и так далее); VAE-базированный фреймворк, кодирующий объект и информацию о макете о 3D-сцен в помещении в скрытом коде; и так далее...
Обучение генеративных моделей нужно, чтобы предсказать разнообразные, но правдоподобные наборы ограничивающих рамок, учитывая набор меток в качестве входных данных. Рамки в наборе представлены верхними левыми координатами, шириной и высотой
-й ограничивающей рамки категории . LayoutVAE естественным образом декомпозируется на модель для предсказания количества для каждой заданной метки — CountVAE — и другая для предсказания местоположения и размера каждого объекта — BBoxVAE.Имея набор меток
и количество объектов в категории , BBoxVAE предсказывает распределение координат для ограничивающих рамок авторегрессионно. Мы следуем тому же предопределенному порядку меток, что и в CountVAE, в пространстве меток, и упорядочиваем ограничивающие рамки слева направо для каждой метки; все ограничивающие рамки предсказываются перед переходом к следующей метке.TextKD-GAN
Генерация текста представляет особый интерес во многих приложениях нейролингвистического программирования (англ. neuro-linguistic programming, NLP), таких как машинный перевод, моделирование языка и обобщение текста. Генеративные состязательные сети достигли замечательного успеха в создании высококачественных изображений в компьютерном зрении, и в последнее время GANs также вызвали большой интерес со стороны сообщества NLP. Однако достижение подобного успеха в NLP было бы более сложным из-за дискретности текста. В данной статье[22] вводится метод, использующий дистилляцию знаний для эффективного использования настройку GAN для генерации текста. Также показываются, как автоэнкодеры (англ. autoencoders, AEs) могут быть использованы для обеспечения непрерывного представления предложений, которое в свою очередь представляет собой гладкое представление, присваивающее ненулевые вероятности более чем одному слову.
TextKD-GAN представляет из себя решение для основного узкого места использования генеративных состязательных сетей для генерации текста с дистилляцией знаний: метод, переносящий знания смягченного вывода модели преподавателя в модель студента. Решение основано на AE (учителе), чтобы получить гладкое представление реального текста. Это гладкое представление подается в дискриминатор TextKD-GAN вместо обычного однократного представления. Генератор (студент) пытается изучить многообразие смягченного гладкого представления AE. TextKD-GAN, в конечном итоге, будет превосходить обычный генератор текста на основе GAN, который не нуждается в предварительной подготовке.
В общепринятом текстовом подходе к дискриминации реальные и сгенерированные входные данные дискриминатора будут иметь разные типы (one-hot & softmax), и он может обыкновенно отличить их друг от друга. Один из способов избежать этой проблемы состоит в том, чтобы получить непрерывное гладкое представление слов, а не их one-hot представление, и обучить дискриминатор различать непрерывные представления. Здесь используется общепринятый автоэнкодер (учитель), чтобы заменить one-hot представление softmax-реконструированным выходом, который является гладким представлением, дающим меньшую дисперсию градиентов. Предложенная модель изображена на рисунке справа. Как видно, вместо one-hot представления реальных слов смягченный реконструированный выход автоэнкодера подается на вход дискриминатору. Эта техника значительно усложняет различение для самого дискриминатора. Генератор GAN (студент) с softmax выходом пытается имитировать распределение выходного сигнала автоэнкодера вместо общепринятого one-hot представления.
Обучение модели происходит следующим образом: мы обучаем AE и TextKD-GAN одновременно. Чтобы добиться этого, необходимо раздробить целевую функцию на три члена:
- реконструирующий член для автоэнкодера:
- функция потерь для дискриминатора с градиентным штрафом:
- состязательная стоимость генератора:
Эти функции потерь обучаются поочередно, чтобы оптимизировать различные части модели. В члене штрафа градиента необходимо посчитать норму градиента случайных выборок
.MCA-GAN
Области применения
- Создание контента и данных
- Картинки для интернет-магазина
- Аватары для игр
- Видеоклипы, сгенерированные автоматически, исходя из музыкального бита произведения
- Виртуальные ведущие[23]
- Благодаря работе генеративных моделей возникает синтез данных, на которых потом могут обучаться другие системы
- Генерации реалистичного видео городской среды[24]
См. также
- Порождающие состязательные сети (GAN)
- Генерация объектов
- Deepfake
- Практики реализации нейронных сетей
Примечания
- ↑ 1,0 1,1 1,2 1,3 Caltech-UCSD Birds 200 dataset
- ↑ 2,0 2,1 Oxford Flowers 102 dataset
- ↑ 3,0 3,1 3,2 Scott R. — Generative Adversarial Text to Image Synthesis
- ↑ 4,0 4,1 4,2 4,3 COCO dataset (Common Objects in Context)
- ↑ Tao X., Pengchuan Z. — AttnGAN: Fine-Grained Text to Image Generationwith Attentional Generative Adversarial Networks, 2018
- ↑ A Note on the Inception Score
- ↑ Test results — Text-to-Image Generation on COCO
- ↑ Chenrui Z., Yuxin P. — Stacking VAE and GAN for Context-awareText-to-Image Generation, 2018
- ↑ 9,0 9,1 9,2 9,3 Microsoft COCO
- ↑ Visual Dialog
- ↑ Pre-trained encoder for ICML 2016 paper
- ↑ Skip-Thought encoder
- ↑ Skip-Thought Vectors
- ↑ Shagan S., Dheeraj P. — SEMANTICALLY INVARIANT TEXT-TO-IMAGE GENERATION, 2018
- ↑ DeePSiM. Alexey D. and Thomas B. — Generating Images with Perceptual Similarity Metrics based on Deep Networks, 2016
- ↑ Jeff D., Lisa A. H. — Long-term Recurrent Convolutional Networks for Visual Recognition and Description, 2015
- ↑ 17,0 17,1 17,2 Anh N., Jeff C. — Plug & Play Generative Networks: Conditional Iterative Generation of Images in Latent Space
- ↑ Xinchen Y. — Conditional Image Generation from Visual Attributes, 2015
- ↑ Navaneeth B., Gang H. — Semi-supervised FusedGAN for ConditionalImage Generation, 2018
- ↑ Mirza M. and Osindero S. — Conditional Generative Adversarial Nets (CGAN) 2014
- ↑ LayoutVAE: Stochastic Scene Layout Generation From a Label Set
- ↑ — TextKD-GAN: Text Generation using KnowledgeDistillation and Generative Adversarial Networks
- ↑ Виртуальный диктор
- ↑ NVIDIA Interactive Graphics
Источники информации
- Scott R. — Generative Adversarial Text to Image Synthesis, 2016
- Xinchen Y. — Conditional Image Generation from Visual Attributes, 2015
- Han Z., Tao X. — Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks, 2017
- Han Z., Tao X. — Realistic Image Synthesis with Stacked Generative Adversarial Networks, 2018
- Seunghoon H., Dingdong Y. — Inferring Semantic Layout for Hierarchical Text-to-Image Synthesis, 2018
- Tao X., Pengchuan Z. — Fine-Grained Text to Image Generationwith Attentional Generative Adversarial Networks, 2018
- Chenrui Z., Yuxin P. — Stacking VAE and GAN for Context-awareText-to-Image Generation, 2018
- Shikhar S., Dendi S. — ChatPainter: Improving Text to Image Generation using Dialogue, 2018
- Shagan S., Dheeraj P. — SEMANTICALLY INVARIANT TEXT-TO-IMAGE GENERATION, 2018
- Navaneeth B., Gang H. — Semi-supervised FusedGAN for ConditionalImage Generation, 2018
- Tingting Q., Jing Z. — MirrorGAN: Learning Text-to-image Generation by Redescription, 2019
- Wendo L., Pengchuan Z. — Object-driven Text-to-Image Synthesis via Adversarial Training 2019
- Akash A.J., Thibaut D. — LayoutVAE: Stochastic Scene Layout Generation From a Label Set, 2019
- Md. Akmal H. and Mehdi R. — TextKD-GAN: Text Generation using Knowledge Distillation and Generative Adversarial Networks, 2019
- Bowen L., Xiaojuan Q. — MCA-GAN: Text-to-Image Generation Adversarial NetworkBased on Multi-Channel Attention, 2019
- Tingting Q., Jing Z. — Learn, Imagine and Create: Text-to-Image Generation from Prior Knowledge, 2019
- Анатолий А. — Генерация изображений из текста с помощью AttnGAN, 2018