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

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 9: Строка 9:
  
 
DCGAN во многих случаях может генерировать на основе текста визуально-правдоподобные изображения размером ​64×64, а также отличается тем, что сама модель является генеративной состязательней сетью, а не только использует ее для постобработки. Текстовые запросы кодируются с помощью текстового кодировщика <tex>\varphi</tex>. Описание, внедренное в <tex>\varphi(t)</tex> сначала сжимается с помощью полностью связанного слоя до небольшого размера (на практике было использовано 128), затем применяется функция активации [[Практики реализации нейронных сетей|Leaky ReLU]] и результат конкатенируется с вектором шума <tex>z</tex>.
 
DCGAN во многих случаях может генерировать на основе текста визуально-правдоподобные изображения размером ​64×64, а также отличается тем, что сама модель является генеративной состязательней сетью, а не только использует ее для постобработки. Текстовые запросы кодируются с помощью текстового кодировщика <tex>\varphi</tex>. Описание, внедренное в <tex>\varphi(t)</tex> сначала сжимается с помощью полностью связанного слоя до небольшого размера (на практике было использовано 128), затем применяется функция активации [[Практики реализации нейронных сетей|Leaky ReLU]] и результат конкатенируется с вектором шума <tex>z</tex>.
 +
 +
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:DCGAN-1.png|thumb|alt=Архитектура DCGAN|x350px|center|Архитектура AttnGAN]]</div>
 
=== Attribute2Image ===
 
=== Attribute2Image ===
 
=== StackGAN ===
 
=== StackGAN ===

Версия 02:42, 12 января 2021

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

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

GAN

Глубокая сверточная генеративная состязательная сеть

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

Для обучения такой модели для птиц был использован набор данных Caltech-UCSD[1], а для цветов — Oxford-102[2] наряду с пятью текстовыми описаниями на изображение, которые были собраны и использованы в качестве параметров оценки. Данная модель обучается на подмножестве обучающих категорий, и здесь будет продемонстрирована ее эффективность как на обучающем множестве, так и на тестовом.

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

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

Attribute2Image

StackGAN

StackGAN++

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

AttnGAN

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

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

Stacking VAE and GAN

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

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

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

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

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


ChatPainter

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

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

Inception scores для сгенерированных изображений в тестовом наборе MS COCO[8]
Модель Inception Score
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]

MMVR

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

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

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

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

Прямое распространение (англ. 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] приближается к < tex>y</tex>, и сгенерированное изображение на каждом шаге [math]\hat{x}[/math] является временным представлением конечного изображения. Для улучшения реалистичности изображения используется энкодер шумоподавленя (англ. Denoising Autoencoder, DAE)[16] — в правило обновления добавляется ошибка восстановления изображения (англ. reconstruction error), вычисляемая как разница между [math]h_{t}[/math] и [math]\hat{h_{t}}[/math].

Сравнение PPGN[16] и MMVR

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

Inception scores для сгенерированных изображений в тестовом наборе MS COCO[8]
Модель Inception Score
Plug and Play Generative Networks (PPGN)[16] [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] - количество описаний.

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

MirrorGan представляет собой зеркальную структуру, объдиняя T2I и I2T. Она состоит из трех генераторов. Чтобы сконструировать мультиэтапный каскадный генератор, нужно совместить все три сети генерации изображений последовательно. В качестве архитектуры STREAM будем использовать широко используемый фреймворк захвата изображения, базированный на кодировке и декодировке. Кодировщик изображений есть свёрточная нейронная сеть, предварительно обученная на ImageNet, а декодировщик есть рекуррентная нейронная сеть. Предварительное обучение STREAM помогло MirrorGAN достичь более стабильного процесса обучения и более быстрой сходимости, в то время, как их совместая оптимизация довольно нестабильна и с точки зрения занимаемого места и времени очень дорога. Структура кодировщик-декодировщик и соответствующие ей параметры фиксированы во время обучения других модулей MirrorGAN.

Обучая [math]G_i[/math], градиенты из [math]L_{stream}[/math] обратно распространяются через STREAM в [math]G_i[/math], чьи сети остаются фиксированными.

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

Для наилучшего качества генерации, поставим коэффициент [math]\lambda := 20[/math].

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

Сравнение MirrorGAN и других генеративных состязательных сетей.

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
Архитектура Obj-GAN

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

LayoutVAE

TextKD-GAN

MCA-GAN

LeicaGAN

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

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

См. также

Примечания

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