Text2Image
Goal
- 從描述圖像的文字生成:
- 照片般真實的圖片
- 抽象的卡通圖片
Evaluation
-
Inception score
- 評估生成圖像的質量和多樣性(在ImageNet上訓練)
- 不能反映生成圖片和文本的匹配程度
-
Human evaluation
- 對多個模型的結果進行排序
VAE
Generating images from captions with attention (36 x 36)
Mansimov, Elman, Parisotto, Emilio, Ba, Lei Jimmy, and Salakhutdinov, Ruslan. Generating images from captions with attention. In Proceedings of the ICLR. 2016.
會議:ICLR. 2016.
align-DRAW
- 本文使用自動循環(huán)編碼加上注意力機制,迭代的根據文章中的單詞繪制相應的部分圖像
- 可以從在訓練集中沒有見過的句子生成合理的圖像碳褒,例如“停車標志在藍天飛行”
- 利用GAN在最后一步來優(yōu)化圖片
- 生成的圖像不夠真實瞧哟,物體區(qū)域是一塊一塊模糊的圖像
- 生成的圖像是低分辨率36x36的
缺點:
- VAE的缺點也很明顯赴魁,他是直接計算生成圖片和原始圖片的均方誤差恩伺,而不是像GAN那樣去對抗來學習蜒谤,這就使得生成的圖片會有點模糊
- 在圖像領域中赋兵,由于VAE生成的圖片偏模糊,因此大家通常更關心VAE作為圖像特征提取器的作用桦他。
結果
GAN
Generative adversarial text to image synthesis (64 x 64)
Reed, Scott, Akata, Zeynep, Yan, Xinchen, Logeswaran, Lajanugen, Schiele, Bernt, and Lee, Honglak. Generative adversarial text to image synthesis. In Proceedings of ICML 2016
會議:ICML 2016
DC-GAN with encoded text features
- 首次證明了cGAN可以用來比較好的從文本描述中生成肉眼可接受的圖像
- 缺乏逼真的細節(jié)和圖像中對象的一些部位蔫巩,例如鳥的眼睛和鳥喙(hui)
- 生成了肉眼可以接受的64x64分辨率的圖像
- 模型上只有簡單的一個GAN結構,如果盲目的上采樣增加分辨率快压,會導致GAN訓練不穩(wěn)定圆仔,并且產生無意義的輸出
- 也就是模型限制了分辨率的大小
- image
結果
Learning what and where to draw (128 x 128)
Reed, Scott E, Akata, Zeynep, Mohan, Santosh, Tenka, Samuel, Schiele, Bernt, and Lee, Honglak. Learning what and where to draw. In Advances in NIPS 2016.
會議:NIPS 2016
GAWWN (Generative Adversarial What-Where Network)
- 圖片中目標對象的(額外信息)位置和尺寸可以幫助提升生成圖像的質量和對文本的解釋質量
- 產生了128x128的高分辨率圖像
Plug & play generative networks: Conditional iterative generation of images in latent space(227x227)
Nguyen, Anh, Clune, Jeff, Bengio, Yoshua, Dosovitskiy, Alexey, and Yosinski, Jason. Plug & play generative networks: Conditional iterative generation of images in latent space. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2017.
會議:CVPR 2017
PPGAN
- 訓練好GAN,用預訓練的分類器當作編碼器對圖片x提取特征h蔫劣,這個h當作初始輸入坪郭,然后通過不斷迭代去修改h的值,去獲得效果更好的圖片
- 需要多次低效的迭代來優(yōu)化
- 生成了227x227的高分辨率圖像
結果
StackGAN (256 x 256)
Zhang, Han, Xu, Tao, Li, Hongsheng, Zhang, Shaoting, Wang, Xiaogang, Huang, Xiaolei, and Metaxas, Dim- itris N. Stackgan: Text to photo-realistic image synthesis with stacked generative adversarial networks. In The IEEE International Conference on Computer Vision, 2017.
會議:ICCV 2017
挑戰(zhàn)
- 當前的方法可以理解文字描述中的意思脉幢,但是不能包含必要的細節(jié)和逼真的圖像中對象的一些子部位
- 當前的方法難以從文本描述中產生高分辨率并且很逼真的圖像
本文的創(chuàng)新點
- 把生成高質量圖片這個復雜問題分解成了一些更好控制的子問題
- 第一次從文本描述中生成256x256分辨率的擁有逼真的細節(jié)的圖像
- 使用兩個堆疊的GAN來解決
- Stage-I GAN:
- 畫出了基于給定的文本描述的草圖歪沃,生成了初步的低分辨率的圖像
- 包括圖像中的對象的最初的形狀和基本的顏色
- 并且從隨機噪聲向量中繪制了背景的布局
- Stage-II GAN:
- 糾正了第一階段產生的低分辨率圖像的錯誤
- 再次閱讀給出的句子,完成了圖像中對象的細節(jié)部分的繪制
- 生成了高分辨率并且逼真的圖像
- Stage-I GAN:
- 使用兩個堆疊的GAN來解決
- 提出了一個條件增強技術(Conditioning Augmentation technique)來處理cGAN在訓練時的穩(wěn)定性嫌松,也增加了訓練樣本的多樣性
- 利用cGAN之前常用的方法是把文本編碼的結果直接當作條件輸入
- 這會導致特征空間的不連續(xù)沪曙,不利于生成器的訓練
- 一方面因為文本embedding后的特征空間通常是高維度的(大于100維度)
- 只有有限的訓練數據
- 這會導致特征空間的不連續(xù)沪曙,不利于生成器的訓練
- 提出的條件增強技術是從一個以text embedding的均值和協方差函數為變量的高斯分布中抽取隱含變量
- 一方面可以增加訓練的樣本數量,因為每次輸入都是不同的
- 另一方面使得訓練過程中GAN對于輸入條件多樣性的擾動更加robust
- 利用cGAN之前常用的方法是把文本編碼的結果直接當作條件輸入
缺點
- 沒有用端到端的訓練方法萎羔,需要先訓練第一階段液走,然后再訓練第二階段
- 它的條件輸入是全局的句子向量,丟失了細粒度的單詞級別的信息,在圖像中同樣會丟失相應的細節(jié)
架構圖
- CA-1
- 將text embedding ?t 送到一個全連接層中以此來生成 μ0 和 σ0育灸,得到高斯分布 N
- 從高斯分布中采樣得到文本條件變量c0
- 將 c? 0 和噪聲向量 z 連接起來作為Stage-1 Generator的輸入
- Stage-1 Generator
- 經過一些列“升維塊”(upsampling block)之后腻窒,會生成大小為 W0×H0 的圖片
- Stage-1 Discriminator
- 首先利用全連接層將 ?t 壓縮到 Nd 維
- 將其在空間上進行復制,形成一個 Md×Md×Nd 的張量
- 將圖片送到一系列“降維塊”(downsampling block)中磅崭,使其具有 Md×Md×Nf 的空間結構
- 然后將圖片的tensor和文本的tensor沿著channel的維度連接的一起
- 將結果送到 1×1 的卷積層當中儿子,聯合學習圖片和文本之間的關系特征
- 最后,將特征傳送到輸出為一個節(jié)點的全連接層砸喻,得到當前圖片與文本屬于真實數據的概率柔逼。
一方面從Stage-1 GAN中得到的低分辨率圖像通常會缺少一些局部細節(jié),有時候還會造成主要目標物不同程度的形變割岛。另一方面愉适,有些存在于文本中的重要信息,也可能被忽視癣漆。 因此维咸,Stage-2 GAN在Stage-1的基礎上進行構建。
作為Stage-1條件之一的隨機變量 z惠爽,可以確保Stage-1的生成結果具有多樣性癌蓖。在這樣的假設下,本文在Stage-2階段并不使用 z 作為條件婚肆,而是采用Stage-1的生成結果 s0 作為條件
- CA-2
- 與CA-1共享同一個text embedding—— ?t租副,?t 由同一個預訓練的編碼器生成
- Stage-1和Stage-2的CA會通過不同的全連接層,得到關于 ?t 的均值和方差不同
- 通過這種方式较性,Stage-2可以學習到被Stage-1所忽略的一些有用的信息用僧。
- Stage-2 Generator
- 將Stage-1返回的低分辨率圖片和圖片描述的CA-2采樣結果作為GAN的條件
- 利用殘差模塊(residual blocks)將Stage-2的生成器設計成一個“編碼-解碼網絡”(encoder-decoder network)
- 對c進行復制,使之形成形狀為 Mg×Mg×Ng 的張量
- 同時赞咙,將Stage-1的結果 s0 送到若干個“降維模塊”(downsampling block)中责循,直至其size變?yōu)?Mg×Mg 為止
- 然后將文本特征和圖片特征沿著channels連接到一起,并將其送到若干個“殘差模塊”中去攀操,目的是為了學習到圖片和文本交織在一起的多模態(tài)表征院仿。
- 最終,通過一系列的“升維模塊”(upsampling block)崔赌,也就是解碼器(decoder)意蛀,生成size為 W×H 的高分辨率圖片耸别。
- Stage-2 Discriminator
- 與Stage-1中的結構相似健芭,只不過由于接受的圖片size變大了,所以需要更多的“降維模塊”(downsampling block)
結果
inception的對比
inception score可以表現出類似于人的對“高質量圖片”的感知能力(但是它不能準確反應出生成的圖片和圖片描述信息之間的相關聯系)
上圖可以看到對于多個數據集秀姐,stackGAN都取得了state-of-art的成績
- GAN-INT-CLS是上面提到過的Generative adversarial text to image synthesis (分辨率64x64)
- GAWWN是上面提到過的Learning what and where to draw(分辨率128x128)
- 上圖中第一排是第一個階段產生的結果慈迈,可以看到生成了大致的顏色、背景、形狀的圖像
- 第二排是第二個階段產生的結果痒留,分辨率提高了谴麦,并且細節(jié)部分比如說頭、鳥喙等被完善了
AttnGAN (256 x 256)
Xu, Tao, Zhang, Pengchuan, Huang, Qiuyuan, Zhang, Han, Gan, Zhe, Huang, Xiaolei, and He, Xiaodong. Attngan: Fine-grained text to image generation with attentional generative adversarial networks. CoRR, abs/1711.10485, 2017.
會議:CVPR, 2018.
挑戰(zhàn)
- 大多數上述的工作都是把文字描述encode成一個全局的句子向量作為條件輸入GAN中來產生圖片
- 這樣會缺少很多單詞級別的信息伸头,例如說“藍色的小鳥匾效,它有著白色的大肚子、黃色的圓頭恤磷,他在和一個小朋友嬉戲”面哼,從全局的句子中想要獲取每個細節(jié)的信息難免有些困難
- 同時也一定程度的影響了高分辨率高質量的圖像的生成
模型的創(chuàng)新點
- AttnGAN是端到端的、注意力驅動的扫步、多階段精細化的魔策、用于細粒度文字到圖像生成的架構
- 相比stackGAN,它提供了端到端的訓練河胎、并且注意到了句子級別的細粒度的信息
- 在生成網絡中加入了注意力機制
- 在繪制圖像的不同區(qū)域時闯袒,會關注到和該子區(qū)域最相關的文本區(qū)域
- 使用了Deep Attentional Multimodal Similarity Model(DAMSM)
- 計算了生成的圖像和句子之間的相似度
- 可以作為loss直接訓練
- 讓GAN可以從圖像和文本匹配的角度和生成的圖片是否真實的角度來訓練生成器和判別器
網絡結構
Attentional Generative Network
- m個生成器
- 相比stackGAN,attnGAN的生成器更多了游岳,每層逐漸產生分辨率越來越大政敢、細節(jié)越來越豐富的圖片
- 輸入是上一次產生圖片的隱藏狀態(tài)(包含圖片的特征),第一個狀態(tài)由句子特征的條件增強和噪聲生成
- 輸出是生成的圖片
- 注意力機制
- 根據圖片的特征對單詞做加權吭历,得到對于生成圖片的每個子區(qū)域時(h的每一列)對單詞的注意情況
- 目標函數
- 生成器的loss:非條件loss希望生成更加真實的圖片堕仔,條件loss希望生成和文字符合的圖片
- 判別器的loss:非條件loss希望判別出生成的圖片和真實的圖片,條件loss希望判別出真實圖片和文字的符合以及生成圖片和文字的符合程度
DAMSM:檢查說明文本中的每個單詞是否在實際圖像中被適當地表示
-
兩個神經網絡將圖像和單詞映射到相同的語義空間中晌区,然后比較圖像和文字的相似度
- text encoder:雙向LSTM摩骨,結果的每一列代表一個單詞的語義向量
- image encoder:CNN,結果的每一列代表一個圖像子區(qū)域的語義向量朗若。使用標準的卷積神經網絡恼五,圖像被轉換成一組特征映射。 每個特征映射基本上是表示圖像的一些概念/子區(qū)域哭懈。
- 特征映射的維數與詞嵌入的維數相等灾馒,因此它們可以被視為等價的實體。
-
attention
- 根據說明文本中的每個單詞(token)遣总,將注意力應用于圖像子區(qū)域的特征映射上睬罗,用來計算它們的加權平均值。 這個注意力ci矢量實際是代表了圖像對單詞(token)的抽象旭斥。
- DAMSM被訓練以最小化上述注意力向量(詞的視覺描繪)和詞嵌套(詞的文本含義)之間的差異容达。
- 實際是試圖把文字的“綠色”部分盡可能地變成圖像中的“綠色”。
DAMSM被稱為“多模態(tài)”(multimodal)的原因是因為它定義了一個結合兩種理解模式(視覺和文本)的目標垂券。
結果
inception分數
可以看到在coco數據集上花盐,attnGAN的分數是之前的分數的三倍左右
- GAN-INT-CLS是上面提到過的Generative adversarial text to image synthesis (分辨率64x64)
- GAWWN是上面提到過的Learning what and where to draw(分辨率128x128)
- StackGAN是上文提到的Stackgan: Text to photo-realistic image synthesis with stacked generative adversarial networks(256x256)
- stackGAN-v2是StackGAN++: Realistic Image Synthesis with Stacked Generative Adversarial Networks
- PPGN是上文提到的Plug & play generative networks: Conditional iterative generation of images in latent space(227x227)
上圖可以看到Attn生成的兩個階段:
- h(1)最關注的單詞:鳥,這,有算芯,腹部柒昏,白色
- h(2)最關注的單詞:黑色,綠色熙揍,白色职祷,這個,鳥
- 這些單詞包含更多的描述信息
- 也注意到了更細節(jié)的部位
- 由h(2)的單詞届囚。 你可以從字面上看到x(2)是x(1)的更豐富多彩的版本堪旧。
缺點
- 上述基于GAN的像素級別的生成目前多focus在單個對象的生成
- 如果要根據文本,在圖像中生成有多個交互對象的復雜的場景奖亚,從像素級別來理解這種高層次的語義信息則會十分困難淳梦。
Seq2Seq
Text2Scene: Generating Abstract Scenes from Textual Descriptions (Abstract Scene)
會議:Arxiv preprint, 2018
目標
- 根據語言文本描述的場景生成抽象的圖像表示(這篇文章中可以理解成卡通圖片)
- 這個圖像表示中包括了多個對象的空間布局以及每個對象的屬性,包括姿勢昔字、表情等
挑戰(zhàn)
- 輸入的描述語言中可能間接的暗示了對象的某些屬性(局部屬性)
- 例如“Mike is surprised”應該改變mike的臉部表情
- 輸入文本可能會包含復雜的空間屬性的信息(空間屬性)
- 例如“Jenny is running towards Mike and the duck” 表示jenny跑的方向依賴于mike和duck的位置
- 輸入的文本可能會間接的暗示圖像中有一個對象或者一組對象(數量)
- 例如“some people” 暗示著圖像中應該有多個人
架構
TEXT2SCENE是一個數據驅動的基于Seq2Seq的端到端的模型爆袍,包括如下三個部分:
- text encoder
- image
- 把輸入的句子映射到嵌入向量的表示
- 結構:雙向GRU
- 場景表示:
- image
- 場景表示的網絡使用卷積GRU(ConvGRU)
- 根據當前場景卷積操作后的特征、和上一次生成場景的隱含狀態(tài)作郭,生成當前場景的隱含狀態(tài)
- object decoder
- 根據當前生成的圖像和輸入的信息預測下一個要生成的對象
- image
- 第一個式子表示:根據對當前畫布做加權陨囊,池化后,得到對當前場景的注意力向量
- 第二個式子表示:根據畫布的注意力結果和上一步預測的結果夹攒,來對輸入的文本做加權得到文本的注意力結果蜘醋。
- 第三個式子表示:根據畫布的注意力結果、文本的注意力結果得到這次預測的結果
- 其中因為畫布的表示只表示出了畫布中整體的信息咏尝,但是對于一些局部的压语、小的對象,畫布表示h不能很好的表示出來
- 所以增加了一項上一次預測的結果编检,來幫助這一次的預測
- attribute decoder
- 決定上一步預測的對象的屬性胎食,包括位置和其他細節(jié)屬性(比如說臉的朝向)
- image
- 第一個式子表示:根據上一次預測的對象,放大對應文本的上下文
- 第二個式子表示:根據放大后的上下文允懂,關注到畫布上對應的區(qū)域
- 第三個式子表示:根據放大的上下文以及相關的畫布厕怜,得到上一次預測的對象的相關屬性,包括位置和其他屬性(例如臉部朝向蕾总、大小等)
pipeline && 例子
-
pipeline
- 給定一個二維的畫布
- 關注當前的文字粥航,決定接下來要繪制的對象是什么
- 關注剛才決定繪制對象對應文字的上下文
- 關注上下文中提到的屬性,并一同加到繪制的對象身上
-
例子
- 從第二張圖開始生百,關注度最高的對象是sandbox递雀,關注的屬性也是sandbox,所以就畫了一個sandbox
- 第三張圖:關注的對象是mike置侍,關注的屬性是holding映之,所以產生了一個有拿著的姿勢的mike
- 第四張圖:關注的對象式jenny,關注的屬性式sitting蜡坊,所以產生了一個坐著的jenny
評估方法
- 自動評估
- 單個物品的precision/recall
- 邊界框有重合的兩個物品的precision/recall
- 姿勢和表情的分類精度
- 單個物品和多個物品的邊界框的寬高比和坐標的歐式距離
- 人工評估
- 描述下列文本的特征圖像是否捕捉到了杠输,包括三個答案:true false uncertain
- 文本中出現的一個對象
- 文本中出現的有語義關系的兩個對象
- 對象的位置
- 對象的臉部表情
- 描述下列文本的特征圖像是否捕捉到了杠输,包括三個答案:true false uncertain
結果
在上述評價指標中,基本上都取得了state-of-art的結果
數據集
-
戶外玩的剪貼畫形象和物品
- 包括1000個場景
- 58個剪貼畫
- 每個剪貼畫有3種尺寸秕衙、7中姿勢蠢甲、5個表情、兩個臉部朝向
-
句子
- 每個場景包括三個描述的句子
- 詞匯量是2538個英文單詞
總結
使用cGAN的方法
- 在像素級別產生圖像
- 優(yōu)點:更加靈活据忘,更加適合真實的場景鹦牛,可以生成更真實的紋理
- 缺點:很難建模復雜的場景,尤其是包括多個對象并且對象之間有交互的場景
Seq2Seq的方法(用在剪貼畫上)
- 使用語義元素來逐個生成勇吊,避免了像素級別的生成紋理信息等操作
- 把生成布局作為單獨的任務曼追,可以借鑒到生成真實場景圖像中
- 需要利用其他圖像出現的共同的pattern來生成當前的圖像
使用對話的方法
- 優(yōu)點:使得生成的任務更加沒有歧義,對話可以提供更具體汉规、更細節(jié)的描述
- 缺點:目前的工作只能用于及其的描述和繪畫礼殊,暫時不適用于人類的描述或者繪畫