廖毅,應(yīng)三叢
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065)
隨著生活水平不斷提高,人們?cè)絹?lái)越多地關(guān)注自己的外表,使用化妝品或者使用手機(jī)進(jìn)行上妝美顏是大家普遍且流行的選擇。面部妝容雖然可以讓一個(gè)人看起來(lái)更漂亮,但同時(shí)也會(huì)遮擋面部特征,甚至有些程度很深的妝容堪稱(chēng)“換頭術(shù)”,這種厚重的妝容很容易造成人或者計(jì)算機(jī)人臉識(shí)別算法的錯(cuò)認(rèn)、誤認(rèn)[1],影響到網(wǎng)絡(luò)社交、人臉信息安全等領(lǐng)域。
和與之相反的上妝算法[2]不同,在卸妝算法中,面部信息被化妝品遮擋,通過(guò)有妝圖像得到卸妝后圖像相比之下更為困難,卸妝算法主要有一下挑戰(zhàn):①由于化妝品遮擋于皮膚上方,原本皮膚的顏色,紋理的信息較少。②化妝過(guò)程中會(huì)使用深色化妝品打陰影,由于2D圖像沒(méi)有深度信息,可能會(huì)影響算法對(duì)人臉結(jié)構(gòu)的判斷。
目前研究人員對(duì)于卸妝任務(wù)也開(kāi)展了多方面研究。Wang S Y等人[3]提出了一種基于局部約束的框架(LC-CDL),先判斷和化妝品的使用情況,再生成去妝人臉,從而根據(jù)不同的風(fēng)格進(jìn)行針對(duì)性地卸妝。Chen Y C等人[4]對(duì)于去除由美顏軟件生成的人臉圖像美顏效果,提出了一種分量回歸網(wǎng)絡(luò)(CRN),CRN在不知道美化操作細(xì)節(jié)的情況下,將編輯后的人像圖像映射回原始圖像,解決了在盲還原中使用歐幾里得損失的局限性。Cao C等人[5]提出了深度雙向可調(diào)控的去妝網(wǎng)絡(luò)(BTD-Net),該網(wǎng)絡(luò)聯(lián)合學(xué)習(xí)化妝過(guò)程來(lái)輔助學(xué)習(xí)去妝過(guò)程。通過(guò)引入了一個(gè)反映化妝風(fēng)格的潛變量,將其作為補(bǔ)充條件,最終把一對(duì)多的映射約束到特定的解。
已有的卸妝算法已經(jīng)取得了不錯(cuò)的效果,但是依然存在一定局限性,算法得到的卸妝圖片通常難以保留紋理信息,或是有偽影、邊緣模糊的現(xiàn)象,使得生成的人臉不夠真實(shí)?;谝陨洗嬖诘膯?wèn)題,本文提出使用配對(duì)數(shù)據(jù)集訓(xùn)練,在條件生成對(duì)抗網(wǎng)絡(luò)[6]的基礎(chǔ)上,訓(xùn)練生成器將有妝圖像生成無(wú)妝圖像,并且引入L1損失函數(shù)保留身份信息,并且生成較為清晰的邊緣。通過(guò)使用VGG16網(wǎng)絡(luò)提取圖片特征,引入感知損失確保較為真實(shí)的皮膚紋理質(zhì)感。
生成對(duì)抗網(wǎng)絡(luò)由Goodfellow等人[7]在2014年提出,它被廣泛的應(yīng)用于風(fēng)格遷移,高分辨率圖像生成等計(jì)算機(jī)視覺(jué)領(lǐng)域。生成對(duì)抗網(wǎng)絡(luò)將博弈論的思想引入深度學(xué)習(xí),通過(guò)網(wǎng)絡(luò)間的對(duì)抗不斷提升生成圖片的質(zhì)量。生成對(duì)抗網(wǎng)絡(luò)的基本結(jié)構(gòu)由生成器G和判別器D兩部分組成。生成器將輸入的隨機(jī)噪聲z生成新的數(shù)據(jù)分布G(z),判別器D的任務(wù)則是區(qū)分真實(shí)樣本x和由生成器生成的虛假樣本G(z)。生成器和判別器之間相互對(duì)抗,交替訓(xùn)練,隨著生成數(shù)據(jù)越來(lái)越接近真實(shí)數(shù)據(jù),模型逐漸達(dá)到平衡,得到最優(yōu)解,其目標(biāo)函數(shù)可表示為:
條件生成對(duì)抗網(wǎng)絡(luò)由Mirza等人對(duì)生成對(duì)抗網(wǎng)絡(luò)改進(jìn)得到,它是為了解決生成對(duì)抗網(wǎng)絡(luò)生成難以控制目標(biāo)圖片生成的問(wèn)題。條件生成對(duì)抗網(wǎng)絡(luò)的結(jié)構(gòu)如圖所示。新加入條件c,并同時(shí)輸入給生成器和判別器,指導(dǎo)網(wǎng)絡(luò)生成更有針對(duì)性的數(shù)據(jù)。生成器生成與條件c相匹配的數(shù)據(jù),判別器與常規(guī)生成對(duì)抗網(wǎng)絡(luò)不同,除了判斷數(shù)據(jù)是否真實(shí),還需要判斷數(shù)據(jù)是否與條件c匹配。目標(biāo)函數(shù)可表示為:
圖像轉(zhuǎn)換是指將一幅圖片轉(zhuǎn)換為另一幅圖片的一類(lèi)問(wèn)題,例如將照片中的黑夜轉(zhuǎn)為白天,或者將人像照片轉(zhuǎn)為素描,人臉去妝算法同樣也屬于一類(lèi)圖像轉(zhuǎn)換任務(wù)。隨著深度學(xué)習(xí)的發(fā)展,利用生成對(duì)抗網(wǎng)絡(luò)解決圖像轉(zhuǎn)換問(wèn)題的研究也越來(lái)越多。在圖像轉(zhuǎn)換的任務(wù)中,生成器G的輸入通常是需要轉(zhuǎn)換的圖片,輸出轉(zhuǎn)換完成的圖片。判別器D判斷樣本是真實(shí)樣本還是由生成器生成的虛假樣本。Isola等人[8]提出了Pix2Pix模型,通常用于圖像轉(zhuǎn)換任務(wù)。它基于條件生成對(duì)抗網(wǎng)絡(luò),學(xué)習(xí)輸入圖像和輸出圖像之間的一一對(duì)應(yīng)關(guān)系,使用大量的配對(duì)數(shù)據(jù)進(jìn)行訓(xùn)練,并且盡量保證每對(duì)訓(xùn)練數(shù)據(jù)無(wú)需轉(zhuǎn)換的無(wú)關(guān)信息不改變。為了解決配對(duì)訓(xùn)練數(shù)據(jù)難以獲取的問(wèn)題,Zhu J Y等人[9]提出環(huán)形生成對(duì)抗網(wǎng)絡(luò)模型CycleGAN,可以比較好地完成域間的圖像轉(zhuǎn)換。CycleGAN的結(jié)構(gòu)包含兩對(duì)生成器和判別器,形成了一個(gè)環(huán)形的結(jié)構(gòu)。通過(guò)設(shè)置了循環(huán)一致的損失函數(shù),讓圖片在不同域間轉(zhuǎn)換而不丟失原本的信息。
在人臉圖像去妝容問(wèn)題中,目標(biāo)是由一張具有妝人臉圖像得到一張?jiān)搶?duì)象的去妝圖像。本文方法使用條件生成對(duì)抗網(wǎng)絡(luò)的框架,訓(xùn)練的最終目的是得到生成模型G,用于生成去妝圖像。接下來(lái)將從網(wǎng)絡(luò)結(jié)構(gòu)、損失函數(shù)兩個(gè)方面介紹本文方法。
本文以條件生成對(duì)抗網(wǎng)絡(luò)框架為基礎(chǔ),包含一個(gè)生成器和一個(gè)判別器,外接一個(gè)預(yù)訓(xùn)練過(guò)的VGG16網(wǎng)絡(luò)用于訓(xùn)練過(guò)程,如圖1所示。圖中x為有妝圖像,作為生成器的輸入,經(jīng)過(guò)生成器得到卸妝后圖像G(x)。生成器采用包含9個(gè)殘差塊的全卷積結(jié)構(gòu)網(wǎng)絡(luò),先將輸入的圖像進(jìn)行卷積操作進(jìn)行重復(fù)的下采樣,中間經(jīng)過(guò)9個(gè)殘差塊進(jìn)行圖像轉(zhuǎn)換,再進(jìn)行重復(fù)的上采樣恢復(fù)到原本圖像大小,最后輸出生成的去妝圖像。判別器同時(shí)輸入卸妝后圖像G(x)和有妝圖像x的組合,或是輸入真實(shí)無(wú)妝圖像y有妝圖像x的組合,判別器需要判斷此樣本是是包含G(x)的虛假負(fù)樣本還是包含y的真實(shí)正樣本。判別器使用PatchGAN的判別器結(jié)構(gòu),判別器輸出一個(gè)判別矩陣,矩陣中每個(gè)數(shù)對(duì)應(yīng)原圖的一片區(qū)域。使用PatchGAN結(jié)構(gòu)有助于生成分辨率更高,細(xì)節(jié)更清晰的圖像。Gatys等人[10]發(fā)現(xiàn)VGG16網(wǎng)絡(luò)卷積后的特征圖可以表示圖片的紋理信息,可以用此來(lái)約束網(wǎng)絡(luò)生成與此人接近的皮膚特征。
圖1 本文提出的卸妝網(wǎng)絡(luò)結(jié)構(gòu)
損失函數(shù)包括3個(gè)部分,對(duì)抗損失函數(shù),平滑L1損失函數(shù)以及感知損失函數(shù)。對(duì)抗損失函數(shù)是生成對(duì)抗網(wǎng)絡(luò)框架下的基本損失函數(shù),控制生成器和判別器對(duì)抗訓(xùn)練。平滑L1損失函數(shù)用于控制生成出的圖像盡量接近想要的目標(biāo)圖像。感知損失函數(shù)可以幫助生成器生成皮膚紋理更接近的目標(biāo)圖像。
(1)對(duì)抗損失函數(shù)
網(wǎng)絡(luò)結(jié)構(gòu)中包含一個(gè)生成器一個(gè)判別器,生成器G輸入有妝圖像x,得到卸妝后圖像G(x)。判別器需要將有妝圖片x和卸妝后圖片G(x)組成的樣本識(shí)別為正樣本;將有妝圖片x和無(wú)妝圖片y組成的樣本識(shí)別為負(fù)樣本。訓(xùn)練時(shí)生成器和判別器交替訓(xùn)練,相互對(duì)抗。該損失函數(shù)可表示為:
(2)L1損失函數(shù)
L1損失函數(shù)式用來(lái)表示生成圖像G(x)和目標(biāo)圖像y之間的差距。使用L1損失函數(shù),讓生成器在保持該目標(biāo)的身份信息的前提下生成去妝圖像,L1損失函數(shù)可表示為:
(3)感知損失函數(shù)
使用VGG16網(wǎng)絡(luò)對(duì)生成圖像G(x)和目標(biāo)圖像y進(jìn)行特征提取,特征圖記錄著圖像的紋理信息,生成圖像G(x)和目標(biāo)圖像y經(jīng)過(guò)第l層卷積得到特征圖,分別記為F和P,再對(duì)F和P求Gram矩陣差的Froben?ius范數(shù),最終生成風(fēng)格紋理較為相近的圖像。設(shè)置感知損失函數(shù)表示如下:
為了驗(yàn)證本文方法的有效性,從定性和定量?jī)蓚€(gè)層面與其他圖像轉(zhuǎn)換方法進(jìn)行對(duì)比。
本文使用了由Gu Q等人[11]制作的數(shù)據(jù)集中的一部分,包括134人,每人的25種妝容,一共4020張圖片。為了更加貼近真實(shí)場(chǎng)景下的實(shí)際應(yīng)用,在定性部分選用了從互聯(lián)網(wǎng)收集的有妝人臉圖片。定量部分使用了評(píng)價(jià)圖片質(zhì)量的兩種指標(biāo)峰值信噪比(PSNR)和結(jié)構(gòu)相似性(SSIM)。
首先實(shí)驗(yàn)從視覺(jué)角度,與Pix2Pix和CycleGAN進(jìn)行對(duì)比進(jìn)行定性分析。如圖2所示,第一排是網(wǎng)絡(luò)輸入的有妝圖像,是從網(wǎng)絡(luò)中截取的真實(shí)場(chǎng)景下的有妝人臉圖片,第二、三、四排分別是Pix2Pix和CycleGAN和本文方法得到的去妝圖像。
圖2 定性分析對(duì)比實(shí)驗(yàn)
通過(guò)對(duì)比觀察,我們可以發(fā)現(xiàn),Pix2Pix網(wǎng)絡(luò)得到的去妝圖像雖然有一定卸妝效果,但是眼周、嘴唇等部位較模糊,邊緣不清晰,(e)、(f)、(g)等樣本,皮膚也有斑紋,不真實(shí)。CycleGAN網(wǎng)絡(luò)得到的圖像雖然圖像細(xì)節(jié)保持較好,但是卸妝效果不佳,對(duì)于(a)、(b)這類(lèi)眼影較重的樣本,妝容不能完全去除,即使對(duì)(i)這類(lèi)妝容較輕的樣本,卸妝效果依舊不理想。相比之下本文結(jié)果卸妝效果較好,對(duì)于口紅、眼影、粉底、眉毛等都有較好的卸妝能力,并且生成了較為清晰的邊緣和細(xì)節(jié),皮膚紋理真實(shí)自然。
本文使用了兩種常用的圖像質(zhì)量評(píng)估指標(biāo):峰值信噪比(PSNR)和結(jié)構(gòu)相似性(SSIM)。PSNR是最普遍,使用最廣泛的評(píng)價(jià)圖像質(zhì)量的客觀指標(biāo),常用作測(cè)量圖像壓縮等領(lǐng)域中信號(hào)重建質(zhì)量,值越大圖片質(zhì)量越好,相似度越高。SSIM從亮度、對(duì)比度和結(jié)構(gòu)三個(gè)角度評(píng)價(jià)兩張圖的相似度,取值范圍是-1到1之間,越接近1代表兩張圖片相似度越高。實(shí)驗(yàn)通過(guò)求生成模型生成的去妝圖像與無(wú)妝圖像之間的PSNR與SSIM值,從定量角度評(píng)價(jià)本文方法與Pix2Pix、CycleGAN的去妝效果。根據(jù)表1,可以看出本文方法的PSNR與SSIM值分別為28.487和0.905,顯著高于另兩種圖像轉(zhuǎn)換方法。
表1 定量分析對(duì)比試驗(yàn)
針對(duì)現(xiàn)有方法在圖像去妝容過(guò)程中紋理不真實(shí)和細(xì)節(jié)模糊的問(wèn)題,提出了一種基于條件生成對(duì)抗網(wǎng)絡(luò)的卸妝算法。該方法通過(guò)使用L1損失函數(shù)和感知損失函數(shù),約束訓(xùn)練得到一個(gè)去妝生成模型。通過(guò)實(shí)驗(yàn)從定性和定量?jī)蓚€(gè)角度驗(yàn)證了相比其他圖像轉(zhuǎn)移算法,生成了具有真實(shí)紋理,細(xì)節(jié)清晰的去妝人臉。后續(xù)工作計(jì)劃考慮到妝容對(duì)人臉識(shí)別算法的影響,改進(jìn)該生成模型,目標(biāo)是提升現(xiàn)有人臉識(shí)別算法對(duì)有妝人臉的識(shí)別率。