董虎勝
(蘇州市職業(yè)大學(xué)計算機工程學(xué)院,蘇州 215104)
卡通畫是一種廣泛受到人們喜愛的藝術(shù)表現(xiàn)形式,尤其是個性化的卡通人臉圖像常常被用作QQ、微信、釘釘?shù)壬缃卉浖念^像。這些卡通頭像并不完全追求造型的逼真,而是適當(dāng)?shù)亟柚笳?、夸張或神似的藝術(shù)化創(chuàng)作手法,達到創(chuàng)作意念與審美藝術(shù)的雙重表達,在網(wǎng)絡(luò)上非常受到歡迎。由于創(chuàng)作和真實人臉圖像神似的卡通頭像需要比較高的美術(shù)基礎(chǔ),這就使得利用人臉照片生成卡通化的頭像成為現(xiàn)實的需求。
近幾年來的圖像風(fēng)格遷移[1]技術(shù)為人們獲得個性化的卡通頭像提供了可行的解決方案。圖像風(fēng)格遷移指的是借助機器學(xué)習(xí)方法從具有特定藝術(shù)風(fēng)格的圖像中學(xué)習(xí)到內(nèi)在的風(fēng)格模式,再將這種風(fēng)格施加到目標(biāo)圖像上,使其在保持原有內(nèi)容能夠被辨識的情況下呈現(xiàn)出特定的藝術(shù)風(fēng)格。由于這種技術(shù)將數(shù)字化的圖像處理與藝術(shù)創(chuàng)作聯(lián)系了起來,賦予了計算機“自主”地進行藝術(shù)創(chuàng)作的能力,為數(shù)字圖像處理提供了新的思路。因此該技術(shù)一經(jīng)提出后,立即引起了人們的廣泛關(guān)注,成為當(dāng)前計算機視覺與機器學(xué)習(xí)領(lǐng)域中的研究熱點[2-4]。
在當(dāng)前圖像風(fēng)格遷移的方法中,比如Dual?GAN[4]、CycleGAN[5]和UNIT[6]等,基本上都借助了生成對抗網(wǎng)絡(luò)[7](generative adversarial networks,GAN)模型來從圖像中學(xué)習(xí)藝術(shù)風(fēng)格模式,再進一步將這些藝術(shù)風(fēng)格從源域圖像遷移到目標(biāo)域圖像上,實現(xiàn)從源域到目標(biāo)域的映射。盡管這些方法能夠取得不錯的風(fēng)格遷移效果,但是也存在圖像的背景容易受到影響的問題,給生成的結(jié)果帶來一些內(nèi)容上的瑕疵。本文在對GAN模型工作原理做了深入分析的基礎(chǔ)上,設(shè)計了一種由注意力引導(dǎo)的生成對抗模型,在該模型中借助了注意力來引導(dǎo)GAN中的生成器更多地關(guān)注于圖像前景內(nèi)容,從而盡量減少風(fēng)格遷移對背景內(nèi)容帶來的破壞。將該模型應(yīng)用于人臉圖像到卡通風(fēng)格頭像生成的實驗結(jié)果表明,該模型能夠取得優(yōu)秀的人臉圖像卡通化效果,生成的卡通頭像不僅具有很好的卡通化藝術(shù)表現(xiàn)形式,同時也具有非常好的視覺質(zhì)量。
GAN模型是一種具有很強學(xué)習(xí)能力的生成模型,在使用訓(xùn)練數(shù)據(jù)對GAN模型進行訓(xùn)練后,GAN能夠生成和真實數(shù)據(jù)擁有相同屬性的數(shù)據(jù),完全能夠達到“以假亂真”的效果。而且與一般的需要顯式表達概率分布的生成模型不同,GAN并不需要顯式地表達樣本的概率分布,而是通過其內(nèi)部的生成器與判別器之間的零和博弈來隱式地學(xué)習(xí)數(shù)據(jù)內(nèi)在分布。在經(jīng)過兩者的對抗學(xué)習(xí)后,生成器與判別器最終將達到納什平衡狀態(tài)[7],此時生成器生成的數(shù)據(jù)就能夠表現(xiàn)出與真實數(shù)據(jù)相同的外觀,這樣就可以利用其生成圖像、文本等不同形態(tài)的數(shù)據(jù)。
GAN模型的工作原理如圖1所示,其中包含有生成器G和判別器D兩個基本模塊。生成器G接收的是服從于分布p(z)的隨機噪聲向量z,在經(jīng)過G的處理后將輸出與服從pdata分布的真實訓(xùn)練數(shù)據(jù)x具有相同外觀的數(shù)據(jù)G(z)。G(z)與x都將被送入判別器D中,并由D對它們的標(biāo)簽進行二分類預(yù)測。也就是如果輸入的樣本為G(z),則判別器D應(yīng)判斷其為假的樣本,輸出的類別標(biāo)簽將為0;倘若輸入的是真實樣本x,則應(yīng)判斷其為真實數(shù)據(jù),給出類別為1的標(biāo)簽。在訓(xùn)練過程中,判別器D需要最大化對x與G(z)的標(biāo)簽預(yù)測準(zhǔn)確率,而生成器G則努力地讓生成的G(z)混雜于真實訓(xùn)練數(shù)據(jù)x中,讓D難以將其分辨出來。這就形成了生成器G與判別器D不斷對抗博弈的局面。
在整個訓(xùn)練過程中,G與D的生成與判別能力都會隨著迭代對抗不斷獲得提升。當(dāng)兩者的對抗博弈達到平衡時,這種狀態(tài)被稱為“納什平衡”。此時,生成器G的輸出結(jié)果將會與來自真實訓(xùn)練數(shù)據(jù)的x具有相同的外觀屬性,判別器D將無法區(qū)分出當(dāng)前的樣本是實際存在的訓(xùn)練集數(shù)據(jù),還是來自于生成的G(z),因此判別器D對x與G(z)的分類概率都將趨于1/2。這時就可以認(rèn)為生成器G已經(jīng)學(xué)習(xí)到了訓(xùn)練數(shù)據(jù)的內(nèi)在分布,在不需要顯式地表達數(shù)據(jù)分布的情況下就可以使用G來生成服從pdata的樣本。
GAN模型的學(xué)習(xí)目標(biāo)可以形式化地表達如下
在GAN模型中生成器G和判別器D可以是任何形式的具有生成與判別能力的學(xué)習(xí)模型。但是由于深度模型具有比傳統(tǒng)淺層機器學(xué)習(xí)模型更強大的學(xué)習(xí)能力,因此一般在GAN模型中都使用深度學(xué)習(xí)模型作為生成器與判別器。特別是在處理圖像數(shù)據(jù)時由于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neu?ral networks,CNN)具有獨特的優(yōu)勢,因此一般使用CNN作為判別器,并使用具有轉(zhuǎn)置卷積和上采樣結(jié)構(gòu)的CNN作為生成器。
圖像風(fēng)格遷移的主要目的是將源域S中的風(fēng)格模式遷移并應(yīng)用到目標(biāo)域T中,設(shè)si∈S與tj∈T分別指代源域與目標(biāo)域中的圖像,當(dāng)前的風(fēng)格遷移模型基本上都采用了雙生成器與雙判別器的組合結(jié)構(gòu)。設(shè)G和F為兩個圖像生成器,Dt和Ds為與它們對應(yīng)的兩個判別器。其中G接收源域圖像s并生成具有目標(biāo)域T中風(fēng)格的圖像G(s),判別器Dt用于對圖像來自于G(s)還是T進行判斷。生成器F與判別器Ds則完成相反的工作,即F負(fù)責(zé)由目標(biāo)域T向源域S的映射,Ds負(fù)責(zé)辨別F(t)與S中數(shù)據(jù)的真?zhèn)巍?/p>
為了降低風(fēng)格遷移中對圖像背景內(nèi)容帶來的影響,本文對生成器G和F的映射過程使用了注意力機制進行性能提升。設(shè)As、At分別為圖像s、t的注意力映射圖,將它們添加到圖像生成流程后G和F的映射過程將變?yōu)镚:s→As→G(s)和F:t→At→F(t)。這樣的增強使得圖像生成過程中將首先使用注意力來定義各個像素的遷移強度,避免了對圖像所有像素不作區(qū)分地處理帶來的不足。
為了獲得圖像的注意力,本文采用了如圖2所示的非局部注意力[8](non-local attention)模型,該注意力模型能夠有效地捕捉圖像中較大區(qū)域范圍內(nèi)像素間的依賴關(guān)系,有效地引導(dǎo)模型獲得圖像的前景內(nèi)容。非局部注意力模型接收的是通過多層卷積-池化-非線性映射獲得的四維特征張量,這里B為一個批次(batch)中的樣本數(shù),C為通道數(shù),H與W分別為特征圖(feature map)的高與寬。在使用三個1×1的卷積核分別作卷積運算f(X)、g(X)、h(X)后,特征的通道將被壓縮為C/2。在這三路分支中,首先對f(X)在H與W兩個維度作扁平化,獲得形狀為[B,C/2,H×W]的輸出。對g(X)也作類似的扁平化處理并作通道轉(zhuǎn)置,獲得到形狀為[B,H×W,C/2]的張量。利用矩陣乘法對它們運算后將得到一個形狀為[B,H×W,H×W]的張量,進一步作Softmax運算就可以獲得歸一化的注意力映射圖(attention map)。
圖2 非局部注意力模型
對h(X)也作類似的扁平化與維度轉(zhuǎn)置后將得到形狀為[B,H×W,C/2]的張量,將其與注意力映射圖作矩陣乘法運算將獲得形狀為[B,H×W,C/2]的結(jié)果張量。再作維度轉(zhuǎn)置與拉伸操作后將獲得形狀為[B,C/2,H×W]的輸出張量。最后對其使用1×1卷積將通道擴展為原始C大小,即獲得最終的注意力輸出A∈RB×C×H×W。
在生成器G和F中引入注意力模塊后,最終生成的結(jié)果圖像將變?yōu)?
式中的β為取值(0,1)間的平衡參數(shù)。
在圖像風(fēng)格遷移中,我們希望對于源域中的圖像s在映射到目標(biāo)域T后仍能再次映射回源域S,且映射回的結(jié)果與原始圖像間盡可能相似。也就是s→G(s)→F(G(s))≈s,類似地,對于映射F有t→F(t)→G(F(t))≈t,這樣的約束也被稱為循環(huán)一致性約束。該約束可以通過對生成器G和F施加循環(huán)一致性損失(cycle consistency loss)來獲得:
式中pdata(s)與pdata(t)分別指代圖像數(shù)據(jù)s和t服從的概率分布。
在對整個風(fēng)格遷移模型進行訓(xùn)練時,需要考慮生成器G與判別器Dt之間的GAN模型損失LGAN(G,Dt)、生成器F與判別器Ds之間的GAN模型損失LGAN(F,Ds)、生成器G和F之間的循環(huán)一致性損失Lcyc(G,F)。因此最終的損失函數(shù)可以表達為:
式中λ為根據(jù)經(jīng)驗設(shè)置的平衡參數(shù)。使用訓(xùn)練數(shù)據(jù)通過對L(G,F,Ds,Dt)進行優(yōu)化后,獲得的生成器G和F即可實現(xiàn)對圖像風(fēng)格的遷移,生成目標(biāo)風(fēng)格圖像。
實驗中在selfie2anime數(shù)據(jù)集上進行了卡通風(fēng)格人臉圖像生成測試,selfie2anime數(shù)據(jù)集由slfie與anime兩個數(shù)據(jù)集混合獲得。其中selfie數(shù)據(jù)集中共有46386張個人自拍頭像,anime數(shù)據(jù)集中總計包含有69296張卡通動漫頭像。在實驗中從selfie與anime數(shù)據(jù)集下均選擇了3400張圖像用作為訓(xùn)練數(shù)據(jù),另外各選擇了100張圖像用作為測試數(shù)據(jù),這些選中的圖像均被統(tǒng)一到256×256的像素大小。anime數(shù)據(jù)集中圖像被用作為目標(biāo)域圖像,需要從其中學(xué)習(xí)出風(fēng)格模式;selfie數(shù)據(jù)集中的真實人臉圖像用于生成卡通頭像的源數(shù)據(jù)。本文圖像風(fēng)格遷移并不需要對目標(biāo)域與源域中的圖像進行配對,只需要從目標(biāo)域圖像學(xué)習(xí)風(fēng)格模式應(yīng)用到源域圖像內(nèi)容即可。
實驗在Ubuntu 18.04環(huán)境下采用了PyTorch深度學(xué)習(xí)框架進行。本文的風(fēng)格遷移模型中生成器主體采用了與CycleGAN相同的編碼器-解碼器結(jié)構(gòu),但在編碼器中添加了非局部注意力模塊。模型中判別器使用了70×70的PatchGAN[9]的分類模型,與一般的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)相比,PatchGAN分類器中的參數(shù)量要少很多,而且可以接收任意大小的圖像。實驗使用了學(xué)習(xí)率為0.0001的Ad?am優(yōu)化器,優(yōu)化器的參數(shù)β1與β2均采用默認(rèn)值;在訓(xùn)練階段對模型作了200個epoch的迭代優(yōu)化,再將其用于動漫插畫風(fēng)格圖像的生成測試。在硬件上使用了NVIDIA-1080GPU配合CUDA10進行加速。
圖3 卡通風(fēng)格人臉圖像生成結(jié)果
圖3給出了本文模型的卡通風(fēng)格人臉圖像生成結(jié)果,其中最左側(cè)為原始自拍人臉照片,第2列為生成器的注意力映射圖的可視化圖像,第3、4、5列分別為使用CycleGAN、UNIT與本文模型生成的卡通風(fēng)格頭像。從圖中可以看出幾種模型都能夠?qū)崿F(xiàn)卡通風(fēng)格的遷移,生成的頭像都在保持與原始內(nèi)容整體相似的情況下添加了卡通風(fēng)格。但是CycleGAN生成的圖像中會混入一些其他內(nèi)容,給圖像內(nèi)容帶來了一些破壞;UNIT模型生成的頭像中不僅頭發(fā)部分與原圖輪廓的差異比較大,人臉部分的輪廓線條也比較生硬,整體質(zhì)量差強人意。與它們相比,本文模型生成的卡通頭像人臉前景與原始圖像輪廓相似且表現(xiàn)自然,背景部分在內(nèi)容保持不變的情況下表現(xiàn)出良好的卡通風(fēng)格,圖像的整體視覺質(zhì)量最為優(yōu)秀。
本文對基于對抗生成網(wǎng)絡(luò)的卡通風(fēng)格人臉圖像生成進行了研究。為了避免風(fēng)格遷移時對圖像內(nèi)容造成的破壞,在生成器網(wǎng)絡(luò)引入了注意力機制,使得模型能夠更多地關(guān)注于圖像前景內(nèi)容。在使用selfie2anime中的人臉與卡通圖像數(shù)據(jù)進行訓(xùn)練后,本文方法能夠生成具有優(yōu)秀視覺質(zhì)量的卡通風(fēng)格頭像。與CycleGAN和UNIT等模型生成的圖像相比,在圖像風(fēng)格與圖像內(nèi)容上達到了比較好的平衡。