張皓 周鳳
(貴州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 貴陽(yáng) 550000)
人臉圖像生成是計(jì)算機(jī)圖形學(xué)與計(jì)算機(jī)視覺領(lǐng)域中的一個(gè)重要問題。人臉圖像生成在電影特效,平面設(shè)計(jì),計(jì)算機(jī)藝術(shù)等多個(gè)領(lǐng)域有豐富的應(yīng)用。自2014年生成對(duì)抗網(wǎng)絡(luò)(GAN)由Goodfellow等[1]提出后,基于該網(wǎng)絡(luò)的模型就成為了人臉圖像生成研究的熱門方向。人臉圖像的生成分通常為兩種途徑[2]:一種是無條件輸入的生成,即生成對(duì)抗網(wǎng)絡(luò)通過無監(jiān)督的方式學(xué)習(xí)從低維潛在空間向高維圖像的映射,由于使用者無法得知低維潛在空間與高維圖像之間的具體映射關(guān)系模型只能隨機(jī)的生成圖像。例如將一個(gè)128維的高斯分布輸入模型輸出一張人臉圖片。而另一種則是有條件輸入的生成,通常是給定一個(gè)或多個(gè)條件,引導(dǎo)模型生成滿足給定條件的人臉圖片。例如輸入一張側(cè)臉的圖片經(jīng)過模型輸出一張正臉的圖片[3]。實(shí)現(xiàn)多屬性人臉圖像生成需要依靠第二類模型。
關(guān)于第二類模型,最早的研究是Mirza等[4]提出的CGAN,CGAN將標(biāo)簽信息作為輸入放入生成與判別網(wǎng)絡(luò),以引導(dǎo)網(wǎng)絡(luò)生成符合條件的數(shù)字圖片。Xi Chen等[5]提出InfoGAN通過將帶有先驗(yàn)分布的向量c輸入網(wǎng)絡(luò),使網(wǎng)絡(luò)自動(dòng)的將生成的數(shù)字圖片的傾斜度,粗細(xì)等特征與c相關(guān)聯(lián),以賦予模型控制數(shù)字圖片傾斜度,粗細(xì)等屬性的能力。ZHANG等[6]提 出StackGAN,該 網(wǎng) 絡(luò) 嘗 試 解 決CGAN無法生成高分辨率圖片的問題,其核心思想就是搭建兩個(gè)生成網(wǎng)絡(luò),第一個(gè)網(wǎng)絡(luò)結(jié)構(gòu)與CGAN類似,生成指定條件的低分辨率圖片,然后把第一個(gè)網(wǎng)絡(luò)的結(jié)果放入第二個(gè)網(wǎng)絡(luò)中,以生成高分辨率的圖片。鮑建敏[7]提出CVAE-GAN,通過將條件變分自編碼器與生成對(duì)抗網(wǎng)絡(luò)相結(jié)合,相比原版CGAN能生成多樣性更高的圖片。L Wan[8]提出FM-GAN,該模型設(shè)置兩個(gè)共享參數(shù)的判別網(wǎng)絡(luò),可以以性別,種族,年齡為條件生成不同屬性的人臉。
傳統(tǒng)的第二類模型存在兩個(gè)不足:一個(gè)是控制生成人臉圖片的屬性時(shí),不能有效地保持圖片特征,圖片中其他不相關(guān)的特征也會(huì)被改變。造成這一不足的原因通常是由于模型沒有正確的學(xué)習(xí)到人臉的某一屬性與人臉圖片上的具體特征的關(guān)系。另一個(gè)則是此類模型在多屬性生成任務(wù)上性能不佳。造成這一不足的原因是現(xiàn)有的模型對(duì)數(shù)據(jù)集應(yīng)用的靈活度不高,模型使用者無法針對(duì)性的調(diào)整數(shù)據(jù)集分布,導(dǎo)致樣本屬性不均衡顯著地降低多屬性圖片能力。
針對(duì)以上兩點(diǎn)不足,論文提出了基于特征保持的條件生成對(duì)抗網(wǎng)絡(luò),針對(duì)第一類問題提出基于類激活映射的損失懲罰項(xiàng),以保證改變圖片屬性時(shí),與屬性無關(guān)的信息不被改變。針對(duì)第二類問題提出了通過改變潛在空間表示來控制圖片屬性的方法,使模型能更靈活地使用標(biāo)記數(shù)據(jù)。
論文提出的框架包括四個(gè)部分,見圖1:生成網(wǎng)絡(luò)G,判別網(wǎng)絡(luò)D,編碼網(wǎng)絡(luò)E,分類網(wǎng)絡(luò)C。
圖1 網(wǎng)絡(luò)框架示意圖
生成網(wǎng)絡(luò)G接受輸入潛在空間表達(dá)z并得到輸出人臉圖片x'=G(z),它學(xué)習(xí)從潛在空間z向真實(shí)圖像x的映射。判別網(wǎng)絡(luò)D對(duì)輸入的真實(shí)圖片x和生成圖片x'進(jìn)行二分類。生成網(wǎng)絡(luò)與判別網(wǎng)絡(luò)的性能決定了生成圖片的質(zhì)量,論文的生成網(wǎng)絡(luò)與判別網(wǎng)絡(luò)將使用類似PGGAN[9]的從低分辨率到高分辨率逐級(jí)訓(xùn)練方法,這種訓(xùn)練方法在生成高分辨率圖片上性能優(yōu)秀。編碼網(wǎng)絡(luò)E是將潛在空間表達(dá)z和標(biāo)簽y輸入后得到z到z'的度量δ,其中z'是可以生成包含標(biāo)簽y的圖片的潛在空間表達(dá),即z'=G(-1)(C(-1)(y)),通過將δ與z疊加,再輸入生成網(wǎng)絡(luò)G即可以生成包含標(biāo)簽y特征的圖片。分類網(wǎng)絡(luò)C是將輸入的真實(shí)圖片x或生成圖片x'進(jìn)行分類,同時(shí),抽出分類網(wǎng)絡(luò)中間層的梯度通過計(jì)算獲得圖片的類激活映射(Class Activation Map)[10],用來針對(duì)性地約束生成圖片x'的特征。
在早期的生成對(duì)抗網(wǎng)絡(luò)的研究中,很難生成高分辨率的圖片,且圖片真實(shí)度不高。PGGAN提出從低分辨率到高分辨率逐級(jí)提升分辨率的訓(xùn)練方法,生成的圖片分辨率達(dá)到了1024×1024。如果不采用逐級(jí)訓(xùn)練的方法來訓(xùn)練生成如此高分辨率圖片的生成對(duì)抗網(wǎng)絡(luò),成功率不高,且訓(xùn)練速度非常緩慢,原因是高分辨率下的真實(shí)圖片的分布非常復(fù)雜。
具體的訓(xùn)練過程見圖2,模型的訓(xùn)練開始于4×4像素的低分辨率的生成網(wǎng)絡(luò)與判別網(wǎng)絡(luò)。隨著訓(xùn)練的持續(xù)進(jìn)行,將逐漸向生成網(wǎng)絡(luò)與判別網(wǎng)絡(luò)中增加卷積層,進(jìn)而增加生成圖片的分辨率。
圖2 漸進(jìn)式訓(xùn)練生成對(duì)抗網(wǎng)絡(luò)
同時(shí),因?yàn)榫W(wǎng)絡(luò)層數(shù)的突然變化會(huì)造成模型的不穩(wěn)定,這會(huì)影響模型訓(xùn)練效率,乃至使模型崩潰。所以卷積層的增加時(shí),需要保持平滑的過程。
如圖3所示,以從4×4分辨率轉(zhuǎn)換到8×8分辨率的過程為例。在(b)過程中,將高分辨率的層視為一個(gè)殘差塊,將低分辨率部分的輸出視為殘差,將殘差塊的輸出與殘差疊加。使用權(quán)重α來平滑這個(gè)過程。當(dāng)α=0時(shí),相當(dāng)于過程(a),也就是高分辨率層未添加前;當(dāng)α=1時(shí),相當(dāng)于過程(c),也就是高分辨率層已經(jīng)完全添加。權(quán)重α從0到1逐漸增長(zhǎng),使訓(xùn)練過程保持穩(wěn)定。
圖3 網(wǎng)絡(luò)層數(shù)增加時(shí)的平滑過程
在生成網(wǎng)絡(luò)與判別網(wǎng)絡(luò)訓(xùn)練完成后,模型已經(jīng)可以生成高質(zhì)量的人臉圖像,但還不具備控制生成圖片屬性的能力。論文提出通過改變潛在空間表示來控制人臉圖片屬性的方法。
傳統(tǒng)的條件生成對(duì)抗網(wǎng)絡(luò),其控制生成樣本屬性的方法,是在生成網(wǎng)絡(luò)與判別網(wǎng)絡(luò)學(xué)習(xí)真實(shí)人臉圖片分布時(shí),同時(shí)學(xué)習(xí)標(biāo)簽c與人臉圖片中特征的映射關(guān)系來實(shí)現(xiàn)的。但這種結(jié)構(gòu)對(duì)數(shù)據(jù)集的使用不靈活,在多屬性人臉生成任務(wù)上,會(huì)因?yàn)橛?xùn)練樣本分類屬性不平衡,導(dǎo)致不能正確地學(xué)習(xí)到圖像特征與標(biāo)簽的映射關(guān)系。舉例來說,Celeba數(shù)據(jù)集中,性別這個(gè)屬性的正例與負(fù)例的數(shù)量比例接近1∶1,是均衡的,通常模型可以較好地學(xué)習(xí)到正例和負(fù)例的區(qū)別。但是否帶眼鏡這個(gè)屬性,正例和負(fù)例的數(shù)量比例約1∶6,屬于不均衡數(shù)據(jù)。在這種情況下,模型經(jīng)常會(huì)簡(jiǎn)單地判斷所有圖像都是負(fù)例,因?yàn)榧词顾袌D片都判負(fù)例,模型也有86%的正確率。只有對(duì)數(shù)據(jù)集進(jìn)行處理之后,如刪掉大部分負(fù)例使數(shù)據(jù)比例平衡,模型才能正確地學(xué)習(xí)到圖像特征與標(biāo)簽的映射關(guān)系的。但是另一方面,生成對(duì)抗網(wǎng)絡(luò)需要通過學(xué)習(xí)大量的無標(biāo)記數(shù)據(jù)來保證生成樣本的多樣性。這就使得要生成多屬性的人臉圖像變得困難,尤其是包含一些數(shù)據(jù)屬性不平衡的標(biāo)簽時(shí)。
針對(duì)這一難點(diǎn),論文采用將生成高質(zhì)量的人臉圖片,與控制人臉圖片特征的任務(wù)分離出來。
圖4展示了在兩張生成圖片所對(duì)應(yīng)的潛在空間表示z,z'之間進(jìn)行插值的過程。使用權(quán)重α控制插值的強(qiáng)度??煽闯錾傻娜四槇D片隨著α的連續(xù)變化,在兩張圖片間連續(xù)變化。這表明從潛在空間z到圖片x=G(z)的映射具有連續(xù)性。
圖4 在兩張圖片的潛在空間表示間插值
而圖5所做的工作是將一張生成圖片x=G(z)的潛在空間表示z疊加一個(gè)相同維度的高斯分布的噪聲δ,再將新的潛在空間表示z'輸入到生成網(wǎng)絡(luò)G中,實(shí)驗(yàn)結(jié)果顯示,生成的圖片G(z')仍然服從人臉圖片的分布,并且在保持人臉的關(guān)鍵屬性(如五官的尺寸和位置)的情況下,帶來了一下細(xì)節(jié)上的變化,如膚色,發(fā)量,發(fā)色,性征等。這個(gè)實(shí)驗(yàn)證明了z到G(z)的映射在各方向都是稠密的。
圖5 向圖片的潛在空間表示疊加隨機(jī)噪聲
Andrew Brock等[11]的研究與Mario Lucic等[12]的研究也表明,成功訓(xùn)練的生成網(wǎng)絡(luò)生成的樣本在分布上接近于訓(xùn)練集真實(shí)樣本的分布,從數(shù)學(xué)意義上構(gòu)成一個(gè)連續(xù)稠密的流形。
基于前面兩個(gè)實(shí)驗(yàn)結(jié)果,論文提出通過改變潛在空間表示來控制人臉圖片屬性的方法。其思想是將控制圖片屬性的能力從生成網(wǎng)絡(luò)中抽出,生成網(wǎng)絡(luò)與判別網(wǎng)絡(luò)專注提升生成圖片的真實(shí)度,而通過增加編碼網(wǎng)絡(luò)E和分類網(wǎng)絡(luò)C,就能通過影響潛在空間來控制生成樣本的屬性。
編碼網(wǎng)絡(luò)E的訓(xùn)練過程如圖6所示。將一個(gè)潛在空間表達(dá)z和標(biāo)簽y輸入到編碼網(wǎng)絡(luò)E,輸出一個(gè)向量δ,δ是z到z'的度量,其中z'是可以生成包含標(biāo)簽y的圖片的潛在空間表達(dá)。通過將δ與z疊加得到z',將z'輸入生成網(wǎng)絡(luò)G,再將G輸出的圖片x'輸入分類網(wǎng)絡(luò)C,得到標(biāo)簽y'。最后將y'與y輸入損失函數(shù),將損失的梯度由反向傳播傳回E,以更新E的權(quán)重。
圖6 編碼網(wǎng)絡(luò)E的訓(xùn)練過程
編碼網(wǎng)絡(luò)損失函數(shù)的數(shù)學(xué)表達(dá)如下:
經(jīng)過前文訓(xùn)練的模型具備了依照輸入的標(biāo)簽y生成符合人臉圖片的能力。但經(jīng)過模型生成的圖片x'=G(z'),與原始的x=G(z)差異過大,失去了原有的特征。如圖7。
圖7 未進(jìn)行特征保持生成的圖片
圖7左邊為由兩個(gè)潛在空間表示z輸入G中隨機(jī)生成的圖片x,右邊為編碼網(wǎng)絡(luò)輸出的向量δ與z疊加后的z'輸入G中生成的包含標(biāo)簽“戴眼鏡”的圖片x'。雖然x'確實(shí)包含了戴眼鏡的屬性,但是與原圖x相比,與戴眼鏡不相關(guān)的屬性也被改變了。
而理想的效果應(yīng)該是與標(biāo)簽相關(guān)的特征被改變,而無關(guān)的特征則保持不變。論文通過為編碼網(wǎng)絡(luò)的損失增加一個(gè)懲罰項(xiàng)P來實(shí)現(xiàn):
而帶懲罰項(xiàng)的編碼網(wǎng)絡(luò)損失函數(shù)如下:
類激活映射的示意圖見圖8。通過一個(gè)判斷是否帶眼鏡的分類網(wǎng)絡(luò)從中間層抽出激活值,經(jīng)過類激活映射計(jì)算得到了類激活映射圖,在類激活映射圖中,其中的元素值的大小與輸入圖片各像素對(duì)分類網(wǎng)絡(luò)的激活程度相對(duì)應(yīng),激活程度越高,則元素值越高,在激活映射圖中的色調(diào)越暖,激活程度越低,則元素值越低,在激活映射圖中的色調(diào)越冷??梢钥闯鲈谶@張人臉圖片對(duì)應(yīng)的類激活映射圖中眼鏡部分激活程度高,色調(diào)偏暖,而其他部分則激活程度低,色調(diào)偏冷。類激活映射圖能夠有效的求出圖片中與標(biāo)簽c對(duì)應(yīng)的屬性的位置。
圖8 類激活映射示意圖
論文中模型在ffhq,CelebA上數(shù)據(jù)集上進(jìn)行了驗(yàn)證。
CelebA數(shù)據(jù)集是由香港中文大學(xué)[13]制作的人臉圖片數(shù)據(jù)集,包含21萬張人臉圖片,圖片為178*218像素的RGB圖片。CelebA擁有豐富的標(biāo)記,包括圖片中人臉的40種特征,以及人臉關(guān)鍵點(diǎn)坐標(biāo)。在本實(shí)驗(yàn)中CelebA數(shù)據(jù)集中的圖片將以人臉的鼻尖為中心縮放裁剪為128*128像素后作為訓(xùn)練樣本。
ffhq數(shù)據(jù)集是由Nvidia公司制作的人臉圖片數(shù)據(jù)集,包含7萬張人臉圖片,圖片為128*128像素的RGB圖片。與CelebA不同,ffhq數(shù)據(jù)集是專門用于人臉生成任務(wù)的數(shù)據(jù)集,其中的圖片具有更高的飽和度,也沒有CelebA中為了增加分類器魯棒性而添加的圖像噪聲,同時(shí)這個(gè)數(shù)據(jù)集是無標(biāo)記的。
由于ffhq的人臉圖片沒有屬性標(biāo)記,故模型中的分類網(wǎng)絡(luò)將使用CelebA數(shù)據(jù)集進(jìn)行訓(xùn)練。
論文將對(duì)生成的人臉圖片樣本,進(jìn)行兩方面的定量評(píng)價(jià)。一是評(píng)價(jià)包含某標(biāo)簽c的生成樣本,與包含同樣標(biāo)簽的真實(shí)樣本,在分布上的距離。針對(duì)第一種屬性,論文引入FID(Fréchet Inception Distance)作為評(píng)價(jià)指標(biāo)。FID是由Heusel et al.(2017)最先引入[14]并用來評(píng)估GAN的度量方法。在FID中,首先使用inception network分別提取真實(shí)樣本與生成樣本中間層的特征,然后使用一個(gè)均值為 方差為C的正態(tài)分布去模擬這些特征的分布,最后計(jì)算真實(shí)樣本與生成樣本在特征分布層面的距離。
FID值越低則說明生成樣本與真實(shí)樣本的特征分布約接近。其數(shù)學(xué)表達(dá)如下:
Tr表示矩陣對(duì)角線上元素的總和,矩陣論中也稱之為“跡”。μr為真實(shí)樣本的特征均值,μg為生成樣本的特征均值,Cr為真實(shí)樣本的特征協(xié)方差矩陣,Cg為生成樣本的特征協(xié)方差矩陣。
二是判斷經(jīng)過潛在空間控制后轉(zhuǎn)變屬性的圖片與轉(zhuǎn)變前的圖片是否保持了特征。針對(duì)第二種屬性,論文引入FaceNet-Distance[15]對(duì)兩張圖片進(jìn)行人臉相似度比較。FaceNet-Distance通過CNN將人臉映射到歐式空間的特征向量上,計(jì)算不同圖片人臉特征的距離來判斷人臉的相似度。FaceNet-Distance值越低則說明兩張人臉圖片在歐式空間的特征向量上的距離接近。
圖9和圖10展示了基于特征保持的條件生成對(duì)抗網(wǎng)絡(luò)在CelebA數(shù)據(jù)集和ffhq數(shù)據(jù)集上通過控制潛在空間生成的多屬性人臉圖片。
圖9 CelebA數(shù)據(jù)集上的多屬性人臉圖片生成
圖10 ffhq數(shù)據(jù)集上的多屬性人臉圖片生成
可以看出,在CelebA和ffhq數(shù)據(jù)集上都有效地完成了多屬性人臉生成任務(wù)。兩個(gè)數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果都顯示,在通過操作潛在空間改變生成圖片屬性時(shí),模型有效地進(jìn)行了特征保持。而在ffhq上的實(shí)驗(yàn)結(jié)果顯示模型靈活的使用了標(biāo)記數(shù)據(jù),利用圖像質(zhì)量更好的ffhq數(shù)據(jù)集有效的訓(xùn)練了生成網(wǎng)絡(luò)與判別網(wǎng)絡(luò),利用CelebA數(shù)據(jù)集訓(xùn)練了分類網(wǎng)絡(luò),這是傳統(tǒng)條件式生成模型不容易做到的。
表1反映了生成數(shù)據(jù)集在屬性變化和特征保持的性能。
表1 實(shí)驗(yàn)結(jié)果統(tǒng)計(jì)
從表中可以看出在多屬性人臉生成任務(wù)中,論文模型相比傳統(tǒng)的cGAN模型,在FID與Facenet-distance上都有更好的表現(xiàn),這說明論文模型生成的圖片有更好真實(shí)性,在控制人臉圖片屬性時(shí)更好的保持了人臉特征。
傳統(tǒng)生成網(wǎng)絡(luò)模型在多屬性人臉生成任務(wù)中存在兩個(gè)不足,一是控制生成人臉圖片的屬性時(shí),不能有效地保持圖片特征;二是現(xiàn)有的條件式生成對(duì)抗網(wǎng)絡(luò)由于數(shù)據(jù)集應(yīng)用不靈活,造成在不平衡數(shù)據(jù)上進(jìn)行多屬性人臉生成時(shí)表現(xiàn)不佳。針對(duì)這兩點(diǎn)不足,論文提出了一種基于特征保持的條件生成對(duì)抗網(wǎng)絡(luò)。通過改變潛在空間表示來控制圖片屬性以及基于類激活映射的損失懲罰項(xiàng)來生成多屬性的人臉圖片。通過實(shí)驗(yàn)驗(yàn)證,模型可以有效地生成多屬性人臉圖片,并保持圖片的特征。在未來的工作中,將嘗試在更高分辨率的人臉圖片上進(jìn)行多屬性生成實(shí)驗(yàn)。