徐志鵬,盧官明,羅燕晴
(南京郵電大學(xué) 通信與信息工程學(xué)院,江蘇 南京 210003)
圖像風(fēng)格轉(zhuǎn)換是指在保留原圖像內(nèi)容信息的基礎(chǔ)上生成具有新風(fēng)格的圖像的一種技術(shù),在藝術(shù)創(chuàng)作和社交娛樂等方面有著潛在的應(yīng)用前景,受到學(xué)術(shù)界和工業(yè)界的高度關(guān)注。Gatys L A等人在2016年提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的風(fēng)格轉(zhuǎn)換方法[1],通過預(yù)訓(xùn)練模型VGG-19[2]對圖像的內(nèi)容特征和風(fēng)格特征進(jìn)行剝離,實現(xiàn)圖像風(fēng)格轉(zhuǎn)換。通過實驗,Gatys等人發(fā)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)可以實現(xiàn)圖像內(nèi)容和風(fēng)格的分離,圖像風(fēng)格轉(zhuǎn)換可以取得較好的效果,但是生成圖像的過程非常耗時,并且訓(xùn)練好的生成模型無法應(yīng)用在其他風(fēng)格轉(zhuǎn)換的任務(wù)上,推廣應(yīng)用受限制。Goodfellow I等人開創(chuàng)性地提出生成對抗網(wǎng)絡(luò)[3](generative adversarial networks,GAN),對圖像風(fēng)格轉(zhuǎn)換領(lǐng)域有著重大的意義,相繼出現(xiàn)了基于GAN的風(fēng)格轉(zhuǎn)換模型,主要包括Pix2Pix[4]、CycleGAN[5]和StarGAN[6]等模型。其中,Pix2Pix和CycleGAN模型適用于兩個不同風(fēng)格圖像域之間的轉(zhuǎn)換,而StarGAN模型則可以實現(xiàn)多個圖像域之間的風(fēng)格轉(zhuǎn)換。Pix2Pix使用U-Net[7]模型,有效地保留不同尺度的特征信息,提升生成圖像的細(xì)節(jié)效果,適合應(yīng)用于特定的圖像風(fēng)格轉(zhuǎn)換任務(wù)。CycleGAN模型通過添加循環(huán)一致性損失函數(shù),成功地解決了缺少成對的訓(xùn)練圖像的問題。StarGAN模型解決了多個圖像域間的風(fēng)格轉(zhuǎn)換的難題,只需要訓(xùn)練一個生成器模型就可以實現(xiàn)多個圖像域間的風(fēng)格轉(zhuǎn)換。
由于人臉圖像具有較多的細(xì)節(jié)信息,采用原CycleGAN模型很難很好地處理人臉圖像的細(xì)節(jié)信息,導(dǎo)致生成圖像的視覺效果較差。文中針對人臉?biāo)孛鑸D像風(fēng)格轉(zhuǎn)換任務(wù),在CycleGAN的基礎(chǔ)上,通過改進(jìn)生成器的網(wǎng)絡(luò)結(jié)構(gòu),更好地保留人臉圖像的細(xì)節(jié)信息,生成高質(zhì)量的圖像。實驗結(jié)果表明,使用改進(jìn)CycleGAN模型可以得到更高質(zhì)量的圖像,驗證了該方法的有效性。
GAN是由生成器G(generator)和鑒別器D(discriminator)共同構(gòu)成的深度學(xué)習(xí)模型,生成器G負(fù)責(zé)學(xué)習(xí)訓(xùn)練圖像集的概率分布規(guī)律并生成具有相似概率分布規(guī)律的圖像;鑒別器D負(fù)責(zé)判別輸入圖像是生成的圖像還是訓(xùn)練圖像。通過讓生成器G和鑒別器D進(jìn)行對抗訓(xùn)練,使生成器G生成的圖像具有與訓(xùn)練圖像相似的風(fēng)格,鑒別器D判別生成的圖像和訓(xùn)練圖像的能力也得到不斷提高,最終使得生成器G和鑒別器D達(dá)到一種穩(wěn)定平衡狀態(tài),又稱納什均衡。GAN的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 GAN網(wǎng)絡(luò)結(jié)構(gòu)
隨機噪聲z是生成器G的輸入,x是訓(xùn)練圖像,G(z)表示生成圖像,D(G(z))表示鑒別器D判定生成的圖像G(z)是訓(xùn)練圖像的概率,D(x)表示鑒別器D判定圖像x是訓(xùn)練圖像的概率。
目前,GAN越來越受到學(xué)術(shù)界和工業(yè)界的重視,許多基于GAN的衍生模型已經(jīng)被廣泛應(yīng)用于圖像風(fēng)格轉(zhuǎn)換[8]、超分辨率[9]、圖像修復(fù)[10,11]等領(lǐng)域,并不斷向著其他領(lǐng)域繼續(xù)延伸,具有廣闊的發(fā)展前景[12]。
CycleGAN是由Zhu J Y等人提出的風(fēng)格轉(zhuǎn)換模型,該模型包含兩個生成器和兩個鑒別器,通過引入循環(huán)一致性損失函數(shù),可以在缺少成對訓(xùn)練圖像的條件下實現(xiàn)兩個不同風(fēng)格的圖像域之間的轉(zhuǎn)換。CycleGAN模型結(jié)構(gòu)如圖2所示。
圖2 CycleGAN模型結(jié)構(gòu)
1.2.1 損失函數(shù)
CycleGAN的損失函數(shù)是由對抗性損失和循環(huán)一致性損失兩部分共同組成。
CycleGAN模型擁有兩個生成器和兩個鑒別器,分別實現(xiàn)A圖像域→B圖像域的風(fēng)格轉(zhuǎn)換和B圖像域→A圖像域的風(fēng)格轉(zhuǎn)換,所以CycleGAN的對抗性損失將由兩部分構(gòu)成,將A圖像域→B圖像域的風(fēng)格轉(zhuǎn)換的對抗性損失記作LA2B,B圖像域→A圖像域的風(fēng)格轉(zhuǎn)換的對抗性損失記作LB2A。
LA2B=Eb~pdata(b)[logDB(b)]+Ea~pdata(a)[log(1-
DB(GA2B(a)))]
(1)
LB2A=Ea~pdata(a)[logDA(a)]+Eb~pdata(b)[log(1-
DA(GB2A(b)))]
(2)
式中,pdata(a)和pdata(b)分別表示A圖像域的概率分布和B圖像域的概率分布。
CycleGAN的對抗性損失LGAN如下:
LGAN=LA2B+LB2A
(3)
LSGAN[13]證明采用最小二乘損失函數(shù)可以加速模型收斂速度,提高生成圖像的質(zhì)量,因此在CycleGAN的實際訓(xùn)練中,將其對抗性損失LGAN中的對數(shù)運算優(yōu)化成平方運算:
LA2B=Eb~pdata(b)[DB(b)]2+Ea~pdata(a)[1-
DB(GA2B(a))]2
(4)
LB2A=Ea~pdata(a)[DA(a)]2+Eb~pdata(b)[1-
DA(GB2A(b))]2
(5)
通過引入對抗性損失函數(shù),使得鑒別器DA無法區(qū)分生成圖像GA2B(a)和B圖像域的概率分布,鑒別器DB無法區(qū)分生成圖像GB2A(b)和A圖像域的概率分布。
CycleGAN總的損失函數(shù)LCycleGAN如下:
LCycleGAN=LGAN+λ×LCycle
(7)
式(7)中,參數(shù)λ為循環(huán)一致性損失的權(quán)重,控制著抗性損失和循環(huán)一致性損失的相對重要性。
1.2.2 生成器和鑒別器的網(wǎng)絡(luò)結(jié)構(gòu)
圖3 生成器網(wǎng)絡(luò)結(jié)構(gòu)
CycleGAN的生成器網(wǎng)絡(luò)采用殘差塊結(jié)構(gòu),通過在深層網(wǎng)絡(luò)上添加一條直連路徑,確保了梯度信息能夠有效地在深層網(wǎng)絡(luò)中進(jìn)行傳遞,成功地解決深層網(wǎng)絡(luò)中存在的梯度消失問題,改善深層網(wǎng)絡(luò)的性能。反卷積(deconvolution)[16]又被稱為轉(zhuǎn)置卷積,是卷積的逆運算,用于圖像生成。
CycleGAN的鑒別器使用PatchGAN[4]結(jié)構(gòu),其網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4 鑒別器網(wǎng)絡(luò)結(jié)構(gòu)
不同于普通鑒別器,PatchGAN的輸出是一個N*N的矩陣,矩陣中的每一個元素值代表著鑒別器對輸入圖像中的每一個patch的判別結(jié)果,再將矩陣的均值作為整幅圖像的最終判別結(jié)果。這種結(jié)構(gòu)的鑒別器具有更少的參數(shù),可以縮短訓(xùn)練時長,并且適用于任意尺寸的圖像,有效地捕捉圖像局部的高頻特征,使生成的圖像保持高分辨率和高細(xì)節(jié)。
注意力機制(attention mechanism,AM)是一種改進(jìn)神經(jīng)網(wǎng)絡(luò)的方法,在近些年得到迅速發(fā)展,出現(xiàn)了許多基于注意力機制的深度學(xué)習(xí)網(wǎng)絡(luò),極大地豐富了神經(jīng)網(wǎng)絡(luò)的表示能力。注意力機制主要是通過添加權(quán)重的方式,強化重要程度高的特征并弱化重要程度較低的特征,從而改善神經(jīng)網(wǎng)絡(luò)模型的性能。注意力機制得到的權(quán)重可以作用在原始圖上[17-18],也可以作用在特征圖上[19]。目前,注意力機制已經(jīng)在圖像分類[20-21]和圖像分割[22]等計算機視覺任務(wù)中取得較好的效果。
從注意力域的角度來分析,可以將注意力機制分為三類:空間域(spatial domain)、通道域(channel domain)和混合域(mixed domain)??臻g域注意力機制的代表是spatial transformer networks(STN)[23]。STN通過圖像進(jìn)行空間變換,提取出關(guān)鍵信息,降低圖像中無用信息對模型訓(xùn)練的干擾,從而提升網(wǎng)絡(luò)的性能??臻g域注意力機制主要適用于對輸入圖像的處理。通道域注意力機制的代表是squeeze-and-excitation networks(SENet)[24]。SENet能夠計算出特征圖的每一個特征通道的權(quán)重值,并實現(xiàn)特征通道的權(quán)重分配,從而增強重要特征對當(dāng)前任務(wù)所起的作用。將空間域注意力機制和通道域注意力機制進(jìn)行組合,即混合域注意力機制,可以對特征圖中每個元素同時實現(xiàn)空間域和通道域的注意力機制。
文中提出的改進(jìn)CycleGAN模型主要是將空間域和通道域注意力機制用于生成器網(wǎng)絡(luò)中,所采用的空間域和通道域注意力機制的結(jié)構(gòu)如圖5所示。
假設(shè)空間域和通道域注意力機制輸入的特征圖的尺寸均為c*w*h,中間各層的運算結(jié)果如表1和表2所示。
(a)空間域 (b)通道域
表1 空間域注意力機制的各層輸出結(jié)果
表2 通道域注意力機制的各層輸出結(jié)果
基于注意力機制的殘差塊(AM殘差塊)模型結(jié)構(gòu)如圖6所示。AM殘差塊模型結(jié)合殘差模塊和注意力機制的優(yōu)點,既可以緩解在深度神經(jīng)網(wǎng)絡(luò)中增加網(wǎng)絡(luò)深度帶來的梯度消失問題,又可以在只需要增加較少的計算量的情況下減少無用信息對模型的干擾,提升網(wǎng)絡(luò)的表現(xiàn)力,改善生成圖像的質(zhì)量。
圖6 AM殘差塊
基于注意力機制的CycleGAN生成器網(wǎng)絡(luò)結(jié)構(gòu)如圖7所示。
圖7 基于注意力機制的CycleGAN生成器網(wǎng)絡(luò)結(jié)構(gòu)
文中在CycleGAN的生成器網(wǎng)絡(luò)中添加跳躍連接機制,實現(xiàn)將編碼器中卷積運算得到的特征圖傳遞到解碼器中,使得解碼器可以學(xué)習(xí)更多不同尺度的特征信息,改善生成的人臉?biāo)孛鑸D像質(zhì)量。文中提出的基于注意力機制的CycleGAN的鑒別器采用圖4所示的PatchGAN網(wǎng)絡(luò)結(jié)構(gòu)。
實驗的硬件平臺為Intel Xeon CPU E5-2650 v4,使用NVIDIA GTX 1080 GPU進(jìn)行加速處理。實驗選取從網(wǎng)絡(luò)上收集到的300張人臉圖像和CUFSF數(shù)據(jù)集[25-26]中1 194張素描人臉圖像作為訓(xùn)練數(shù)據(jù)集;選取CUFS數(shù)據(jù)集[26]中88張學(xué)生人臉圖像作為測試圖像;將所有訓(xùn)練圖像和測試圖像的大小縮放為256*256像素。優(yōu)化器采用性能較好的Adam算法,參數(shù)beta1和beta2分別設(shè)置為0.5和0.999,學(xué)習(xí)率lr設(shè)置為0.002。
如圖8所示,當(dāng)網(wǎng)絡(luò)模型進(jìn)行40個epoch迭代訓(xùn)練之后,已經(jīng)能夠?qū)崿F(xiàn)通過人臉彩色照片生成黑白人臉圖像,初具素描風(fēng)格,但是生成圖像的邊緣比較模糊;當(dāng)進(jìn)行60個epoch迭代訓(xùn)練之后,生成圖像邊緣逐漸清晰,具有較明顯的素描風(fēng)格;當(dāng)進(jìn)行80個epoch迭代訓(xùn)練之后,可以生成較為逼真的人臉?biāo)孛鑸D像。通過對比發(fā)現(xiàn),文中提出的改進(jìn)CycleGAN模型生成的圖像比CycleGAN和DualGAN生成的圖像更加清晰,在圖像邊緣處處理地更好,更好地保留了人臉五官特征和表情等有效信息。
(a)epoch=40
(b)epoch=60
(c)epoch=80
當(dāng)今網(wǎng)絡(luò)社交媒體擁有著巨大的用戶量,如果可以發(fā)布一些關(guān)于圖像風(fēng)格轉(zhuǎn)換的手機端應(yīng)用程序,讓用戶充分發(fā)揮藝術(shù)創(chuàng)造力,設(shè)計屬于自己的特有風(fēng)格的作品,這會讓圖像風(fēng)格轉(zhuǎn)換技術(shù)走進(jìn)人們?nèi)粘I?。但是,現(xiàn)階段的圖像風(fēng)格轉(zhuǎn)換領(lǐng)域仍然存在一些問題。首先,目前主流的基于深度學(xué)習(xí)的圖像風(fēng)格轉(zhuǎn)換算法,存在模型的參數(shù)數(shù)量過多,訓(xùn)練耗時較長。其次,很難將需要進(jìn)行風(fēng)格轉(zhuǎn)換的部分從原圖中分割出來,無法實現(xiàn)局部圖像風(fēng)格化,導(dǎo)致一些生成圖像質(zhì)量較低。
文中主要對CycleGAN的生成器模型進(jìn)行改進(jìn),將空間域和通道域注意力機制用于生成器網(wǎng)絡(luò)中,減小無用信息對生成器的影響,加強生成器對輸入圖像中的人臉重要部分的學(xué)習(xí),提升生成的人臉?biāo)孛鑸D像的質(zhì)量。