鄧 博,賀春林,徐黎明,宋蘭玉
西華師范大學 計算機學院,四川 南充 637009
受益于深度學習的突飛猛進,圖像處理技術與計算機視覺應用在近年來取得了較大的進步。圖像合成是計算機視覺領域的重要研究主題,生成對抗網絡[1](generative adversarial networks,GAN)在圖像合成方面取得了重大成果,實現(xiàn)了通過無監(jiān)督或者有監(jiān)督的方式訓練生成網絡,合成高質量的圖像。生成對抗網絡將生成器合成的圖像與來自真實數(shù)據(jù)集里的圖像進行對抗,訓練算法生成與真實數(shù)據(jù)相差無幾的圖像。條件生成對抗網絡[2](conditional generative adversarial networks,cGAN)更進一步地引入條件信息來生成更高質量的指定圖像。
文字生成圖像(text to image,T2I),即通過技術手段生成能夠正確反映文字描述內容的圖像。Reed等[3]于2016年展開了第一個使用生成對抗網絡進行的T2I任務。以條件生成對抗網絡為基礎進行擴展,以輸入的描述文本為條件信息,在指定的數(shù)據(jù)集上生成了圖像。此后的T2I研究通過改進文本編碼,提出專門的損失函數(shù)與結構,以及開發(fā)新的定量評估指標來優(yōu)化T2I算法,不斷提出新的算法,使得生成圖像的質量和語義相關性都取得了巨大提升,能在更復雜的數(shù)據(jù)集上驗證有效性。至今生成對抗網絡是T2I任務最常用的方法。
本文回顧了T2I方法自提出以來的發(fā)展狀況,列舉了近年來的T2I算法。首先回顧了T2I最為核心的條件生成對抗網絡與文字編碼。以是否使用額外監(jiān)督信號為依據(jù)[4],將T2I劃分為能使用描述文字直接生成圖像的方法和使用額外監(jiān)督作為信號的方法并分別列舉,分析其具有的優(yōu)勢與存在的不足之處以及適用的場景。對T2I常用的數(shù)據(jù)集和評估指標進行說明,并討論了如今T2I存在的問題,展望今后的研究方向。
基于深度學習的文本生成圖像,可以追溯到使用長短時記憶網絡[5](LSTM)以迭代的方式進行手寫數(shù)字的生成?;贚STM,DRAW[6]方法將變分自編碼器[7](VAE)與空間注意機制相結合。align-DRAW[8]方法進一步將DRAW修改為使用基于自然語言的描述來合成具圖像,使用注意模型來計算輸入文字與迭代繪制的Patch之間的對齊方式。
生成對抗網絡由生成器和判別器組成。生成網絡以低維隨機噪聲作為輸入,通過卷積生成圖像。判別網絡接受來自真實數(shù)據(jù)集的圖像和生成圖像進行二分類,生成對抗的過程將產生對抗損失用于生成器和判別器更新。
條件生成對抗網絡[2]在生成器與判別器中增加了額外的條件信息,擴展了標準GAN的結構。條件信息可以包括標簽等其他模態(tài)的數(shù)據(jù),以此生成更具有指向性的圖像。在T2I任務中,生成對抗網絡通過編碼器對文字描述進行特征提取并輸入生成器,用生成器和判別器進行對抗訓練,生成符合描述的高質量圖像。
目前GAN是文字生成圖像最常用的方法,相較于VAE具有獨特的優(yōu)勢。首先GAN沒用引入決定性偏置(deterministic bias),生成的圖像會更加清晰;其次,GAN可以生成大量數(shù)據(jù)用于訓練,對于訓練數(shù)據(jù)的標簽依賴程度很低;同時GAN還具有強大的表達能力,可以在向量空間中執(zhí)行算數(shù)運算,將其轉換為對應特征看見內的運算。
損失函數(shù)是GAN訓練的重要部分,Wang等[9]對GAN的基本損失函數(shù)進行了詳細的概述和總結。Reed等[3]提出了一種對抗性損失來區(qū)分真假圖像-文本對,將具有隨機描述的真實圖像認定為假來鼓勵匹配。堆疊結構的T2I算法被提出以后,GAN的損失函數(shù)也由整體的對抗損失轉換為了由條件損失與非條件損失兩部分構成。隨著諸如注意力機制、循環(huán)一致性、雙塔結構和記憶網絡等多種方法被引入,新的損失函數(shù)也不斷被提出,用于不同的T2I任務。
在T2I任務中非常重要的一部分就是對原始文字進行編碼,從文本表示創(chuàng)建一個對條件變量有用的特征向量。Reed等[10]使用預訓練的Char-CNN-RNN模型獲得了文本描述的文字編碼;TAC-GAN[11]則使用了跳躍思維向量(skip-thought vectors)來從圖像標題中生成文字特征向量;Stack-GAN[12]使用條件增強(CA)來取代了預訓練的文字編碼器;Souza等提出的句子插值法(SI,2020)在訓練中提供連續(xù)平滑的向量空間;Attn GAN[14]使用了Bi-LSTM[14]來進行文字編碼,通過連接Bi-LSTM的隱藏狀態(tài)形成每個單詞的特征矩陣。每個單詞的特征向量進行連接組成句子的全局特征向量;近年提出來的算法多使用BERT[15](如Devlin等[16]):一種預訓練的語言表征模型。通過聯(lián)合調節(jié)所有層的左右上下文,生成文本的字詞的特征向量,將文本中各字詞融合全文語義信息,輸出向量表示。
本章介紹現(xiàn)有的T2I算法,將生成算法劃分為了直接生成算法和使用額外監(jiān)督的生成算法[4]。這兩種方法根據(jù)自身的特點與優(yōu)勢,適用于不同的場合。
直接生成算法不需要額外的監(jiān)督信號,對描述文字進行特征提取獲得文字向量結合噪聲輸入生成器直接合成圖像。
GAN-INT-CLS[3]是第一個將文本描述作為條件信息加入到圖像生成中的應用研究,圖1展示了GAN-CLS模型的基本結構,文字描述t通過文字編碼器進行特征提取產生文字向量φ(t),結合噪聲z作為生成器的輸入,也作為分類條件輸入判別器G。判別器G產生的文字-圖像匹配損失Lmatch取代了原始GAN的對抗損失。GAN-INT-CLS由匹配感知判別器(GAN-CLS)和用多形插值學習(GAN-INT)兩種方法構成。GAN-CLS用于判別圖像是否按照了文本要求進行生成。多形插值學習(GAN-INT)在訓練集標題的文本向量之間進行插值來生成大量額外的文本向量。這些插值的文本向量不需要對應于任何實際的人工書寫的文本,因此沒有額外的標簽成本。
圖1 GAN-INT-CLS結構Fig.1 Structure of GAN-INT-CLS
GAN-INT-CLS生成圖像分辨率為64×64,為了進一步提高分辨率,TAC-GAN[11]將AC-GAN[17]用于T2I任務,將類別標簽和文字描述向量作為條件信息輸入生成器,判別器不僅僅區(qū)分真實圖像與合成圖像,還給它們分配標簽。生成圖像分辨率提升到了128×128。
相較于多階段生成判別的算法而言,單階段生成對抗的算法的結構和訓練過程都更加簡易,可以更快速地得出結果,修改的難度也相對較低。但是在生成圖像的分辨率、精細度和對語義描述反應的準確性方面存在差距。表1列舉了部分直接生成的T2I算法。
表1 直接生成T2I算法Table 1 Direct T2I methods
堆疊結構以Stack GAN[12]為代表,相對于由單一生成器和判別器的網絡結構,Stack GAN將生成網絡與判別網絡由單階段劃分為兩階段,同時使用條件增強(CA)處理文字編碼,圖2展示了Stack GAN的基本結構,在第一階段,隨機噪聲與條件增強后的文字向量共同作為第一階段生成器G0的輸入,粗略描述64×64大小的低分辨率圖像。在第二階段,生成器G1接收上一階段的生成圖像不斷對圖像進行細化并提升分辨率,生成256×256的圖像。Stack++GAN[17]進一步將三組生成器和判別器以樹狀結構排列,如圖3。采用這一結構的GAN的損失函數(shù)也產生了相應的變化,由條件損失(對抗損失Ladv)和非條件損失(匹配損失Lmatch)兩部分組成。
圖2 Stack GAN結構Fig.2 Structure of Stack GAN
圖3 Stack++GAN結構Fig.3 Structure of Stack++GAN
采用堆疊結構,HDGAN[21]以學習從語義空間到圖像空間的特征圖為目標,用分層嵌套方法生成圖像,并使用對目標對抗損失來有效利用圖文信息;Perception GAN[24]在堆疊結構的初始圖像生成階段加入了感知理解,在判別器中加入良好的初始圖像來改進感知信息。同時引入了第三階段來改進細化過程;PPAN采用了類似的結構,由一個生成器和三個不同的判別器組成。采用金字塔框架[49-50],通過橫向連接自下而上的路徑,將低分辨率但語義強的特征與高分辨率而語義弱的特征結合起來。結合特征感知損失與輔助分類損失完成文字生成圖像。
多階段生成的堆疊結構提升了生成圖像的質量,不僅提高了分辨率,還能更加準確地反映文字描述所記載的細節(jié)特征,提高了圖像與文字間的語義一致性。但這一結構對于初始階段的生成圖像具有較高的依賴性,如果這一階段的生成結果不好,后續(xù)階段的細化會變得困難,進而影響最終的生成圖像質量。
注意力機制結合GAN的方法以AttnGAN為代表。通過關注描述中的相關詞,合成圖像不同子域的細節(jié)。如圖4所示,初始階段的噪聲與文字增強向量作為第一階段生成器的輸入,通過卷積產生初始圖像h0作為下一階段的初始信息,結合通過注意力模塊的詞向量w共同輸入生成器。DAMSM模型計算局部圖像與注意力模塊和詞特征w間的相似性損失(LDAMSM)以訓練生成器。
圖4 ATTN GAN結構Fig.4 Structure of ATTN GAN
結合注意力機制,MANIGAN[25]用以在語義層面對圖像的一部分進行編輯,使得圖像和給定的描述文本相匹配,同時能保留與文本無關的內容;MGD-GAN[26]利用human-part-based discriminator(HPD)和self-cross-attended(SCA)的全局判別器,實現(xiàn)用文字合成行人圖像的功能;DAE-GAN[27]通過外表感知的動態(tài)重描繪方法來細化圖像。對于文字描述中有關物體外表的信息加以利用(如:紅眼睛)生成的圖像;XMCGAN[28]通過最大化圖像和文本之間的信息輸出場景;Maheshwari等[29]提出了一種生成對抗網絡來為二元分詞生成顏色配置文件(color profiles)。將可見的屬性和對象組合成不可見的結果(如“紅色的”+“鳥”=“紅色的鳥”),實現(xiàn)以文搜圖的跨模態(tài)檢索。
采用注意力機制到T2I中明顯地提升了GAN生成圖像與描述文本的語義一致性。但在描述不同的圖像內容時,每一個詞的重要性并不一樣。但是在細化圖像的時候所使用的文字描述卻是相同的,這并不利于生成圖像與語義內容進一步提高關聯(lián)程度。
采用記憶網絡的DM-GAN[30]使用動態(tài)記憶模塊去提煉圖像,包括記憶寫入門、關鍵尋址、權值讀取與響應門幾個部分。DM-GAN用文字生成圖像過程是多階段的,第一階段的生成步驟與StackGAN相似。在第二階段,將上一階段的生成圖像和文字特征輸入前,使用記憶寫入門來計算一個單詞的重要性。關鍵尋址用于檢索相關記憶,值讀取則根據(jù)相似度概率對價值記憶的加權求和。響應門則用于控制動態(tài)的信息流,以及更新圖像特征,減輕了多階段生成對抗對于初始階段生成圖像的依賴。
采用雙塔結構的SD-GAN[31]根據(jù)兩個文本描述是否來自同一個真實圖像進行對比,產生的對比損失(圖5Lcontrast)用于計算兩個描述間的舉例,如果兩段文字描述的是同一幅圖像,它們的對比損失將會盡可能達到最小。
圖5 SD-GAN結構Fig.5 Structure of SD-GAN
同樣采用雙塔結構的SEGAN[32]是一種基于增強語義的算法。將圖像層次的語義一致性引入GAN的訓練中,對生成的圖像分級,以提高結構一致性,同時建立適應注意權重來增強算法的精確度和穩(wěn)定性。TIMAM方法[33]使用對抗損失學習模態(tài)不變的特征表示,來學習圖像和文本級別的區(qū)別特征表示。結合BERT模型來提取詞向量,用以文字圖像匹配域。
采用循環(huán)一致性的方法(Mirror GAN[34]、Chen[35]、Lao[36]等)將生成圖像還原成原始的描述文本,形成一個循環(huán),如圖6所示,MirrorGAN使用語句的文字-圖像-文字重描述方法進行T2I。隨機噪聲結合文字增強向量與注意力模塊詞向量,經過多階段生成與對抗,將文字轉換為圖像,再采用CNN[51]編碼器和LSTM對圖像進行還原,使得文字生成的圖像可以對原始文字進行鏡像還原,進一步提高了生成圖像與文字描述的語義一致性。
圖6 Mirror GAN結構Fig.6 Structure of Mirror GAN
基于循環(huán)一致性方法,CI-GAN[37]在StyleGAN[52]上將輸入噪聲映射到潛在空間中,生成潛在編碼獲取更多的語義。同時通過GAN生成圖像用反演的方式將生成圖像傳回潛在空間,獲取生成圖像的潛在編碼,在反演訓練中引入循環(huán)一致性損失,使兩個潛在編碼相同并遵循同樣的分布;Das等[38]提出的自監(jiān)督深度學習方法,結合GAN和基于最大平均差異(MMD)的生成網絡進行無監(jiān)督學習,實現(xiàn)文字和圖像的相互轉換。
將生成和判別劃分為多階段以提升生成圖像的分辨率與精細度。引入額外網絡(如注意力、記憶網絡等)確保生成圖像與描述文字的匹配程度,可以提高生成圖像的質量,同時網絡結構與訓練過程也會變得復雜,計算的時間花銷與難度都會增加。
應對上述問題,DF GAN[48]沒有引入額外網絡,而是用一組生成器和判別器,結合匹配感知的零中心梯度懲罰直接合成圖像。其中深度文本圖像融合塊能夠有效地利用文本描述的語義,并在生成過程中對文本和圖像特征進行深度融合;HF GAN[42]則對圖像不同層次的信息進行收集并進行特征融合,將生成圖像自適應融合在一起,使空間粗糙的低分辨率特征圖。采用了身份加法、加權加法和快捷連接作為融合方法包含并指示生成圖像的整體語義結構,指導細節(jié)的生成;TDA NET[46]通過提供的描述文本來填充圖像損壞的語義信息,通過雙多模注意機制對比得出圖與文的剩余部分,提取被損壞區(qū)域。同時采用了圖像-文本匹配損失法,使得生成圖像與文本語義相似性最大化;TA-GAN[39]可生成經過語義處理的圖像,根據(jù)輸入文字創(chuàng)造局部詞級判別器以分類屬性,使生成器只生成給定文本區(qū)域圖像,實現(xiàn)以輸入文字來修改圖像中物體的功能;TVBI GAN[45]針對自然圖像可能會模糊,難以從簡短的描述中提取出精準語義的問題,提出了利用視覺背后的語義特征來協(xié)助文本生成圖像的方法;FA GAN[47]結合了自監(jiān)督判別器和特征感知損失來更好地提取特征表示并合成圖像;Text-SeGAN[40]基于TAC-GAN但不進行分類預測。對于給定的圖像類別標簽生成正向與負向訓練實例,根據(jù)與類中正示例的語義距離進行負抽樣。使生成圖像具有更好的多樣性,不受模式崩潰的影響;TextStyleGAN[44]在StyleGAN[51]的基礎進行了擴展,將其用于T2I,不僅可以生成高分辨率的圖像,還可以進行語義操作。使用預訓練的圖像-文字匹配網絡獲得文字特征向量,進行拼接后組成句子向量,結合噪聲映射到中間的潛在空間。同時對文字和圖像特征進行注意引導。使用跨模態(tài)匹配損失和跨模態(tài)分類損失,結合判別器中的條件與非條件損失進行圖文匹配;ControlGAN[43]不僅可以生成圖像,還可以通過改變文字描述內容對圖像進行操作,例如修改圖像的類別、紋理、顏色等,同時不改變其他與之無關的部分。所采用的通道級注意力將語義中有意義的部分與文字描述中的單詞聯(lián)系起來。詞級注意空間使生成器能合成最相關單詞對應的圖像區(qū)域;Bridge-GAN[41]采用了一個中間網絡,將文字向量和噪聲映射到一個過渡空間中,并提出兩個新的損失。第一個損失計算中間潛在空間與輸入文字向量之間的交互信息,確保文字信息存在于過渡空間里。第二個損失計算生成圖像與輸入描述間的交互信息,提高語義一致性。
對于算法的選擇往往是根據(jù)實際的任務需求與應用場景來決定的。需要快速得出訓練結果以供后續(xù)研究對比或修改的場合,輕量級的T2I算法較為合適。而需要得出精細的生成圖像時,則采用結構較為復雜的算法。同時,各種不同的機制與網絡之間并不是完全隔絕和對立的,許多算法中都對多種機制和網絡的優(yōu)勢進行了結合并投入到T2I任務中。這也是近年T2I算法的發(fā)展趨勢之一。
表2列舉了部分使用額外監(jiān)督信號輔助生成圖像的T2I算法,使用額外監(jiān)督信號可以提升模型生成圖像的質量,同時在訓練期間,它們也需要更多額外的注釋。
表2 采用額外監(jiān)督信號的T2I算法Table 2 T2I methods with additional supervision
2.2.1 布局
GAWWN[53]可以通過給出位置與內容的文字說明,將隨機噪聲、文字說明和布局作為生成器的輸入來生成圖像。實現(xiàn)對生成圖像中的目標對象姿態(tài)與位置進行控制;Layout GAN[54]使用不同種類的二維元素的集合關系進行建模,生成器以一組隨機放置的2D圖形元素作為輸入,使用基于CNN[51]的判別器優(yōu)化生成布局。
Layout2Im[56]采用了粗糙空間布局(邊界框+對象類別)來生成圖像與布局關系;Attrlost GAN[58]實現(xiàn)了布局可重構,使用Attr-ISLA可以對單個對象的外觀進行控制。將對抗節(jié)點損失用于對象-屬性特征上,來鼓勵生成器合成反映輸入屬性的圖像。
Hinz等[55]通過向生成器和判別器中添加目標路徑,對目標位置和外觀進行建模,當對象路徑側重于在有意義的位置生成單個對象時,全局路徑生成符合整體圖像描述和布局的背景。基于這一原理提出的OP-GAN[57]在生成器和鑒別器的更高層添加額外的對象路徑,結合匹配和不匹配的邊框,以及圖像對使用額外的邊框匹配損失,輔助生成圖像;OC-GAN[59]提出了場景-圖相似度模塊(SGSM)用以學習場景中對象之間的空間關系的表示。提高了生成圖像的質量,還解決了布局中的”虛假對象”沒有邊框的問題,以及邊框重復導致圖像中對象合并的問題。
2.2.2 掩碼
由于多數(shù)方法并不專門為圖像中的對象及其關系建模,在生成復雜場景時會存在困難。OBJ GAN[61]用于以目標為中心的復雜場景文字生成圖像。將文本描述和預生成的語義分布,作為圖像生成器的輸入,為復雜場景進行以對象為中心的文本到圖像的合成;Leica GAN[62]有一個專門的學習步驟,文本圖像編碼器在這一階段學習語義、紋理和顏色有關的先驗知識,文本掩碼編碼器則學習形狀和布局,這些互補的先驗被聚合,并用于利用局部和全局特性來逐步創(chuàng)建圖像;AGAN-CL[65]用于自動生成真實圖像的位置和具體形狀,由Attentive GAN和上下文損失算法組成。上下文網絡用于生成圖像的輪廓,循環(huán)轉換自動編碼器將輪廓轉化為真實圖像,將輪廓注入生成網絡中以引導整個生成網絡集中于對象區(qū)域,上下文損失與周期一致性損失則連接多領域間的差距;Wang等[64]提出了一種利用語義布局來指導圖像合成的具有空間約束的端到端框架,利用語義布局和隱藏的視覺特征逐步生成和細化圖像。在每一個階段,生成器都會生成一個圖像和布局,并交由對應的判別器進行判定;Pavllo等[63]提出了一種利用稀疏的實例語義掩碼的弱監(jiān)督方法,從前景分解背景兩步生成過程來實現(xiàn)T2I并允許簡單地編輯生成圖像內容。
2.2.3 場景圖
Johnson等[66]用場景圖生成圖像,還原帶有多目標與關系的復雜語句。推理目標之間的關系。使用圖卷積處理圖,通過預測綁定標注框,分割掩碼來計算場景布局,將布局轉換圖像。Ashual等[67]對這一算法進行了擴展,使用掩碼將布局向量與圖像外觀分離,使用戶能夠更好地控制布局,并生成與輸入場景圖更匹配的圖像。外觀屬性既可以從預定義的圖像集中選擇,也可以從另一個圖像中復制。PASTE GAN[68]可以從場景圖與裁剪中生成圖像,操控物體的視覺外觀,生成空間關系。Vo等[69]提出一個端到端網絡,從給定的場景圖中生成圖像。這一網絡由兩個部分組成:視覺布局模塊和Stacking GAN。視覺布局模塊使用場景圖中所有的關系來預測邊框,分別使用個體關系來從初始邊框單位中預測輸出文本中所有的關系生成布局,每個實體都可以參與多個關系,因此所有關系單元都被統(tǒng)一,并使用卷積LSTM將其轉換為視覺關系布局。視覺關系布局反映了場景圖中的結構(對象和關系),每個實體對應于一個細化的邊界框。在Stacking GAN中使用視覺關系布局來渲染最終圖像。
2.2.4 對話
單獨的文字描述所包含的信息量并不足以生成具有多個互相作用的場景。ChatPainter[70]將對話信息用于T2I,使用對話數(shù)據(jù)集與COCO圖像進行匹配。
VQA-GAN[72]在AttnGAN-OP[54]的基礎上采用問答的方式來設置圖像生成器,將圖像生成器條件設置在局部相關文本上用問答(QA)編碼器輸出局部與全局的表示,并以此作為GAN的條件信息分階段生成圖像。同時采用VQA損失鼓勵QA對和生成的圖像之間的相關性。典型的VQA模型以圖像和問題為輸入,進行分類訓練使正確答案的概率最大化。因此VQA精度可以作為評估輸入QA對和生成圖像之間的一致性的度量指標;Frolov等[71]提出在不改變體系結構的情況下利用VQA數(shù)據(jù)。通過簡單地連接QA對并將它們作為額外的訓練樣本和外部VQA損失,在圖像質量和圖像-文本對齊指標上提高性能。
Jiang等[73]使用GAN在潛在空間中建模一個連續(xù)的語義場,實現(xiàn)對生成的圖像進行編輯。根據(jù)用戶輸入的請求和語義字段,算法將產生反饋,形成與用戶的對話效果,既提高了對于用戶需求的理解,也提升了用戶體驗。
2.2.5 多個文字描述
常見的數(shù)據(jù)集通常每幅圖像包含多個描述,因此輸入不止一段描述文字可以提供額外的信息來更好地描述整個場景。RIFE GAN[76]利用訓練數(shù)據(jù)集形成的先驗知識來豐富給定的描述,將特征合成圖像;Story GAN[75]可以通過故事生成連續(xù)圖像,以實現(xiàn)故事可視化,給定一個多語句的段落,通過深層的上下文編碼器以及故事和圖像級別的兩個判別器生成系列圖像并動態(tài)跟蹤故事流程;Cook GAN[77]通過烹飪模擬器子網絡,對食物圖像進行基于配料和烹飪方法之間相互作用的增量變化,不僅能根據(jù)食譜描述生成菜肴圖像,同時能讓菜肴外觀根據(jù)烹飪動作和配料而變化;Wadhawan等[78]通過增加描述數(shù)量,使用結構化的文本描述進行人臉圖像生成。
本章介紹常用于評估T2I算法的評價指標以及數(shù)據(jù)集。評估對于衡量和改進算法至關重要。明確一個良好的指標所需要的屬性,不僅可以在建立新的指標時作為參考,對以后的相關研究也能有所幫助。
文字生成圖像任務主要在三個數(shù)據(jù)集上進行驗證:CUB_200_2011[79]、Oxford 102 Flowers Dataset[80]和COCO[81]。對于一些用于專門任務的算法,需要使用特定領域的數(shù)據(jù)集,如CelebA[82]、Recipe1M等[83]。
Oxford 102 Flowers花卉數(shù)據(jù)集有102個類,每個類別包含40到258張圖像??偣? 189張圖像,其中訓練集7 034張,測試集為1 155張,每張圖像擁有10個描述信息;CUB是目前細粒度分類識別研究的基準圖像數(shù)據(jù)集。共有11 788張鳥類圖像,200類鳥類。其中訓練集有5 994張圖像,測試集有5 794張圖像,每張圖像均提供10個描述以及圖像類標記信息,如鳥的綁定標注框,關鍵部分信息及屬性;COCO是一個大型物體檢測,分割和字幕數(shù)據(jù)集,從復雜的日常場景中截取,圖像中的目標通過精確的分割進行位置的標定。標注有類別、位置信息,以及圖像的語義文本描述。有80個類別,33萬張圖像,其中20萬張有標注,每張圖像擁有5個描述。
3.2.1 Inception score(IS)
IS[84]用于衡量GAN網絡生成圖像的質量以及生成圖像的多樣性。判別器使用預訓練的Inception網絡[85]對生成圖像進行分類。計算其類別標簽分布P(y|x),y是標簽。如果生成的圖像有意義,這一分布會有較低的熵。為獲取更高質量的生成圖像,P(y|x)越大越好,熵則是越小越好。為綜合這兩個指標,需要使用KL散度衡量兩個分布之間的距離,式(1)中DKL為KL散度的計算公式。
3.2.2 Fréchet inception distance(FID)
FID[86]在T2I中用于計算真實數(shù)據(jù)分布和生成圖像的數(shù)據(jù)分布之間的距離,用均值協(xié)方差來計算兩個分布之間的距離。FID計算公式如下:
其中,tr為矩陣的跡,μ為均值,Σ是協(xié)方差,x為真實圖像,g為合成圖像。FID值越低代表兩個分布之間的距離越小。較低的FID值意味著生成圖像質量較高。
3.2.3 Sliced Wasserstein distance(SWD)
Wasserstein距離[87]用于計算兩個概率分布之間的距離。Rabin等[88]認為將Wasserstein距離用于圖像處理十分困難,所以用Sliced Wasserstein距離(SWD)來代替這一度量,在生成圖像和真實圖像的拉普拉斯金字塔表示中提取的局部塊上,計算多尺度統(tǒng)計相似性。通過線性映射得到高維概率分布的一維表示,計算兩個概率分布的Wasserstein距離。
3.2.4 GAN-test,GAN-train
在GAN-test與GAN-train中[89]沒有設計給出可量化的評價指標,而是計算幾個指標并進行對比分析,從而評價GAN的性能。生成圖像不僅應該寫實,還應該可以識別它來自哪一個類別。設訓練集樣本St,驗證集為Sv,生成的樣本集為Sg:(1)在St上訓練分類器,在Sv上計算分類器的準確率,記為GAN-base;(2)在Sg上訓練分類器,在Sv上計算分類器的準確率,記為GANtrain;(3)在St上訓練分類器,在Sg上計算分類器的準確率,記為GAN-test。
如果一個cGAN已經達到了最優(yōu),可以完美捕獲目標分布,它生成的圖像集Sg就應該與訓練集St有相同的大小。在兩個集合上訓練的分類器所產生的驗證精度也應該是大致相同的。
3.3.1 R-precision
R-precision[14]用于度量文本描述和生成的圖像之間的視覺與語義間的相似性。使用DAMSM對生成圖像與文本進行全局特征向量提取,并計算余弦相似度,再對每一幅圖像依照相似度進行降序排序。R-precision通過對提取的圖像和文本特征之間的檢索結果進行排序。
3.3.2 Visual-semantic similarity(VS)
VS[21]是一個視覺-語義向量模型,用以計算合成圖像和輸入文本之間的距離。設x是生成圖像特征向量,y是文本特征向量,二者距離可計算為C(x,y)。VS越高,圖像與文本語義一致性越好。
3.3.3 語義對象精度(SOA)
SOA[57]使用預先訓練過的目標檢測器來評估生成的圖像是否包含圖像標題中提到的對象。使用YOLO網絡進行識別,YOLO網絡的輸出結果為SOA-C:一個類別均值,如平均檢測到給定目標的多少張圖像。SOA-I意為圖像均值,平均檢測到期望目標的多少張圖像。
其中,目標類c∈C和圖像iC∈IC為包含類c的目標。監(jiān)測到C類目標YOLO(iC)取值為1,否則為0。
還有一些指標被用于測量生成的圖像和文本的相關性。如BLEU[90]、METEOR[91]和CIDEr[92]等。在T2I中,它們被用于驗證算法是否產生反映文字描述含義的圖像。
使用自動指標結合人工評估,可以保證T2I算法評估的結果準確。將一組隨機的描述文字用于T2I算法中進行圖像生成,獲得生成圖像與對應的文字描述,以人工的方式進行排名,或者選擇最好的生成結果。人工評估的意義之一在于獲取與人工評判相關的自動指標,使排名更加準確有意義。
目前人工評估沒有統(tǒng)一的標準,因此結果難以直接對比。例如Hong等[60]根據(jù)文本的相關性對圖像排序;Hinz等[57]選擇了最符合文字描述的圖像。此外并不是所有的指標都適合用于人工排序,如FID、SOA的人工排序與匹配程度相對于IS、R-prec和CIDEr更準確。
本章從幾個方面討論當前T2I算法以及評估指標方面存在的一些問題,歸納目前的研究現(xiàn)狀并對今后的研究方向進行概述。
自2016年Reeds等將GAN用于T2I任務以來,如今的T2I算法從單階段到多階段生成對抗,綜合運用多種損失函數(shù)與網絡結構(注意力、循環(huán)一致性、動態(tài)記憶網絡、雙塔結構等),不論是圖像分辨率與精細度還是圖像對描述文字的匹配程度都取得了巨大的進步,可以生成花卉、鳥類、人臉等內容的高質量圖像。雖然在COCO等更具挑戰(zhàn)性的數(shù)據(jù)集上也有了很大的改進,但所產生的圖像(特別是單個對象)缺乏細粒度的細節(jié)和清晰度。目前的T2I方法已經適應了非條件圖像生成模型,研究更好的條件圖像生成的適應性可能比為T2I設計特殊架構更有效。
文字描述中所使用的語法、詞匯的位置、數(shù)值等信息都會對生成結果造成影響。自AttnGAN提出以來許多算法都使用經預訓練的文本編碼器來獲取文字特征向量。至于向量如何具體影響算法的性能則缺乏研究。雖然有Pavllo等[63]使用基于transformer的編碼器獲 取詞 向 量,Rombach等[93]使用invertible network在BERT與BigGAN[94]間轉換來處理T2I。但相關研究進展始終較為緩慢。
目前的T2I算法以GAN為核心,在取得了許多的成果同時,也存在部分暫未解決的問題。如GAN訓練過程是漫長且不可控的,有時會產生模式崩潰。雖然關于解決模式崩潰的研究目前已初見成效(Mao[95]、Cha[96]等),但將GAN與其他算法目前已有的成果相結合(VAE、對稱蒸餾網絡[97-98]、自回歸模型[99]、Transformer[100]等),提出新的損失函數(shù)[101],可能會有所突破。
雖然現(xiàn)在的數(shù)據(jù)集常會為一張圖像提供多個文字描述,但是這些描述的語義卻是相似的。由于少數(shù)的句子往往難以描述出復雜的場景,這些描述時常不能提供足夠的信息。目前的算法很難直接生成具有多個互相作用的目標場景。因為信息量不足和缺乏對場景和目標的理解,算法不能通過生成完整場景對目標進行建模。雖然已有相關研究(Hong[60]、Li[54]、Pavllo[63]等)提出了不同的方法,分別使用布局、掩碼、分層的方法來生成復雜場景,但仍需要在這一方向投入研究以取得突破進展。
大型高質量的數(shù)據(jù)集是深度學習方法成功的基礎。如今的T2I方法逐漸不用Flowers數(shù)據(jù)集進行評估了,F(xiàn)lowers與CUB數(shù)據(jù)集有較高的相似之處,都只包含單一的目標對象。而CUB包含的種類達到200個,遠多于Flower的102個類。換言之,在單目標對象數(shù)據(jù)集上評估T2I算法使用CUB數(shù)據(jù)集得出的結果就足夠具有代表性了。而對于諸如生成人類面部圖像的需求,則可以使用CelebA等專門的數(shù)據(jù)集。對于單目標生成任務,現(xiàn)在許多方法都能生成高分辨率的圖像。今后對于T2I算法評估的重點應該放在生成圖像與描述文字的一致性上。
可用于描述多目標的復雜場景的數(shù)據(jù)集通常存在著同樣的問題:分辨率較低。目前的T2I算法依然很難訓練合成復雜場景下具有多個物體互相作用的圖像。對此,將T2I算法的各個模塊進行等比例放大(Stap[44]、Zhang[21]等),雖然提高了生成圖像的分辨率,但也大大提高了對于硬件的要求,同時需要更多的時間進行訓練。在試著提高生成圖像的分辨率時,也應該考慮生成圖像是否保持了它的真實性?;趫D像局部一致性的想法[75],可以嘗試為圖像的某一部分區(qū)域添加文字描述。如Visual Genome[102]數(shù)據(jù)集包含了對單個圖像區(qū)域的描述。
文字生成圖像依賴于圖像描述會存在單向注釋問題,即數(shù)據(jù)集會為一張圖像匹配多個描述文本,這可能會讓同一個描述文本匹配到了多張不同的圖像。Parekh等[103]擴展了COCO數(shù)據(jù)集的注釋,并為存在的“圖像-文本”配對。新的配對與描述文本之間提供連續(xù)的VS評分。
如今T2I常用的數(shù)據(jù)集多使用英語描述。為增加其適用性,對于描述文字的多語言研究是必不可少的。嘗試其他語言的文字描述并分析其描述方式是否存在差異是有利于文字生成圖像方法的泛化的,一個T2I算法應該不必重新訓練就可用于多種語言。
對于T2I算法的評估并非輕易,基于目前的技術與知識,用FID來評估生成圖像的視覺質量,計算其與真實數(shù)據(jù)分布的舉例是相對可靠的。使用SOA結合人工方式來評估生成圖像與文字描述的圖文一致性是相對可靠的。
IS與FID等目前常用的指標都有各自的缺陷存在,使用IS和FID對不同的算法進行評估是不公平的,尤其是對于非GAN算法,在評估過程中往往會被懲罰[104]。今后的評估策略應該盡量做到與算法類型無關。
目前一些算法已經達到了COCO真實圖像給出的IS、R-prec和CIDEr的上限(如表3所示)。這種情況下生成圖像不夠真實,則表明了這些指標并不可靠。IS是可能飽和甚至過擬合的,將batch size放大可以優(yōu)化這一指標[61],可以飽和甚至過擬合。而對于R-prec,如果訓練和評估算法時使用了相同的文字編碼器,這一算法在訓練期間就已經達到了過擬合狀態(tài)[4]。用不同的模型在Conceptual captions[105]上進行訓練,F(xiàn)ID、SOA、VS都低于真實圖像。
表3 部分算法在COCO上的IS、R-prec和CIDErTable 3 IS,R-prec and CIDEr on COCO
Borji等[106]提出了一個完整的列表,在評估T2I算法生成的圖像時,會偏好具有這些特征的算法:(1)具有較好的保真度和多樣性;(2)解糾纏表示;(3)帶有標注好的綁定邊框;(4)與人工評估結果高度一致;(5)具有較低的采樣次數(shù)和計算復雜度。因此,好的T2I評估,應該從以下幾個方面進行:(1)圖像的質量與多樣性;(2)圖像對文字描述內容是否完整反映;(3)對描述中數(shù)值與位置等細節(jié)信息是否精確反映;(4)生成圖像符合是否人類常識;(5)生成圖像是否穩(wěn)定,如果對文字描述內容進行部分替換,生成圖像所變化的部分也應該與文字變化相對應;(6)是否具有較好的可解釋性,如果生成圖像不能較好地反映描述內容,能找到是哪一部分導致了問題出現(xiàn);(7)評估的過程應該是自動的,不存在必須要手動操作的環(huán)節(jié)。
IS和FID都使用了在ImageNet[107]上預先訓練的Inception網絡,在生成有多個對象的復雜場景圖像(如COCO)時會出現(xiàn)問題。因此新的指標逐漸被提出和投入使用。例如當文字描述里有與位置相關的信息,則可以使用Scene FID[58]來評估裁剪的目標對象;運用LPIPS[108]評估兩組來自相同的文字描述生成的圖像之間的多樣性。
建立新的T2I評估指標是一件困難的事情,因為對于生成圖像與文字描述的語義是否對齊這一概念是沒有準確定義的,也很難制定出統(tǒng)一的標準。新指標的提出有利于對T2I算法進行更精確的評估,對進一步研究如何簡化評估過程,提高評估效率也有所幫助。
相同的算法常會在不同文獻實驗中產生不同的結果(表4中*為目標算法,在不同的文獻實驗中得出了不同分值)。因為實驗和評估的標準沒有統(tǒng)一,評估的結果會依據(jù)圖像分辨率和數(shù)量等參數(shù)發(fā)生變化。
表4 相同的算法在不同的實驗中結果不同Table 4 Different result on same model
雖然人工評估方式需要耗費大量的時間與精力,具體條件也有可能發(fā)生較大變化。但是想要得出可靠的評估結果,自動化評估指標與人工評估方式的結合是必不可少的。但人工評估目前缺乏統(tǒng)一的標準,流程標準化的提出會是很重要的任務(如HYPE[111])。
不論是采用何種方式進行評估,對于所獲得的結果都應該準確描述數(shù)據(jù)來源。并且要注明是來源于參考文獻還是其改進實驗。對于人工評估則也該詳細描述流程,如采樣數(shù)量,使用的模型與具體說明等。
在應用層面,T2I往往是由實際需求驅動的,許多行業(yè)(如計算機輔助設計、圖像編輯)都需要對圖像進行精確控制,這也是今后的研究方向之一。對于圖像進行局部編輯,在修改要求的內容同時,還需要保留不相關的內容。近年來有不少的成果以多種方式完成了這一功能(Mani GAN[25]、Pavllo等[63]、Jiang等[73]、TA-GAN[39]、ControlGAN[43])。在圖像處理領域也有許多研究涉及通過文字描述進行圖像處理(TDA NET[46]、Dong等[112]、Liu等[113]、Zhu等[114])。
編輯語義特征圖和標簽對于使用者而言更加靈活。文字描述可以傳達較多的內容,今后的T2I算法可以不局限于單一描述,而是從多個不同的描述中提取信息構成整體圖像。此外,語音生成圖像(S2I)或文字生成視頻(Wang等[115]、Balaji等[116]、Deng等[117]、Choi等[118]、Jia等[119]、Suris等[120])和T2I算法的原理具有相似之處。將T2I算法的文字編碼器替換為語音編碼器可以實現(xiàn)S2I(如Balaji等[116]、Li等[121])。使用文字生成視頻也具有較大的研究價值。但是不論使用語音還是文字,生成的視頻每一幀都是連續(xù)的,對于算法的評估具有一定難度。
概述了近年來提出的T2I算法與評估方式,并對存在的問題進行了探討。在列舉T2I算法時依照使用額外監(jiān)督信號與否進行了劃分。直接生成的T2I算法不需要額外的監(jiān)督信號,可以直接合成圖像。包括從單階段生成對抗的傳統(tǒng)算法到以堆疊結構為代表的多階段生成對抗算法,以及引入了注意力機制、循環(huán)一致性結構和雙塔結構的算法。使用額外的監(jiān)督信號的算法在提升性能的同時需要更多注釋,包括布局、掩碼、對話、場景圖等。對于算法的評估則列舉了常用數(shù)據(jù)集與評估指標,隨后分別從算法、數(shù)據(jù)、評估和應用幾個方面展開了討論。最后列舉了實際應用中目前的研究成果,采用文字描述對圖像進行編輯和修改,以及使用語音描述生成圖像已有研究部分成果,嘗試使用語音或文字描述生成視頻將是今后的研究方向。