董虎勝
(蘇州市職業大學計算機工程學院,蘇州 215104)
卡通畫是一種廣泛受到人們喜愛的藝術表現形式,尤其是個性化的卡通人臉圖像常常被用作QQ、微信、釘釘等社交軟件的頭像。這些卡通頭像并不完全追求造型的逼真,而是適當地借助象征、夸張或神似的藝術化創作手法,達到創作意念與審美藝術的雙重表達,在網絡上非常受到歡迎。由于創作和真實人臉圖像神似的卡通頭像需要比較高的美術基礎,這就使得利用人臉照片生成卡通化的頭像成為現實的需求。
近幾年來的圖像風格遷移[1]技術為人們獲得個性化的卡通頭像提供了可行的解決方案。圖像風格遷移指的是借助機器學習方法從具有特定藝術風格的圖像中學習到內在的風格模式,再將這種風格施加到目標圖像上,使其在保持原有內容能夠被辨識的情況下呈現出特定的藝術風格。由于這種技術將數字化的圖像處理與藝術創作聯系了起來,賦予了計算機“自主”地進行藝術創作的能力,為數字圖像處理提供了新的思路。因此該技術一經提出后,立即引起了人們的廣泛關注,成為當前計算機視覺與機器學習領域中的研究熱點[2-4]。
在當前圖像風格遷移的方法中,比如Dual?GAN[4]、CycleGAN[5]和UNIT[6]等,基本上都借助了生成對抗網絡[7](generative adversarial networks,GAN)模型來從圖像中學習藝術風格模式,再進一步將這些藝術風格從源域圖像遷移到目標域圖像上,實現從源域到目標域的映射。盡管這些方法能夠取得不錯的風格遷移效果,但是也存在圖像的背景容易受到影響的問題,給生成的結果帶來一些內容上的瑕疵。本文在對GAN模型工作原理做了深入分析的基礎上,設計了一種由注意力引導的生成對抗模型,在該模型中借助了注意力來引導GAN中的生成器更多地關注于圖像前景內容,從而盡量減少風格遷移對背景內容帶來的破壞。將該模型應用于人臉圖像到卡通風格頭像生成的實驗結果表明,該模型能夠取得優秀的人臉圖像卡通化效果,生成的卡通頭像不僅具有很好的卡通化藝術表現形式,同時也具有非常好的視覺質量。
GAN模型是一種具有很強學習能力的生成模型,在使用訓練數據對GAN模型進行訓練后,GAN能夠生成和真實數據擁有相同屬性的數據,完全能夠達到“以假亂真”的效果。而且與一般的需要顯式表達概率分布的生成模型不同,GAN并不需要顯式地表達樣本的概率分布,而是通過其內部的生成器與判別器之間的零和博弈來隱式地學習數據內在分布。在經過兩者的對抗學習后,生成器與判別器最終將達到納什平衡狀態[7],此時生成器生成的數據就能夠表現出與真實數據相同的外觀,這樣就可以利用其生成圖像、文本等不同形態的數據。
GAN模型的工作原理如圖1所示,其中包含有生成器G和判別器D兩個基本模塊。生成器G接收的是服從于分布p(z)的隨機噪聲向量z,在經過G的處理后將輸出與服從pdata分布的真實訓練數據x具有相同外觀的數據G(z)。G(z)與x都將被送入判別器D中,并由D對它們的標簽進行二分類預測。也就是如果輸入的樣本為G(z),則判別器D應判斷其為假的樣本,輸出的類別標簽將為0;倘若輸入的是真實樣本x,則應判斷其為真實數據,給出類別為1的標簽。在訓練過程中,判別器D需要最大化對x與G(z)的標簽預測準確率,而生成器G則努力地讓生成的G(z)混雜于真實訓練數據x中,讓D難以將其分辨出來。這就形成了生成器G與判別器D不斷對抗博弈的局面。
在整個訓練過程中,G與D的生成與判別能力都會隨著迭代對抗不斷獲得提升。當兩者的對抗博弈達到平衡時,這種狀態被稱為“納什平衡”。此時,生成器G的輸出結果將會與來自真實訓練數據的x具有相同的外觀屬性,判別器D將無法區分出當前的樣本是實際存在的訓練集數據,還是來自于生成的G(z),因此判別器D對x與G(z)的分類概率都將趨于1/2。這時就可以認為生成器G已經學習到了訓練數據的內在分布,在不需要顯式地表達數據分布的情況下就可以使用G來生成服從pdata的樣本。
GAN模型的學習目標可以形式化地表達如下

在GAN模型中生成器G和判別器D可以是任何形式的具有生成與判別能力的學習模型。但是由于深度模型具有比傳統淺層機器學習模型更強大的學習能力,因此一般在GAN模型中都使用深度學習模型作為生成器與判別器。特別是在處理圖像數據時由于卷積神經網絡(convolutional neu?ral networks,CNN)具有獨特的優勢,因此一般使用CNN作為判別器,并使用具有轉置卷積和上采樣結構的CNN作為生成器。
圖像風格遷移的主要目的是將源域S中的風格模式遷移并應用到目標域T中,設si∈S與tj∈T分別指代源域與目標域中的圖像,當前的風格遷移模型基本上都采用了雙生成器與雙判別器的組合結構。設G和F為兩個圖像生成器,Dt和Ds為與它們對應的兩個判別器。其中G接收源域圖像s并生成具有目標域T中風格的圖像G(s),判別器Dt用于對圖像來自于G(s)還是T進行判斷。生成器F與判別器Ds則完成相反的工作,即F負責由目標域T向源域S的映射,Ds負責辨別F(t)與S中數據的真偽。
為了降低風格遷移中對圖像背景內容帶來的影響,本文對生成器G和F的映射過程使用了注意力機制進行性能提升。設As、At分別為圖像s、t的注意力映射圖,將它們添加到圖像生成流程后G和F的映射過程將變為G:s→As→G(s)和F:t→At→F(t)。這樣的增強使得圖像生成過程中將首先使用注意力來定義各個像素的遷移強度,避免了對圖像所有像素不作區分地處理帶來的不足。
為了獲得圖像的注意力,本文采用了如圖2所示的非局部注意力[8](non-local attention)模型,該注意力模型能夠有效地捕捉圖像中較大區域范圍內像素間的依賴關系,有效地引導模型獲得圖像的前景內容。非局部注意力模型接收的是通過多層卷積-池化-非線性映射獲得的四維特征張量,這里B為一個批次(batch)中的樣本數,C為通道數,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)也作類似的扁平化處理并作通道轉置,獲得到形狀為[B,H×W,C/2]的張量。利用矩陣乘法對它們運算后將得到一個形狀為[B,H×W,H×W]的張量,進一步作Softmax運算就可以獲得歸一化的注意力映射圖(attention map)。

圖2 非局部注意力模型
對h(X)也作類似的扁平化與維度轉置后將得到形狀為[B,H×W,C/2]的張量,將其與注意力映射圖作矩陣乘法運算將獲得形狀為[B,H×W,C/2]的結果張量。再作維度轉置與拉伸操作后將獲得形狀為[B,C/2,H×W]的輸出張量。最后對其使用1×1卷積將通道擴展為原始C大小,即獲得最終的注意力輸出A∈RB×C×H×W。
在生成器G和F中引入注意力模塊后,最終生成的結果圖像將變為:

式中的β為取值(0,1)間的平衡參數。
在圖像風格遷移中,我們希望對于源域中的圖像s在映射到目標域T后仍能再次映射回源域S,且映射回的結果與原始圖像間盡可能相似。也就是s→G(s)→F(G(s))≈s,類似地,對于映射F有t→F(t)→G(F(t))≈t,這樣的約束也被稱為循環一致性約束。該約束可以通過對生成器G和F施加循環一致性損失(cycle consistency loss)來獲得:

式中pdata(s)與pdata(t)分別指代圖像數據s和t服從的概率分布。
在對整個風格遷移模型進行訓練時,需要考慮生成器G與判別器Dt之間的GAN模型損失LGAN(G,Dt)、生成器F與判別器Ds之間的GAN模型損失LGAN(F,Ds)、生成器G和F之間的循環一致性損失Lcyc(G,F)。因此最終的損失函數可以表達為:

式中λ為根據經驗設置的平衡參數。使用訓練數據通過對L(G,F,Ds,Dt)進行優化后,獲得的生成器G和F即可實現對圖像風格的遷移,生成目標風格圖像。
實驗中在selfie2anime數據集上進行了卡通風格人臉圖像生成測試,selfie2anime數據集由slfie與anime兩個數據集混合獲得。其中selfie數據集中共有46386張個人自拍頭像,anime數據集中總計包含有69296張卡通動漫頭像。在實驗中從selfie與anime數據集下均選擇了3400張圖像用作為訓練數據,另外各選擇了100張圖像用作為測試數據,這些選中的圖像均被統一到256×256的像素大小。anime數據集中圖像被用作為目標域圖像,需要從其中學習出風格模式;selfie數據集中的真實人臉圖像用于生成卡通頭像的源數據。本文圖像風格遷移并不需要對目標域與源域中的圖像進行配對,只需要從目標域圖像學習風格模式應用到源域圖像內容即可。
實驗在Ubuntu 18.04環境下采用了PyTorch深度學習框架進行。本文的風格遷移模型中生成器主體采用了與CycleGAN相同的編碼器-解碼器結構,但在編碼器中添加了非局部注意力模塊。模型中判別器使用了70×70的PatchGAN[9]的分類模型,與一般的卷積神經網絡結構相比,PatchGAN分類器中的參數量要少很多,而且可以接收任意大小的圖像。實驗使用了學習率為0.0001的Ad?am優化器,優化器的參數β1與β2均采用默認值;在訓練階段對模型作了200個epoch的迭代優化,再將其用于動漫插畫風格圖像的生成測試。在硬件上使用了NVIDIA-1080GPU配合CUDA10進行加速。

圖3 卡通風格人臉圖像生成結果
圖3給出了本文模型的卡通風格人臉圖像生成結果,其中最左側為原始自拍人臉照片,第2列為生成器的注意力映射圖的可視化圖像,第3、4、5列分別為使用CycleGAN、UNIT與本文模型生成的卡通風格頭像。從圖中可以看出幾種模型都能夠實現卡通風格的遷移,生成的頭像都在保持與原始內容整體相似的情況下添加了卡通風格。但是CycleGAN生成的圖像中會混入一些其他內容,給圖像內容帶來了一些破壞;UNIT模型生成的頭像中不僅頭發部分與原圖輪廓的差異比較大,人臉部分的輪廓線條也比較生硬,整體質量差強人意。與它們相比,本文模型生成的卡通頭像人臉前景與原始圖像輪廓相似且表現自然,背景部分在內容保持不變的情況下表現出良好的卡通風格,圖像的整體視覺質量最為優秀。
本文對基于對抗生成網絡的卡通風格人臉圖像生成進行了研究。為了避免風格遷移時對圖像內容造成的破壞,在生成器網絡引入了注意力機制,使得模型能夠更多地關注于圖像前景內容。在使用selfie2anime中的人臉與卡通圖像數據進行訓練后,本文方法能夠生成具有優秀視覺質量的卡通風格頭像。與CycleGAN和UNIT等模型生成的圖像相比,在圖像風格與圖像內容上達到了比較好的平衡。