師永超 朱立軍
(沈陽(yáng)化工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 遼寧省沈陽(yáng)市 110142)
近年來(lái),深度學(xué)習(xí)[1]應(yīng)用越來(lái)越廣,在圖像風(fēng)格遷移上的應(yīng)用也越來(lái)越多。圖像風(fēng)格遷移是指將一幅圖片的風(fēng)格或者輪廓遷移到另一幅圖像當(dāng)中,還要確保原圖像結(jié)構(gòu)不變,最終實(shí)現(xiàn)內(nèi)容與風(fēng)格的完美結(jié)合。最初的GAN 模型是生成的一些隨機(jī)點(diǎn)到輸出圖像,而條件生成對(duì)抗網(wǎng)絡(luò)對(duì)那些生成的點(diǎn)以及原圖像和風(fēng)格或者輪廓圖像映射所生成的模型,最初的GAN 模型失敗的幾率很大,經(jīng)常訓(xùn)練到一半就會(huì)崩潰。
在圖像的藝術(shù)風(fēng)格遷移上,已經(jīng)有較多的研究,如2001年Hertzmann 等[2]提出了一種基于近似最近鄰搜索的方法對(duì)圖像的特征以及輪廓進(jìn)行變換,2015年,Gatys 等[3]提出了一種采用神經(jīng)網(wǎng)絡(luò)的方法,自此深度學(xué)習(xí)開始提上了日程,但是效率方面還是有些欠缺,Johnson 等[4]提出采用之前的目標(biāo)函數(shù),通過(guò)訓(xùn)練神經(jīng)網(wǎng)絡(luò)只需將圖片傳入其中就可以得到自己想要的圖像,并且可以實(shí)現(xiàn)實(shí)時(shí)地進(jìn)行風(fēng)格遷移。
當(dāng)前許多圖像風(fēng)格遷移相關(guān)的工作,都是從損失函數(shù)的角度進(jìn)行研究和改進(jìn),根據(jù)風(fēng)格遷移任務(wù)的特點(diǎn)與難點(diǎn),深度神經(jīng)網(wǎng)絡(luò)的圖像表示與圖像風(fēng)格相關(guān)的特點(diǎn)。本文將從圖像生成器的結(jié)構(gòu)特點(diǎn)作出改變,通過(guò)把圖象風(fēng)格遷移,對(duì)已存在的方法進(jìn)行改進(jìn)。Cyclegan 已經(jīng)實(shí)現(xiàn)不需要風(fēng)格圖就可以進(jìn)行風(fēng)格遷移,所以希望可以有通用的模型將圖像展現(xiàn)出來(lái)。本文所提的方法使模型更加簡(jiǎn)單同時(shí)生成的風(fēng)格遷移效果更清晰更真實(shí)。
CycleGAN 可以實(shí)現(xiàn)在無(wú)監(jiān)督的情況下可以實(shí)現(xiàn)圖像與圖像風(fēng)格的轉(zhuǎn)換,可以讓圖像不用配對(duì)只需傳入兩種圖像即可,結(jié)構(gòu)本身并未做出大的改變。
生成式對(duì)抗網(wǎng)絡(luò)GAN,在2014年Goodfellow 等人[5]開創(chuàng)性地提出了生成式對(duì)抗網(wǎng)絡(luò),就是有一個(gè)生成器一個(gè)判別器這兩個(gè),通過(guò)生成器隨機(jī)生成一些噪聲向量,再通過(guò)判別器判別出圖像的真?zhèn)危瓦@樣不斷地進(jìn)行比較知道分辨不出真假為止。Goodfellow 等人提出的生成式對(duì)抗網(wǎng)絡(luò)Gan 中對(duì)抗關(guān)系如式所示[6]:

其中:x 代表了圖像中的一些數(shù)字,z 為傳送給G 網(wǎng)絡(luò)的噪點(diǎn),G(z)最終的圖形,Pdata(x)為輸出實(shí)際圖像的一些數(shù)據(jù),Pz(x)表示傳送到網(wǎng)絡(luò)G 的一些噪點(diǎn)的分布。

圖1:CycleGan 的學(xué)習(xí)方式

圖2:特征遷移示意圖

圖3:CycleGAN 網(wǎng)絡(luò)構(gòu)成
CycleGAN 在實(shí)現(xiàn)圖像到圖像的轉(zhuǎn)換中,主要是學(xué)習(xí)輸入圖像和輸出圖像之間的映射關(guān)系[7]。杜振龍等人[8]改進(jìn)的模型在圖像遷移過(guò)程中大部分都需要訓(xùn)練的樣本成對(duì)的出現(xiàn)就是一個(gè)原圖像和風(fēng)格圖像,并且還需要一些標(biāo)簽,但大部分情況很難實(shí)現(xiàn)。對(duì)于此,Zhu 等人[9]提出了CycleGAN 結(jié)構(gòu),可以實(shí)現(xiàn)任意兩個(gè)圖像之間的風(fēng)格遷移,不需要一些標(biāo)簽。該結(jié)構(gòu)擁有兩個(gè)G 與F 和Dx 與Dy,也就是生成式和判別式這兩個(gè)結(jié)構(gòu),具體如圖1所示。
在CycleGan 中,給定兩個(gè)數(shù)據(jù)X 和Y,對(duì)應(yīng)關(guān)系G:X→Y 和F:Y→X,判別的模型分別是Dx 與Dy。映射關(guān)系G:X→Y 的目標(biāo)函數(shù)定義如下所示:

圖4:生成器結(jié)構(gòu)

圖5:鑒別器結(jié)構(gòu)

圖6:CycleGAN 生成器結(jié)構(gòu)圖

圖7:結(jié)合深度特征遷移的生成器結(jié)構(gòu)圖

同理,映射關(guān)系 F:Y→X 的目標(biāo)函數(shù)定義如下所示:

其損失函數(shù)定義如下所示:

Cycle GAN 的總目標(biāo)函數(shù)定義如下所示:

本文設(shè)計(jì)的深度特征遷移模型包含三個(gè)部分:1、編碼器;2、解碼器;3、特征遷移模塊。在原圖像和風(fēng)格圖像當(dāng)中,編碼器部分與解碼器共享其中的一些,由兩個(gè)域各自特征遷移模塊學(xué)習(xí)域之間的特征表示遷移。如圖2所示。

圖8:圖像風(fēng)格遷移圖像

圖9:梵高油畫風(fēng)格遷移效果

圖10:梵高油畫風(fēng)格遷移效果細(xì)節(jié)
CycleGAN 為了實(shí)現(xiàn)沒有標(biāo)簽的原圖像與風(fēng)格圖像更好的結(jié)合在一起,根據(jù)遷移的機(jī)制,從風(fēng)格圖像的特征結(jié)合生成器模型進(jìn)行一些改變。CycleGAN 網(wǎng)絡(luò)結(jié)構(gòu)如圖。由編碼器、轉(zhuǎn)換器和解碼器組成,如圖3所示。

表1:結(jié)果比較

圖11:頭發(fā)特征遷移
生成器結(jié)構(gòu)(圖4):
(1)編碼器:將圖像依次輸入到神經(jīng)網(wǎng)絡(luò)當(dāng)中,提取到不同種類的風(fēng)格。第一個(gè)卷積層的濾波器個(gè)數(shù)為64,輸入到編碼器時(shí)的尺寸為256×256,最終擁有256 個(gè)64×64 的特征向量
(2)轉(zhuǎn)換器:將圖像從一個(gè)領(lǐng)域中轉(zhuǎn)換到另一個(gè)領(lǐng)域中。
(3)解碼器:解碼器就是編碼器的逆過(guò)程。從特征向量中還原出低級(jí)特征的工作,等待圖像生成即可。如圖4所示。
(4)鑒別器:鑒別器將每一張圖片預(yù)測(cè)為原始的圖還是所生成的圖像。如圖5所示。
CycleGAN 的生成器結(jié)構(gòu)沿用了快速神經(jīng)風(fēng)格遷移[5]中使用的殘差網(wǎng)絡(luò),有下采樣層以及上采樣層外帶一些殘差模塊。生成器結(jié)構(gòu)當(dāng)中,采用兩個(gè)步長(zhǎng)為2 的下采樣卷積層、9 個(gè)殘差模塊[11]、以及BN(Batch Normalization)層[8],卷積層和ReLU 層[12]結(jié)構(gòu)如圖6所示。
為了將深度特征遷移方法融合到CycleGAN 中,我們將生成器的下采樣卷積層與殘差模塊中的前三個(gè)作為編碼器,后三個(gè)殘差模塊與上采樣卷積層作為解碼器,中間三個(gè)殘差模塊作為特征遷移模塊。Gx 與Gy 可以共享編碼器與解碼器[1]。修改后的生成器結(jié)構(gòu)如圖7所示。
本文實(shí)驗(yàn)中使用的操作系統(tǒng)為Ubuntu 14.04 位操作系統(tǒng),內(nèi)存16G,四核Inter CPU I7,顯卡為NVIDIA GTX 2070,使用Tensorflow-gpu1.5 版本深度學(xué)習(xí)框架進(jìn)行實(shí)驗(yàn)。本文所使用的基于改進(jìn)CycleGAN 的圖像風(fēng)格遷移算法在網(wǎng)絡(luò)訓(xùn)練過(guò)程選用1500 張素描圖像作為圖像風(fēng)格數(shù)據(jù),以及1000 張梵高油畫,在人臉頭發(fā)特征遷移以及梵高油畫特征分別進(jìn)行遷移。訓(xùn)練集中包含1500 張建筑風(fēng)格的圖像,以及一些素描圖。模型采用隨機(jī)梯度優(yōu)化算法對(duì)參數(shù)進(jìn)行優(yōu)化,最開始的學(xué)習(xí)率設(shè)置為1e-5,批次大小為1。效果對(duì)比如圖8所示。
圖像風(fēng)格遷移只是對(duì)圖像的一些外觀就比如說(shuō)是色彩,輪廓進(jìn)行了改變,并且在從圖像的整體來(lái)看底層色彩也發(fā)生了不小的變化。Vangogh2photo 數(shù)據(jù)集擁有兩種圖形,一種是梵高的作品,還有一種是大自然的風(fēng)景圖,但是兩者沒有一一對(duì)應(yīng)關(guān)系。圖9是本章的方法在該數(shù)據(jù)集上的結(jié)果。從圖10可以看到更加細(xì)致一點(diǎn)的改變。因此本文所做的一種基于改進(jìn)的CycleGAN 的方法不僅讓圖像從底層色彩發(fā)生了變化,并且在外觀的輪廓也擁有了梵高的一些特色,就目前來(lái)說(shuō),這種方法擁有一些通用性,也可以擴(kuò)展到其他的應(yīng)用上面。
如圖11所示,本文搜集了1000 張公開的頭發(fā)數(shù)據(jù)集,從實(shí)驗(yàn)結(jié)果可以看到,通過(guò)改進(jìn)的方法,生成的頭發(fā)特征效果不錯(cuò),頭發(fā)、臉龐等圖像的看上去更加真實(shí),人物并沒有大的變化,從表情、神態(tài)、臉龐五官都有著不錯(cuò)的效果,證明改進(jìn)的深度特征遷移方法也可以通用一些其它的遷移圖。
生成對(duì)抗網(wǎng)絡(luò)生成圖像,其本質(zhì)還是一個(gè)圖像處理問題,當(dāng)然可以用評(píng)價(jià)圖片質(zhì)量的標(biāo)準(zhǔn)來(lái)衡量生成圖片的質(zhì)量,常用的評(píng)價(jià)圖像質(zhì)量的方法有主觀評(píng)價(jià)和客觀評(píng)價(jià)兩種[12]。常見的客觀評(píng)價(jià)指標(biāo)有均方差(mean squared error,MSE)、峰值信噪比(peak signal to noise ratio,PSNR)和架構(gòu)相似性指標(biāo)(structual similarit,SSIM)[14],其數(shù)學(xué)表達(dá)式如下:

圖像的SSIM 值越接近 1.0,表示原圖像和目標(biāo)圖像更接近。
本文對(duì)比 WGAN、CycleGAN 和本文設(shè)計(jì)的 CycleGAN 生成圖片的質(zhì)量,得到表1。
從表1可知在素描類型的風(fēng)格遷移實(shí)驗(yàn)結(jié)果中本文所提的改進(jìn)型CycleGAN方法的SSIM和PSNR均高于其他方法。圖像質(zhì)量更優(yōu)。
從結(jié)果來(lái)看,本文提出的一種深度特征遷移改進(jìn)的生成器,在圖像風(fēng)格遷移過(guò)程中,和原始的WGAN、CycleGAN 相比,所生成的圖像的PSNR 值平均提高了4.81%,SSIM 值均提高了約7.74%,從頭發(fā)特征遷移以及梵高的油畫當(dāng)中來(lái)看,本文所設(shè)計(jì)的模型具有一定的通用性,圖片生成的質(zhì)量也有所提升,實(shí)驗(yàn)結(jié)果表明可以試用一些其他的模型,從而減小了工作所需要的時(shí)間,并且從訓(xùn)練來(lái)看此模型較之前的相比,模型更加穩(wěn)定一些,圖像的真實(shí)性方面以及豐富性得到了一些提高,讓人觀測(cè)上去更加真實(shí)。本文只是對(duì)這幾種風(fēng)格圖進(jìn)行了實(shí)驗(yàn),如果有條件的話可以嘗試一些其他風(fēng)格的效果展示。