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

Материал из Викиконспекты
Перейти к: навигация, поиск
м (Добавлены "области применения")
Строка 19: Строка 19:
 
*Attentional Generative Network {{---}} самая большая сеть, состоящая из трех уровней. Каждый уровень порождает изображения все большего разрешения, от 64x64 до 256x256 пикселей, и результат работы на каждом уровне корректируется с помощью сетей внимания <math>F^{attn}</math>, которые несут в себе информацию о правильном расположении отдельных объектов сцены. Кроме того, результаты на каждом уровне проверяются тремя отдельно работающими дискриминаторами, которые оценивают реалистичность изображения и соответствие его общему представлению о сцене.
 
*Attentional Generative Network {{---}} самая большая сеть, состоящая из трех уровней. Каждый уровень порождает изображения все большего разрешения, от 64x64 до 256x256 пикселей, и результат работы на каждом уровне корректируется с помощью сетей внимания <math>F^{attn}</math>, которые несут в себе информацию о правильном расположении отдельных объектов сцены. Кроме того, результаты на каждом уровне проверяются тремя отдельно работающими дискриминаторами, которые оценивают реалистичность изображения и соответствие его общему представлению о сцене.
  
Благодаря модификациям нейросеть AttnGAN показывает значительно лучшие результаты, чем традиционные системы GAN. В частности, максимальный из известных показателей inception score<ref>[https://arxiv.org/abs/1801.01973 A Note on the Inception Score]</ref> для существующих нейросетей улучшен на 14,14% (с 3,82 до 4,36) на наборе данных CUB и улучшен на целых 170,25% (с 9,58 до 25,89)<ref>[https://paperswithcode.com/sota/text-to-image-generation-on-coco Test results {{---}} Text-to-Image Generation on COCO]</ref> на более сложном наборе данных COCO.
+
Благодаря модификациям нейросеть AttnGAN показывает значительно лучшие результаты, чем традиционные системы GAN. В частности, максимальный из известных показателей inception score<ref>[https://arxiv.org/abs/1801.01973 A Note on the Inception Score]</ref> для существующих нейросетей улучшен на 14,14% (с 3,82 до 4,36) на наборе данных CUB и улучшен на целых 170,25% (с 9,58 до 25,89)<ref>[https://paperswithcode.com/sota/text-to-image-generation-on-coco Test results {{---}} Text-to-Image Generation on COCO]</ref> на более сложном наборе данных COCO<ref>[https://cocodataset.org COCO dataset (Common Objects in Context)]</ref>.
  
 
<gallery mode="slideshow" caption="Пример результата работы AttnGAN">
 
<gallery mode="slideshow" caption="Пример результата работы AttnGAN">
Строка 43: Строка 43:
  
 
=== ChatPainter ===
 
=== ChatPainter ===
 +
В предыдущих и последующих моделях для создания изображений используются текстовые описания. Однако они могут быть недостаточно информативными, чтобы охватить все представленные изображения, и модели будет недостаточно данных для того чтобы сопоставить объекты на изображениях со словами в описании. Поэтому в качестве дополнительных данных предлагается использовать диалоги, которые дополнительно описывают сцены. Это приводит к значительному улучшению inception score и качества генерируемых изображений в наборе данных MS COCO (Microsoft COCO dataset)<ref>[https://www.microsoft.com/en-us/research/wp-content/uploads/2014/09/LinECCV14coco.pdf Microsoft COCO]</ref>. Для создания нового набора данных с диалогами, были объединены описания представленные в наборе данных MS COCO, с данными из Visual Dialog dataset (VisDial)<ref>[https://arxiv.org/abs/1611.08669 Visual Dialog]</ref>.
 +
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл: ChatPainter.png|thumb| alt=Архитектура ChatPainter|x350px|center| Архитектура ChatPainter: <ol style="list-style-type:lower-alpha">
 +
  <li>Этап 1: модель генерирует изображение 64×64, по описанию и диалогу. </li>
 +
  <li>Этап 2: модель генерирует изображение размером 256×256, на основе изображения сгенерированного на 1 этапе, а также описанию и диалогу </li>
 +
</ol>]]</div>
 +
 +
[[Файл:SurfBoard-questions.png|alt=Изображение, сгенерированное моделью ChatPainter для данного описания и диалога|thumb|x200px|right|Пример работы ChatPainter]]
 +
 +
Данная архитектура (см. рис) опирается на модель StackGAN. StackGAN генерирует изображение в два этапа: Stage-I генерирует грубое изображение 64×64, а Stage-II генерирует улучшенное изображение 256×256.
 +
 +
Формирование вектора описаний <tex>\phi_{t}</tex> происходит путем кодирования подписей  с помощью предварительно обученного энкодера<ref>[https://github.com/reedscot/icml2016 pre-trained encoder for  ICML 2016 paper]</ref>. Для генерации диалоговых вложений <tex>\zeta_{d}</tex> используется два метода:
 +
 +
*Не рекурсивный энкодер {{---}} сжимает весь диалог в одну строку и кодирует его с помощью предварительно обученного энкодера Skip-Thought<ref>[https://github.com/ryankiros/skip-thoughts Skip-Thought encoder]</ref>.
 +
 +
*Рекурсивный энкодер {{---}} Генерирует Skip-Thought векторы (англ. Skip-Thought Vectors)<ref>[https://arxiv.org/abs/1506.06726 Skip-Thought Vectors]</ref> для каждого сообщения в диалоге, а затем кодируем их двунаправленной [[Рекуррентные нейронные сети| рекуррентной нейронной сетью]] c [[Долгая краткосрочная память|LSTM]]
 +
 +
Затем выходы описаний и диалогов объединяются и передаются в качестве входных данных в модуль аугментации данных (англ. Conditioning Augmentation, CA). Модуль CA нужен для получения скрытых скрытые условных переменных, которые передаются на вход генератору.
 +
Архитектура блоков upsample, downsample и residual blocks сохраняется такой же, как и у исходного StackGAN
 +
 +
{| class="wide" style="margin:auto; clear:both;"
 +
|+ '''Inception scores  для сгенерированных изображений в тестовом наборе MS COCO'''
 +
|-
 +
! Модель !! Inception Score
 +
|-
 +
| style = "text-align: right" | StackGAN || style = "text-align: center" | 8.45 ± 0.03
 +
|-
 +
| style = "text-align: right" | ChatPainter (non-recurrent)|| style = "text-align: center" | 9.43 ± 0.04
 +
|-
 +
| style = "text-align: right" | ChatPainter (recurrent)|| style = "text-align: center" | 9.74 ± 0.02
 +
|-
 +
| style = "text-align: right" | AttnGAN || style = "text-align: center" | 25.89 ± 0.47
 +
|}
 +
{| class="mw-datatable"
 +
|+ Таблица <code>mw-datatable</code>
 +
! <!-- Пустая ячейка --> !! Заголовок столбца 1 !! Заголовок столбца 2
 +
|-
 +
| Заголовок строки 1 || Содержимое ячейки 1-1 || Содержимое ячейки 1-2
 +
|-
 +
| Заголовок строки 2 || Содержимое ячейки 2-1 || Содержимое ячейки 2-2
 +
|}
 +
 +
 
=== MMVR ===
 
=== MMVR ===
 
=== FusedGAN ===
 
=== FusedGAN ===

Версия 19:58, 8 января 2021

Эта статья находится в разработке!

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

GAN

DCGAN

Attribute2Image

StackGAN

StackGAN++

Some Name Here (Inferring Semantic Layout for Hierarchical Text-to-Image Synthesis)

AttnGAN

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

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

Архитектура AttnGAN
Архитектура AttnGAN

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

  • Энкодер текста (англ. 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[3] для существующих нейросетей улучшен на 14,14% (с 3,82 до 4,36) на наборе данных CUB и улучшен на целых 170,25% (с 9,58 до 25,89)[4] на более сложном наборе данных COCO[5].

Stacking VAE and GAN

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

Архитектура Stacking VAE and GAN
Архитектура Stacking VAE and GAN

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

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

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


ChatPainter

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

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

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

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

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

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

Inception scores для сгенерированных изображений в тестовом наборе MS COCO
Модель Inception Score
StackGAN 8.45 ± 0.03
ChatPainter (non-recurrent) 9.43 ± 0.04
ChatPainter (recurrent) 9.74 ± 0.02
AttnGAN 25.89 ± 0.47
Таблица mw-datatable
Заголовок столбца 1 Заголовок столбца 2
Заголовок строки 1 Содержимое ячейки 1-1 Содержимое ячейки 1-2
Заголовок строки 2 Содержимое ячейки 2-1 Содержимое ячейки 2-2


MMVR

FusedGAN

MirrorGAN

Obj-GANs

LayoutVAE

TextKD-GAN

MCA-GAN

LeicaGAN

Области применения

  • Создание контента и данных
    • Картинки для интернет-магазина
    • Аватары для игр
    • Видеоклипы, сгенерированные автоматически, исходя из музыкального бита произведения
    • Виртуальные ведущие[13]
  • Благодаря работе генеративных моделей возникает синтез данных, на которых потом могут обучаться другие системы
    • Генерации реалистичного видео городской среды[14]

См. также

Примечания

Источники информации