趙 晉,李菲菲
(上海理工大學(xué) 上海康復(fù)器械工程技術(shù)研究中心,上海 200093)
水墨畫作為一種傳統(tǒng)的中國畫,其筆觸與墨色復(fù)雜多樣,繪畫技巧靈活豐富,具有獨特的藝術(shù)魅力和巨大的研究價值,因此得到了越來越多研究者的關(guān)注?,F(xiàn)有的中國畫數(shù)字化的研究主要集中于圖像檢索和圖像分類[1-2]。然而創(chuàng)作一幅水墨畫通常需要豐富的經(jīng)驗和特定的技巧,因此研究利用相關(guān)算法自動生成水墨畫作將有利于對中國傳統(tǒng)文化的繼承和保護(hù)。
近年來,隨著深度學(xué)習(xí)[3]技術(shù)的發(fā)展,風(fēng)格遷移技術(shù)逐漸成為圖像處理領(lǐng)域的熱點問題,其目的是將給定的圖像渲染成不同的藝術(shù)風(fēng)格,同時保證輸入圖像的內(nèi)容不發(fā)生改變。文獻(xiàn)[4]開創(chuàng)性地將CNN(Convolutional Neural Network)用于圖像的藝術(shù)風(fēng)格轉(zhuǎn)換,通過利用預(yù)訓(xùn)練好的VGG(Visual Geometry Group)網(wǎng)絡(luò)[5]提取到的特征來重新組合任意給定圖片的內(nèi)容和藝術(shù)圖片的風(fēng)格樣式,從而完成風(fēng)格遷移。文獻(xiàn)[6]提出了AdaIN(Adaptive Instance Normalization),通過全局特征統(tǒng)計來調(diào)整內(nèi)容圖像的均值和方差去匹配樣式圖像的均值和方差。該方法不僅可以實時地變換任何風(fēng)格,還可以保證計算效率,減少運行時間。得益于GAN(Generative Adversarial Network)[7]出色的生成能力,它逐漸在風(fēng)格遷移領(lǐng)域得到了廣泛的應(yīng)用,其生成的結(jié)果在視覺上更加逼真。其中較為經(jīng)典的有監(jiān)督風(fēng)格遷移模型Pix2Pix[8]以及無監(jiān)督模型CycleGAN[9]。然而,現(xiàn)有的風(fēng)格遷移算法大多適用于西方繪畫,直接將這些方法應(yīng)用于中國水墨畫無法取得理想的效果,這是中西方繪畫的內(nèi)在差異所導(dǎo)致的。西方的繪畫作品通常十分接近自然圖片,整個畫面充滿多種色彩,而中國水墨畫只使用單色墨或漸變的墨色來做畫,并且畫面中某些區(qū)域含有空隙,造成一種留白的效果。為了實現(xiàn)中國水墨畫的風(fēng)格轉(zhuǎn)移,文獻(xiàn)[10]首次提出了一個弱監(jiān)督水墨畫風(fēng)格遷移框架ChipGAN,它從留白、筆觸、水墨擴散3個方面來提升水墨畫的遷移效果。但是該方法參數(shù)量較大,訓(xùn)練時間久,實際的遷移效果并不逼真。因此,本文的目標(biāo)是構(gòu)建一種新的算法,在降低參數(shù)的同時還能提升水墨風(fēng)格遷移的質(zhì)量。
在ChipGAN研究工作基礎(chǔ)之上,文中提出了一種新的基于GAN的輕量級風(fēng)格遷移算法,用于中國水墨畫的風(fēng)格轉(zhuǎn)換,旨在一定程度上針對性地解決水墨畫風(fēng)格遷移質(zhì)量不佳的問題。該方法首先引入了改進(jìn)的風(fēng)格注意力模塊來學(xué)習(xí)內(nèi)容特征和水墨風(fēng)格特征之間的相關(guān)性,從而將語義上最相近的風(fēng)格和內(nèi)容特征進(jìn)行匹配;然后將其結(jié)果和AdaIN的結(jié)果進(jìn)行融合,使得模型更為準(zhǔn)確地學(xué)習(xí)到水墨畫所特有的風(fēng)格特征。為了保證風(fēng)格注意模塊能夠正確地學(xué)習(xí)到內(nèi)容和風(fēng)格特征之間的依賴關(guān)系,采用了預(yù)訓(xùn)練好的VGG網(wǎng)絡(luò)[5]作為編碼器,并對內(nèi)容圖片和風(fēng)格圖片進(jìn)行統(tǒng)一的編碼。另外,本文通過添加循環(huán)一致?lián)p失來保留圖像的主要內(nèi)容,在重建過程中加入了感知損失來修正圖像的細(xì)節(jié),生成更高質(zhì)量的圖像。本文通過定性和定量兩種實驗對新方法進(jìn)行評估。結(jié)果表明該算法具有更少的參數(shù)量,更低的訓(xùn)練時間,生成的水墨畫風(fēng)格遷移效果更加真實。
生成對抗網(wǎng)絡(luò)[7]因其在學(xué)習(xí)高維且復(fù)雜數(shù)據(jù)分布方面的潛力而成為深度學(xué)習(xí)領(lǐng)域的熱點之一。具體來說,GAN可以不依賴任何關(guān)于分布的假設(shè),以一種簡單方式從潛在空間生成類似真實數(shù)據(jù)的樣本。這一特性使得GAN在圖像處理領(lǐng)域中有著廣泛的應(yīng)用[11-14],尤其在風(fēng)格遷移[8-10]等問題中,GAN對于改變圖像中的某些特征有良好的性能表現(xiàn)。GAN是一種生成模型,由生成器和判別器兩個模型組成,這兩個模型通常由神經(jīng)網(wǎng)絡(luò)來實現(xiàn)。生成器嘗試捕獲真實示例的分布以生成新的數(shù)據(jù)樣本來欺騙判別器。判別器通常是一個分類器,它將生成樣本和真實樣本盡可能準(zhǔn)確地區(qū)分開來。在訓(xùn)練中,兩者通過對抗的方式,各自性能均得到了提高。當(dāng)優(yōu)化達(dá)到了納什均衡時,可以近似認(rèn)為生成器已經(jīng)學(xué)習(xí)到了真實樣本示例的分布,即生成器能夠生成足夠逼真的樣本。GAN的優(yōu)化問題是一個極小極大問題,其目標(biāo)函數(shù)為
Ez~Pz(z)[log(1-D(G(z)))]
(1)
式中,G和D分別表示生成器和判別器;Pdata表示真實樣本的分布;Pz表示隨機噪聲的分布;E(·)表示計算期望值;D(·)表示計算的概率值;x表示輸入的真實圖像數(shù)據(jù);z表示輸入的噪聲。
模型的整體框架如圖1所示,主要包括兩個生成器(G和F)和一個判別器D。其中每個生成器的結(jié)構(gòu)是相同的,由VGG-19網(wǎng)絡(luò)構(gòu)成的編碼器、AdaIN和風(fēng)格注意力模塊以及解碼器組成。判別器采用了與PatchGAN[8]相同的網(wǎng)絡(luò)結(jié)構(gòu)。
圖1 模型整體架構(gòu)Figure 1. The overall architecture of model
生成器G負(fù)責(zé)學(xué)習(xí)一種映射關(guān)系,將真實的圖片以及水墨風(fēng)格圖片作為輸入,生成和水墨風(fēng)格相類似的圖像。生成器F則學(xué)習(xí)一種反向映射,同樣將生成的圖片以及真實的圖片作為輸入,生成重建后的圖像,并盡可能使生成的重建圖片與輸入的真實圖片相近。這一重構(gòu)過程可以讓圖像在遷移過程中保持圖像的主要內(nèi)容不發(fā)生改變。判別器D負(fù)責(zé)鑒別輸入的圖像是真實的水墨圖像還是生成的虛假圖像。在實際中將真實的水墨圖像作為正樣本,對生成的圖像作為負(fù)樣本對判別器進(jìn)行訓(xùn)練。另外,本文還引入了對抗損失、循環(huán)一致?lián)p失以及感知損失來更新生成器網(wǎng)絡(luò)的參數(shù)。
為了提高水墨風(fēng)格遷移過程中生成圖像的真實性,得到高質(zhì)量的水墨風(fēng)格圖像,本文引入了一個新的生成器網(wǎng)絡(luò)架構(gòu),主要包括VGG-19網(wǎng)絡(luò)[5]構(gòu)成的編碼器、AdaIN模塊、風(fēng)格注意力模塊以及解碼器4個部分。
2.2.1 VGG-19網(wǎng)絡(luò)編碼器
實驗表明,采用常規(guī)的編碼器對真實圖像和風(fēng)格圖像進(jìn)行編碼會降低生成圖像的質(zhì)量,這是由于在網(wǎng)絡(luò)訓(xùn)練過程中,編碼器對真實圖像和風(fēng)格圖像進(jìn)行了錯誤的編碼,導(dǎo)致后續(xù)風(fēng)格注意力模塊學(xué)習(xí)到了不正確的風(fēng)格表示,因此導(dǎo)致遷移的效果不理想。為了解決這一問題,采用預(yù)訓(xùn)練好的VGG-19網(wǎng)絡(luò)作為編碼器,并選擇其ReLU_3_4層的輸出作為后續(xù)AdaIN和風(fēng)格注意力模塊的輸入。由于預(yù)訓(xùn)練好的VGG-19網(wǎng)絡(luò)的權(quán)重是固定的,在訓(xùn)練中參數(shù)不會更新,因此對于真實圖像和風(fēng)格圖像編碼的過程保持一致,風(fēng)格注意力模塊能夠更為準(zhǔn)確地學(xué)習(xí)到風(fēng)格特征和內(nèi)容特征之間的關(guān)系,從而提高風(fēng)格遷移的質(zhì)量。
2.2.2 AdaIN模塊
AdaIN[6]是一種用于快速風(fēng)格遷移的方法,通過轉(zhuǎn)移全局特征統(tǒng)計數(shù)據(jù)來調(diào)整內(nèi)容圖像的均值和方差,使之與風(fēng)格圖像相匹配,在特征空間中完成風(fēng)格遷移。AdaIN是基于IN(Instance Normalization)的改進(jìn),不同之處在于AdaIN沒有可學(xué)習(xí)的仿射參數(shù),它會根據(jù)輸入的風(fēng)格圖像自適應(yīng)生成仿射參數(shù)。假定x和y分別表示輸入的內(nèi)容圖像和風(fēng)格圖像經(jīng)過VGG-19網(wǎng)絡(luò)編碼器得到的特征張量,則AdaIN 層的計算為
(2)
式中,σ(·)表示計算方差;μ(·)表示計算均值。但是由于其實現(xiàn)方式過于簡單,實驗表明其單獨來實現(xiàn)水墨風(fēng)格遷移任務(wù)效果并不理想,因此需通過融合AdaIN和風(fēng)格注意力模塊的結(jié)果來提升風(fēng)格遷移的質(zhì)量。
圖2 風(fēng)格注意力模塊結(jié)構(gòu)Figure 2. The structure of style-attention module
2.2.3 風(fēng)格注意力模塊
風(fēng)格注意力模塊是基于傳統(tǒng)的非局部模塊[15]的改進(jìn),不同之處在于該模塊計算的是兩種不同特征(內(nèi)容特征和風(fēng)格特征)之間的依賴關(guān)系,具體如圖2所示。該模塊可以根據(jù)內(nèi)容圖像特征空間的分布,自適應(yīng)地學(xué)習(xí)到相匹配的局部風(fēng)格模式。在訓(xùn)練過程中,該模塊通過學(xué)習(xí)內(nèi)容和風(fēng)格特征之間的關(guān)系,在內(nèi)容特征圖中不同的位置渲染相對合適的風(fēng)格樣式,例如水墨畫中特有的留白空隙特征出現(xiàn)在物體上的概率是比較大的,如果圖像的其他背景部分出現(xiàn)留白空隙則看起來很不協(xié)調(diào),因此通過引入該模塊能夠?qū)W習(xí)到更特定的水墨特征。
同樣假定輸入內(nèi)容圖像和風(fēng)格圖像分別經(jīng)過VGG-19網(wǎng)絡(luò)編碼器得到內(nèi)容特征xj和風(fēng)格特征yi,{xj,yi}∈C×H×W。其中,C表示特征的通道數(shù),H和W分別表示特征圖的高和寬。張量xj和yi分別被變換成C×N的形式作為該模塊的輸入,其中N=H×W。然后使用兩個卷積核大小為1×1,通道數(shù)為C′=C/8的卷積網(wǎng)絡(luò)分別獲取特征fi和gj,則有
(3)
式中,{Wf,Wg}∈C′×N。然后對fi進(jìn)行轉(zhuǎn)置,并通過張量矩陣相乘的方法和gj相乘得到兩個特征相對位置之間的影響關(guān)系pi,j,并使用Softmax函數(shù)對其進(jìn)行歸一化處理
(4)
式中,μi,j表示對計算xj中j位置的值時yi中i位置的值所占的權(quán)重,接著通過相似的方法得到h(xj), 最終注意力值得輸出為
(5)
式中,h(xj)=Whxj,Wh∈C×N。
2.2.4 解碼器
解碼器采用了和編碼器相對等的網(wǎng)絡(luò)結(jié)構(gòu)對輸入特征進(jìn)行解碼。為了減少偽影,選擇了上采樣加卷積的方式來替代傳統(tǒng)的轉(zhuǎn)置卷積。
為了保留輸入的真實圖像的內(nèi)容結(jié)構(gòu)信息,避免部分特征信息的丟失,在編碼器真實圖像的輸出和解碼器之前增加了跳躍連接來提高圖像遷移的質(zhì)量,如圖1所示。
為了使生成的圖像和目標(biāo)域水墨風(fēng)格的圖像相類似,引入對抗損失來使得生成圖像的分布和真實的水墨圖像分布相匹配。傳統(tǒng)的交叉熵?fù)p失[7]通常導(dǎo)致模型訓(xùn)練不夠充分,從而降低了生成樣本的質(zhì)量。因此,本文選擇最小二乘損失[16]替代交叉熵?fù)p失來進(jìn)一步優(yōu)化生成圖像的質(zhì)量。最小二乘法可以基于離邊界的距離對生成的虛假樣本進(jìn)行懲罰,在一定程度上避免了梯度消失的問題,從而提高生成圖像的質(zhì)量。 給定來自真實圖片數(shù)據(jù)集的樣本x和真實水墨數(shù)據(jù)集的樣本y,經(jīng)過生成器G后得到生成圖像,此時生成器和判別器的對抗性損失表示如下
Ey~pdata(y)[(D(y))2]
(6)
式中,pdata(·)表示對應(yīng)數(shù)據(jù)集的分布;G(x,y)表示生成的圖片;D表示判別器。
循環(huán)一致?lián)p失[9]可以保證每一個輸入圖像都能映射到一個期望的輸出,并且能夠保留圖像的固有特征,保證訓(xùn)練的穩(wěn)定。具體來說,給定任一真實內(nèi)容圖像x和水墨風(fēng)格圖像y,首先經(jīng)過生成器G得到生成圖像G(x,y),該結(jié)果再經(jīng)過生成器F得到重構(gòu)圖像F(G(x,y),x),此時重構(gòu)的圖像應(yīng)盡可能和原來輸入的內(nèi)容圖像保持一致,即F(G(x,y),x)≈x。循環(huán)一致性損失的定義如式(7)所示。
cyc(G,F(xiàn))=Ex~pdata(x)[‖F(xiàn)(G(x,y),x)-x‖1]
(7)
最近的研究[17]表明, 基于預(yù)訓(xùn)練網(wǎng)絡(luò)的感知距離更符合人類對圖像相似度的感知,而傳統(tǒng)的距離度量通常會導(dǎo)致生成圖像產(chǎn)生模糊的效果。為了能夠更好地保留輸入圖像的視覺特征,這里仍然使用預(yù)訓(xùn)練好的VGG-19[5]網(wǎng)絡(luò)作為特征提取器。分別計算重構(gòu)后的圖像和輸入的內(nèi)容圖像經(jīng)過網(wǎng)絡(luò)產(chǎn)生的特征圖之間的差異性,衡量兩者高級語義特征的相似性
per(G,F(xiàn))=
(8)
式中,V指預(yù)訓(xùn)練好的VGG-19網(wǎng)絡(luò);wi表示不同層計算出的差值所賦予的權(quán)重。通過多次實驗,最終選擇“ReLU_1_2”, “ReLU_2_2”,“ReLU_3_3”以及“ReLU_4_3”4層的輸出來計算感知損失,并且將w1、w2、w3和w4分別設(shè)置為1.0/32、1.0/16、1.0/8和1.0/4,得到了較好的結(jié)果。
綜上所述,最終生成器的損失函數(shù)為
(G,F(xiàn))=GAN+αcyc+βper
(9)
判別器的損失函數(shù)為
(D)=-GAN
(10)
式中,α和β是超參數(shù),表示循環(huán)一致?lián)p失和感知損失在整個損失中的權(quán)重占比。
本實驗基于NVIDIA Tesla T4 GPU,網(wǎng)絡(luò)使用Pytorch框架進(jìn)行搭建,利用Python進(jìn)行編程。實驗采用的數(shù)據(jù)集為ChipGAN所提出的中國斑馬水墨畫數(shù)據(jù)集ChipPhi,其中訓(xùn)練集包含1 478張真實照片以及822張水墨風(fēng)格圖片,測試照片為160張。由于數(shù)據(jù)集圖片的尺寸不一致,在實驗中所有圖片被統(tǒng)一處理成256×256大小。模型的訓(xùn)練次數(shù)為200個epoch,批處理大小batch size設(shè)置為1,初始學(xué)習(xí)率設(shè)置為0.000 2。 采用Adam優(yōu)化算法進(jìn)行參數(shù)更新,其中判別器和生成器交替優(yōu)化,權(quán)重參數(shù)α和β分別設(shè)置為10和5。
為了比較不同方法遷移結(jié)果的質(zhì)量,本文采用了FID[18](Fréchet Inception Distance)和KID[19](Kernel Inception Distance)兩個測試指標(biāo)來對生成的圖像進(jìn)行評估。
FID用于衡量真實圖片和生成圖片在特征層次分布的差異。在評估生成樣本的真實性和多樣性方面,F(xiàn)ID與人類的主觀評價相符合。FID的值越低表示生成的圖像質(zhì)量越高。具體來說,通過使用預(yù)訓(xùn)練好的InceptionV3網(wǎng)絡(luò)為輸入的待測圖像生成一個2 048維的特征向量,然后分別計算出所有真實圖像和生成圖像的特征之后,最后由以下計算式獲得兩者之間分布的距離
FID=
‖μx-μy‖2+Tr(∑x+∑y-2(∑x∑y)1/2)
(11)
式中,μx和μy分別表示真實圖像和生成圖像的均值;∑x和∑y分別表示真實圖像和生成圖像的協(xié)方差;Tr表示矩陣的跡。
計算時分別選取ChiGAN和文中模型生成的結(jié)果與對應(yīng)測試集真實水墨風(fēng)格圖片之間的FID值,結(jié)果如表1所示。從中可以看出,所提出的模型FID指標(biāo)要低于ChipGAN,說明該模型生成的圖片更類似于真實的水墨風(fēng)格圖片,并且生成圖片的分布更接近于測試圖片的分布。
表1 FID和KID×100指標(biāo)數(shù)值
KID指標(biāo)用來計算真實圖像和生成圖像的特征之間的最大均值差異(Maximum Mean Discrepancy,MMD)。不同于FID,KID是一個無偏估計量,當(dāng)測試圖像的數(shù)量比特征的維數(shù)更少時,F(xiàn)ID是一個更可靠的指標(biāo)。KID的值越低表示真實圖像和生成圖像之間的視覺相似度越大。同樣采取和FID相同的計算方式,從表1可以看出,該模型的KID值仍然低于ChipGAN,這表明所提出的模型生成的水墨圖片具有更高的視覺質(zhì)量。
為了表明文中模型輕量級的特性,現(xiàn)將提出的模型生成器的參數(shù)量以及完整的訓(xùn)練時間同ChipGAN作了對比,結(jié)果如表2所示。從表中可以直觀地看出該模型在參數(shù)量以及訓(xùn)練時間相較于ChipGAN都有了較大優(yōu)化,其中參數(shù)量減少了大約55%,訓(xùn)練時間降低了60%左右。
本文模型參數(shù)量減少的原因在于所引入的VGG網(wǎng)絡(luò)編碼器、AdaIN以及風(fēng)格注意力模塊。其中VGG網(wǎng)絡(luò)編碼器和AdaIN沒有可學(xué)習(xí)的參數(shù),且風(fēng)格注意力模塊只包含1×1大小的卷積,參數(shù)量也相對較少,因此該模型主要的參數(shù)量集中在解碼器部分。而ChipGAN采用了常規(guī)的編碼器、殘差模塊以及解碼器3個部分,這些都包含了可學(xué)習(xí)的參數(shù),尤其是多個殘差模塊的堆疊參數(shù)量較大,因此參數(shù)量比文中模型更多。另外ChipGAN在訓(xùn)練中還加入了其他預(yù)訓(xùn)練網(wǎng)絡(luò)分支來輔助模型更好地完成水墨風(fēng)格遷移任務(wù),因此訓(xùn)練時間相較于文中模型也更長。
表2 生成模型的參數(shù)量以及模型的訓(xùn)練時間
圖3展示了ChipGAN模型和本文基于GAN的輕量級水墨風(fēng)格遷移模型生成的結(jié)果對比。為了更加直觀地對比,本文使用矩形框體對一些特別區(qū)域進(jìn)行了標(biāo)記。從中可以清晰地看出,相比于ChipGAN,本文模型生成的結(jié)果內(nèi)容更加完整,細(xì)節(jié)更加逼真,例如第1行本文所提出的模型生成馬的頭部更加完整。另外該模型生成的結(jié)果具有更好的水墨筆觸效果以及自然的留白空隙,如圖3的第2行和第4行所示。綜上所述,定性結(jié)果的評估表明本文所提出的模型生成了令人更加滿意的結(jié)果。
(a) (b) (c)圖3 ChipGAN模型和本文模型的定性結(jié)果對比(a)原圖 (b)ChipGAN (c)本文模型Figure 3. Comparison of qualitative results between the ChipGAN and our model(a)The original image (b)ChipGAN (c)The proposed model
本文提出了一種基于GAN的輕量級風(fēng)格遷移模型,在一定程度上解決了中國水墨畫風(fēng)格遷移質(zhì)量不佳的問題。該方法通過使用預(yù)訓(xùn)練的VGG網(wǎng)絡(luò)對內(nèi)容圖片和風(fēng)格圖片進(jìn)行統(tǒng)一編碼,對AdaIN和改進(jìn)的風(fēng)格注意力模塊的結(jié)果進(jìn)行融合,使得模型可以更準(zhǔn)確地學(xué)習(xí)到水墨風(fēng)格特征。另外,引入的感知損失可以修正圖像的細(xì)節(jié)特征,提高了視覺質(zhì)量。從定性和定量結(jié)果來看,本文方法有效地提高了水墨風(fēng)格遷移的質(zhì)量。當(dāng)然,在圖像生成的質(zhì)量方面還有待提升,在未來的工作中將繼續(xù)研究和改進(jìn)該算法。