余英東,楊 怡,林 瀾
(同濟(jì)大學(xué)電子與信息工程學(xué)院,上海201804)
(*通信作者電子郵箱1013928041@qq.com)
圖像風(fēng)格轉(zhuǎn)換也稱圖像風(fēng)格遷移,作為最近圖像處理方面一個新興的研究方向,得到了廣泛的關(guān)注。圖像風(fēng)格轉(zhuǎn)換旨在保證原圖像語義內(nèi)容不變的前提下,藝術(shù)化地轉(zhuǎn)換成不同的風(fēng)格,從而達(dá)到藝術(shù)再創(chuàng)作等目的。
雖然只是將圖像的風(fēng)格進(jìn)行轉(zhuǎn)變,但是風(fēng)格是一個相當(dāng)抽象的概念。不僅照片與繪畫的風(fēng)格截然不同,不同畫家,甚至同一畫家在不同時期繪畫的風(fēng)格都不一樣。如何找到計算機(jī)能夠運(yùn)算并處理的方式,準(zhǔn)確地描述出圖像的風(fēng)格,是這個方向的難點(diǎn)。
早期的圖像風(fēng)格轉(zhuǎn)換被設(shè)定為紋理合成[1]問題,即在限制紋理合成的同時,從源圖像合成紋理以保留原圖像的語義內(nèi)容。大量的非參數(shù)算法被提出以用于紋理合成,同時使用不同的方法來保留目標(biāo)圖像的語義結(jié)構(gòu)。例如可以通過重新采樣給定源紋理來合成新的自然紋理[2-5]。文獻(xiàn)[4]中引入了一個輸入輸出圖像的對應(yīng)映射,其中包括目標(biāo)圖像的圖像強(qiáng)度等特征,來約束紋理合成過程。而Hertzmann 等[6]使用圖像類比將輸出風(fēng)格化圖像轉(zhuǎn)移到目標(biāo)圖像上形成了早期的圖像風(fēng)格轉(zhuǎn)換。Ashikhmin[7]認(rèn)為這個過程中,想要轉(zhuǎn)換的風(fēng)格是更加重要的,因此他專注于傳輸高頻紋理信息,同時保留目標(biāo)圖像的粗略尺度與語義。Lee等[8]改進(jìn)了上述算法,通過邊緣方向信息來控制紋理的轉(zhuǎn)換。
自2006年深度學(xué)習(xí)[9]提出以來,在圖像處理的許多方面,基于深度學(xué)習(xí)的算法已經(jīng)成功超越了傳統(tǒng)的機(jī)器學(xué)習(xí)算法。利用深度學(xué)習(xí)來把控圖像的風(fēng)格,結(jié)合利用損失函數(shù)的收斂來進(jìn)行圖像風(fēng)格轉(zhuǎn)換的研究進(jìn)入了人們的視野。由Gatys等[10]提出利用深度網(wǎng)絡(luò)等計算出的圖像Gram 矩陣在圖像風(fēng)格的表達(dá)方面效果良好,并提出了基于卷積神經(jīng)網(wǎng)絡(luò)的圖像風(fēng)格轉(zhuǎn)換算法,這個算法的核心思想激起了圖像風(fēng)格轉(zhuǎn)換研究的熱潮。Johnson 等[11]和Ulyanov 等[12]各自訓(xùn)練了一種前饋生成網(wǎng)絡(luò),用于快速的風(fēng)格轉(zhuǎn)換,但犧牲了轉(zhuǎn)換的效果。而為了改善網(wǎng)絡(luò)的風(fēng)格轉(zhuǎn)換效果,涌現(xiàn)了許多新的研究工作,Selim 等[13]利用空間約束來限制風(fēng)格轉(zhuǎn)換區(qū)域,從而提升轉(zhuǎn)換目的性,避免轉(zhuǎn)換不必要的區(qū)域;Li等[14]專門訓(xùn)練了一個利用WCT(Whiten-Color Transform)來進(jìn)行照片的風(fēng)格轉(zhuǎn)換,但在繪畫方面效果不佳;Shen等[15]提出利用元網(wǎng)絡(luò)(Meta network)來進(jìn)行轉(zhuǎn)換過程,能夠大幅度降低轉(zhuǎn)換耗時,但是魯棒性不強(qiáng),效果較為一般;而Gu等[16]則將統(tǒng)計學(xué)加入進(jìn)來,利用特征的統(tǒng)計學(xué)特征從而利用解碼器來重構(gòu)圖像來達(dá)到風(fēng)格轉(zhuǎn)換,但是這一方法對原圖的內(nèi)容會有改變,生成圖質(zhì)量不夠穩(wěn)定。Chen 等[17]轉(zhuǎn)換思路提出了Stylebank 算法,通過訓(xùn)練高斯噪聲收斂來達(dá)到生成新圖像的目的。盡管該方法一定程度上改進(jìn)了效果,但是每張圖片的訓(xùn)練都要經(jīng)歷冗長的訓(xùn)練使得網(wǎng)絡(luò)效率相對很低。
現(xiàn)有的圖像風(fēng)格轉(zhuǎn)換算法在網(wǎng)絡(luò)的算法與訓(xùn)練上下了很多功夫,增加了各種限制條件來優(yōu)化網(wǎng)絡(luò)訓(xùn)練,利用卷積神經(jīng)網(wǎng)絡(luò)為主體轉(zhuǎn)換網(wǎng)絡(luò),進(jìn)行了大量的卷積運(yùn)算,網(wǎng)絡(luò)的訓(xùn)練過程過于冗長;另一方面,在進(jìn)行網(wǎng)絡(luò)調(diào)試與訓(xùn)練的過程中比較盲目,難以發(fā)現(xiàn)輸入圖像特征對于輸出圖像效果好壞的影響。本文在Johnson 等提出的前饋快速圖像風(fēng)格轉(zhuǎn)換網(wǎng)絡(luò)中受到啟發(fā),結(jié)合Gatys 所提出的Gram 矩陣對于圖像風(fēng)格的優(yōu)良表達(dá),提出利用預(yù)訓(xùn)練VGG(Visual Geometry Group)網(wǎng)絡(luò)[18],結(jié)合殘差網(wǎng)絡(luò)(Residual Network)[19]的前饋圖像風(fēng)格轉(zhuǎn)換網(wǎng)絡(luò)算法,同時基于輸入圖像的紋理特征分析來探索輸入圖像對于輸出效果的影響,從而調(diào)整網(wǎng)絡(luò)參數(shù)提升圖像的轉(zhuǎn)換效果。相比于早期的紋理轉(zhuǎn)換,本文利用深度學(xué)習(xí)的優(yōu)點(diǎn),提取圖像更深層次的特征來表達(dá)圖像的內(nèi)容以及風(fēng)格特征。不同于傳統(tǒng)的利用卷積神經(jīng)網(wǎng)絡(luò)的算法,本文在注重轉(zhuǎn)換效率的同時,通過重用已訓(xùn)練的風(fēng)格數(shù)據(jù),從而提高每次圖像轉(zhuǎn)換的速度。通過風(fēng)格圖與內(nèi)容圖的紋理特征分析,發(fā)現(xiàn)了風(fēng)格圖的信息熵、內(nèi)容圖的高階矩對于轉(zhuǎn)換效果的影響作用,通過改變網(wǎng)絡(luò)訓(xùn)練參數(shù)來提升轉(zhuǎn)換效果,并發(fā)現(xiàn)對于高階矩更低的內(nèi)容圖,網(wǎng)絡(luò)能獲得更好的輸出結(jié)果。
實驗表明,本文所提出的算法與表現(xiàn)較好的Gatys 算法、Stylebank算法相比,利用預(yù)訓(xùn)練網(wǎng)絡(luò)來進(jìn)行損失函數(shù)運(yùn)算,減少數(shù)據(jù)量,加快訓(xùn)練速度;基于圖像紋理特征分析能夠更有效、更有針對性地改善網(wǎng)絡(luò)訓(xùn)練過程。整體網(wǎng)絡(luò)在風(fēng)格轉(zhuǎn)換的效果上有明顯改善,在轉(zhuǎn)換的速度上獲得顯著提高。
自深度學(xué)習(xí)提出以來,在圖像處理方面,涌現(xiàn)出大量的網(wǎng)絡(luò),如前饋神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)、對抗生成網(wǎng)絡(luò)等。各種網(wǎng)絡(luò)在圖像的處理上都表現(xiàn)出強(qiáng)大的性能,但在訓(xùn)練效率、擅長領(lǐng)域不盡相同。圖像風(fēng)格轉(zhuǎn)換不同于傳統(tǒng)的圖像分類,選取合適的網(wǎng)絡(luò)至關(guān)重要。
Gatys 提出的算法中,將卷積神經(jīng)網(wǎng)絡(luò)與預(yù)訓(xùn)練的網(wǎng)絡(luò)結(jié)合,包括5 個卷積層與4 個池化層,通過最小化重構(gòu)特征損失以及基于預(yù)訓(xùn)練網(wǎng)絡(luò)得到的風(fēng)格特征損失來優(yōu)化網(wǎng)絡(luò),來進(jìn)行風(fēng)格的遷移。雖然他的方法得到了較好的效果,但是基本思想與早期紋理合成相同,優(yōu)化過程中每一個步驟都需要前向和后向通過預(yù)訓(xùn)練網(wǎng)絡(luò),導(dǎo)致計算量特別龐大。而改進(jìn)的相關(guān)算法中,如Stylebank 利用高斯噪聲迭代收斂來減少計算量,縮短訓(xùn)練時間,但是效果上不及前者。
為了能夠在保證轉(zhuǎn)換效果,又一定程度上縮短網(wǎng)絡(luò)的訓(xùn)練時間,本文選擇訓(xùn)練一種前饋網(wǎng)絡(luò)來用于風(fēng)格轉(zhuǎn)換,利用預(yù)訓(xùn)練好的VGG 網(wǎng)絡(luò)參數(shù)計算風(fēng)格損失以及內(nèi)容損失。轉(zhuǎn)換網(wǎng)絡(luò)采用深度殘差網(wǎng)絡(luò),充分利用殘差網(wǎng)絡(luò)容易優(yōu)化、不易發(fā)生梯度消失的特性,優(yōu)化網(wǎng)絡(luò)訓(xùn)練過程。前饋網(wǎng)絡(luò)訓(xùn)練過程不需要通過2 次預(yù)訓(xùn)練網(wǎng)絡(luò),降低了計算量,并且每經(jīng)過一定的訓(xùn)練次數(shù),保存網(wǎng)絡(luò)參數(shù)從而能夠在訓(xùn)練完一種風(fēng)格后保存網(wǎng)絡(luò)參數(shù),在進(jìn)行風(fēng)格轉(zhuǎn)換時不需要重新訓(xùn)練網(wǎng)絡(luò)。
本文使用預(yù)訓(xùn)練的VGG-19 網(wǎng)絡(luò)來計算轉(zhuǎn)換后圖像的內(nèi)容損失以及風(fēng)格損失。當(dāng)圖像經(jīng)過了VGG-19 網(wǎng)絡(luò)再重構(gòu),從越高層次網(wǎng)絡(luò)獲得重構(gòu)圖像,由于越高層網(wǎng)絡(luò)將得到圖像更深層次的特征,將只保留圖像內(nèi)容與整體空間結(jié)構(gòu),但紋理、形狀、顏色等將無法復(fù)原。
圖1 根據(jù)不同層數(shù)據(jù)進(jìn)行圖像重構(gòu)示例Fig. 1 Image reconstruction examples based on data of different layers
為了獲得圖像風(fēng)格的特征,本文采用Gatys 所提出的Gram 矩陣來作為計算依據(jù)。Gram 矩陣是內(nèi)積空間的一個由內(nèi)積組成的對稱矩陣,它能夠給出不同濾波器之間的相關(guān)性。Gram矩陣公式如下,其中i,j為特征圖序號,l為網(wǎng)絡(luò)層數(shù):
通過得到預(yù)訓(xùn)練VGG 網(wǎng)絡(luò)中多個層的特征相關(guān)性,可以獲得輸入風(fēng)格圖像的靜態(tài)多尺度表示,從而能夠捕獲其紋理特征,而非全局布置。這樣一來,就能可視化進(jìn)行了風(fēng)格轉(zhuǎn)換后得到的重構(gòu)圖像與給定的風(fēng)格圖像之間風(fēng)格特征的信息。圖2 給出了VGG 網(wǎng)絡(luò)的其中2 層對于風(fēng)格重構(gòu)的示例,在實驗中本文將選取多層的數(shù)據(jù)作為風(fēng)格圖風(fēng)格表示的依據(jù),然后通過最小化風(fēng)格圖的Gram 矩陣與生成圖的Gram 矩陣之間的均方距離來進(jìn)行網(wǎng)絡(luò)的訓(xùn)練,遵循公式如下:
圖2 不同層風(fēng)格重構(gòu)示例Fig. 2 Different layer style reconstruction examples
最終,在網(wǎng)絡(luò)的訓(xùn)練過程中,給定一個結(jié)合了特征重構(gòu)損失以及風(fēng)格損失的損失函數(shù),利用隨機(jī)梯度下降法最小化損失函數(shù)來訓(xùn)練網(wǎng)絡(luò),訓(xùn)練過程中不斷利用訓(xùn)練中的網(wǎng)絡(luò)來重建輸入風(fēng)格圖從而判斷網(wǎng)絡(luò)的訓(xùn)練程度與轉(zhuǎn)換能力。
由于圖像的損失函數(shù)數(shù)據(jù)計算來源于預(yù)訓(xùn)練網(wǎng)絡(luò)計算的圖像深層Gram 矩陣,Gram 矩陣的本質(zhì)是圖像像素之間的內(nèi)積對稱矩陣,因此風(fēng)格圖以及內(nèi)容圖的像素分布將會影響相應(yīng)的風(fēng)格轉(zhuǎn)換效果。為了找到其中的規(guī)律以及優(yōu)劣性,本文提出將圖像的紋理特征,如信息熵、各階矩特征來分析網(wǎng)絡(luò)對于不同輸入圖像輸出的優(yōu)劣性以及如何選取合適的風(fēng)格圖與內(nèi)容圖來進(jìn)行轉(zhuǎn)換,從而得到更好的效果。
熵是一個體系中混亂程度的表達(dá)形式,在信息論中,熵代表的是概念空間中所攜帶的信息量的總和,因此又被稱為“信息熵”。由于信息熵能夠表示信息量的大小,因此在圖像處理中,圖像的信息熵能夠表示一幅圖像所攜帶信息量的大小,在圖像的分割與識別起到了巨大的作用。圖像信息熵的計算公式為:
其中Pi表示的是某個灰度在該圖像中出現(xiàn)的概率,由灰度直方圖獲得。熵越高那么圖像越復(fù)雜,圖像的灰度中就包含了更多的數(shù)據(jù)量,也就能夠攜帶更多的內(nèi)容及風(fēng)格特征。
隨機(jī)過程中的矩是對變量分布和形態(tài)特點(diǎn)的一種度量方式。在圖像識別領(lǐng)域,矩被廣泛用于特征提取并取得了良好的效果。利用圖像不變矩來提取圖像特征具有簡單,并且不受噪聲、幾何形變等干擾的優(yōu)點(diǎn),是圖像特征的一個良好刻畫。圖像不變矩的計算公式為:
利用圖像的信息熵與不變矩對于圖像特征的良好刻畫,可以更好地理解在圖像風(fēng)格轉(zhuǎn)換過程中,不同的風(fēng)格圖與內(nèi)容圖的特征對于網(wǎng)絡(luò)的轉(zhuǎn)換效果的影響,從而找到改善效果的方法。
本文提出一種前饋深度殘差網(wǎng)絡(luò)來進(jìn)行圖像的風(fēng)格轉(zhuǎn)換。在圖像的風(fēng)格損失方面,Gatys 所提出的Gram 矩陣對于圖像的色彩以及紋理十分敏感,能取得較好的效果,如1.2 節(jié)所述,因此本文也使用輸入圖像的Gram 矩陣信息來作為風(fēng)格損失函數(shù)依據(jù)。在結(jié)構(gòu)上,本文在Johnson、Gatys 等算法的啟發(fā)下,采用深度網(wǎng)絡(luò)前饋網(wǎng)絡(luò)作為網(wǎng)絡(luò)的整體結(jié)構(gòu),而網(wǎng)絡(luò)的權(quán)重依據(jù)則來自于預(yù)訓(xùn)練的VGG-19 網(wǎng)絡(luò)。網(wǎng)絡(luò)選擇方面,考慮到Gatys等算法所使用的卷積神經(jīng)網(wǎng)絡(luò)在層數(shù)增加時,容易出現(xiàn)梯度消失與梯度爆炸,并且計算量十分龐大,因此本文算法轉(zhuǎn)而使用殘差網(wǎng)絡(luò)作為轉(zhuǎn)換網(wǎng)絡(luò)的主體,利用殘差網(wǎng)絡(luò)容易收斂,不會出現(xiàn)梯度爆炸與消失的訓(xùn)練優(yōu)勢來進(jìn)行網(wǎng)絡(luò)的訓(xùn)練,同時為了增大網(wǎng)絡(luò)的感受野,前后增加了2 層卷積層來對輸入圖像進(jìn)行處理。此外,在實驗過程中,發(fā)現(xiàn)輸入圖像的信息熵與矩特征對于網(wǎng)絡(luò)的轉(zhuǎn)換效果有影響,將輸入網(wǎng)絡(luò)的紋理特征分析加入到算法中,達(dá)到針對不同輸入圖像采用相應(yīng)的處理來提升效果的目的。
網(wǎng)絡(luò)主體由7 層殘差層組成,殘差層之前使用一層步長為2的卷積層進(jìn)行下采樣,之后使用步長為1/2的反卷積層進(jìn)行上采樣將圖像的大小還原。由于在每一個卷積層后都使用了標(biāo)準(zhǔn)化和ReLU激活函數(shù),因此在最后使用tanh函數(shù)來將輸出值控制在[0,255]區(qū)間。
標(biāo)準(zhǔn)優(yōu)化算法訓(xùn)練的網(wǎng)絡(luò),隨著網(wǎng)絡(luò)層數(shù)加深,網(wǎng)絡(luò)的效果卻并不一定越來越好,網(wǎng)絡(luò)的訓(xùn)練錯誤往往會呈現(xiàn)先減少后增加的狀態(tài),并且容易出現(xiàn)梯度爆炸或者消失的情況。殘差網(wǎng)絡(luò)的特殊結(jié)構(gòu)使得在數(shù)據(jù)傳輸?shù)倪^程中,有很多的旁路將數(shù)據(jù)直接傳輸?shù)搅撕竺娴膶樱趯W(xué)習(xí)過程中只學(xué)習(xí)輸入與輸出的差值,從而一定程度上解決了梯度爆炸或消失的問題并且簡化了計算,降低了學(xué)習(xí)難度。另一方面,殘差網(wǎng)絡(luò)在學(xué)習(xí)恒等函數(shù)(Identify function)上有良好的表現(xiàn),由于圖像風(fēng)格轉(zhuǎn)換過程中,應(yīng)當(dāng)盡量使得輸入圖像與輸出圖像共享圖像結(jié)構(gòu),因此殘差網(wǎng)絡(luò)這一特性也能夠運(yùn)用到風(fēng)格轉(zhuǎn)換的研究。
在殘差網(wǎng)絡(luò)前后使用卷積層與反卷積層,主要目的是在加深網(wǎng)絡(luò)的同時,減少計算量并增大有效感受野。為了能夠高質(zhì)量地進(jìn)行圖像的風(fēng)格轉(zhuǎn)換,應(yīng)當(dāng)在不改變原圖內(nèi)容的條件下盡量連貫地改變圖像。因此對于每一個輸出像素,在輸入中如果有對應(yīng)有效且更大的感受野將能夠提高轉(zhuǎn)換效果。所以利用卷積層進(jìn)行下采樣與上采樣等手段增加感受野大小,可以提升殘差網(wǎng)絡(luò)對于圖像的轉(zhuǎn)換效果。
為了能夠衡量輸出圖像與輸入圖像的差異性,本文定義了圖像重構(gòu)損失(即內(nèi)容損失)與風(fēng)格損失兩個函數(shù)來進(jìn)行訓(xùn)練。如1.2 節(jié)中所述,本文的損失函數(shù)數(shù)據(jù)來源于預(yù)訓(xùn)練的網(wǎng)絡(luò),因此這些感受損失函數(shù)本身就來源于深度網(wǎng)絡(luò),攜帶著圖像的深層特征。
本文不再簡單地將輸入與輸出每個像素進(jìn)行對比來判別輸入圖像與輸出圖像在圖像內(nèi)容上的區(qū)別,這樣難以在圖像的內(nèi)容上與風(fēng)格上達(dá)成平衡。定義預(yù)訓(xùn)練的深度網(wǎng)絡(luò)為φ,那么φj(x)表示該網(wǎng)絡(luò)對于輸入圖像第j層的激活輸出。由于j是深度網(wǎng)絡(luò)的第j層,因此φj(x)就是一個維度為Cj*Lj*Wj的特征圖(C為卷積核個數(shù),L*W為特征圖大小),那么圖像重構(gòu)損失就可以表示為:
當(dāng)從預(yù)訓(xùn)練網(wǎng)絡(luò)的高層進(jìn)行圖像重構(gòu)時,只有圖像的整體空間結(jié)構(gòu)得到保留,形狀、紋理、顏色等則不然。因此本文使用預(yù)訓(xùn)練網(wǎng)絡(luò)的多個低層數(shù)據(jù)作為損失函數(shù)依據(jù)來進(jìn)行網(wǎng)絡(luò)訓(xùn)練。
對于風(fēng)格損失,如1.2 節(jié)中所述,為了使得輸出圖像的風(fēng)格能夠保留風(fēng)格圖的色彩、紋理、模式等,本文使用Gram 矩陣來作為圖像風(fēng)格的表示。如上述φj(x)表示該網(wǎng)絡(luò)對于輸入圖像第j層的激活輸出,那么定義該層的Gram矩陣為:
φj(x)給出了第j 層圖像每個網(wǎng)格的特征,Gram 矩陣則是將圖像的每個網(wǎng)格視作獨(dú)立的樣本,以協(xié)方差矩陣的形式求出了不同網(wǎng)格之間的關(guān)系,而這個協(xié)方差矩陣中隱含了圖像的紋理、模式等信息,因此可以利用Gram 矩陣作為圖像風(fēng)格損失函數(shù)的依據(jù)。那么圖像風(fēng)格損失函數(shù)為:
本文的網(wǎng)絡(luò)結(jié)構(gòu)主旨就是利用預(yù)訓(xùn)練網(wǎng)絡(luò)低層數(shù)據(jù)作為圖像重構(gòu)損失的依據(jù),利用多個不同層的Gram 矩陣作為圖像風(fēng)格損失依據(jù),最后給予兩種損失函數(shù)相應(yīng)的權(quán)重并進(jìn)行組合得到總損失函數(shù)。
針對不同的風(fēng)格圖與內(nèi)容圖,分別計算它們的信息熵與各階不變矩,從而探究輸入圖像的紋理特征對于風(fēng)格轉(zhuǎn)換效果的影響。風(fēng)格圖與內(nèi)容圖的信息熵如表1所示。
表1 不同風(fēng)格圖與內(nèi)容圖的信息熵Tab. 1 Information entropies of different style images and content images
風(fēng)格圖與內(nèi)容圖的常用不變矩特征如表2和表3所示。
表2 不同風(fēng)格圖的各階矩Tab. 2 Different order moments of different style images
圖3(a)中4 幅圖作為圖像風(fēng)格轉(zhuǎn)換研究中的風(fēng)格圖,屬于繪畫風(fēng)格。其中Style-1、Style-2、Style-3 屬于西方風(fēng)格畫,Style-4是中國傳統(tǒng)山水畫。而圖3(b)作為圖像風(fēng)格轉(zhuǎn)換研究中的內(nèi)容圖,其中Con-1 是中國傳統(tǒng)山水畫,另外的6 幅均為相機(jī)拍攝圖片,其中Con-2、Con-3、Con-4、Con-5 是風(fēng)景相片,Con-6與Con-7是人與馬的相片。
本文發(fā)現(xiàn),Style-1 與Style-2 的信息熵相對于其他兩張風(fēng)格圖更大,包含更多的信息量,但風(fēng)格圖都是繪畫,因此整體性很強(qiáng),矩特征差距不大。而內(nèi)容圖中,只有Con-7 信息熵較小,但發(fā)現(xiàn)Cont-3、Cont-4、Cont-7的高階不變矩相對更大。
對于信息熵較低的風(fēng)格圖,圖像的像素之間呈現(xiàn)出更低的相關(guān)性,而Gram 矩陣是根據(jù)圖像中各個像素點(diǎn)之間的內(nèi)積而組成的,在訓(xùn)練時網(wǎng)絡(luò)會更加難以捕捉到風(fēng)格圖更深層、更細(xì)致的特征,因此需要增大網(wǎng)絡(luò)對于風(fēng)格的敏感性。本文在訓(xùn)練網(wǎng)絡(luò)時,風(fēng)格損失的權(quán)值選擇為200,內(nèi)容損失選擇為15。對于信息熵低的風(fēng)格圖,將風(fēng)格損失的權(quán)值增加到250,并且在訓(xùn)練過程中增加高斯噪聲,所得收斂效果如圖4。
圖3 用于圖像紋理分析的輸入圖像Fig. 3 Input images for image texture analysis
圖4 改變權(quán)重訓(xùn)練收斂對比Fig. 4 Training convergence comparison of changing weights
從訓(xùn)練收斂速度來看,當(dāng)風(fēng)格損失權(quán)重增大時,網(wǎng)絡(luò)的收斂速度會加快,因此學(xué)習(xí)過程更不容易產(chǎn)生過擬合,對于內(nèi)容圖的結(jié)構(gòu)學(xué)習(xí)能力下降,但對于風(fēng)格的敏感度提升,能夠使得輸出更好的帶有風(fēng)格圖的風(fēng)特征,對于信息熵低的風(fēng)格圖也能有良好的效果。
在此基礎(chǔ)上,本文在50 幅風(fēng)格圖的基礎(chǔ)上進(jìn)行了更多研究,最終根據(jù)結(jié)果分析,確定一個信息熵閾值δ,當(dāng)它低于7時,將風(fēng)格損失的權(quán)重增大到250,低于6.5時,增大到300。
表3 不同內(nèi)容圖的各階矩Tab. 3 Different order moments of different content images
對于高階矩大的內(nèi)容圖,容易出現(xiàn)一些空白的部分,網(wǎng)絡(luò)往往能夠良好地轉(zhuǎn)換內(nèi)容圖的主體部分,對于內(nèi)容圖中的空白部分無法良好地賦予與風(fēng)格圖相應(yīng)部分類似的紋理。因此,根據(jù)對高階矩的分析,網(wǎng)絡(luò)對于高階矩更低的內(nèi)容圖有更佳的轉(zhuǎn)換效果,對高階矩高的內(nèi)容圖的轉(zhuǎn)換效果則相對差一些,因此在圖像風(fēng)格轉(zhuǎn)換過程中,高階矩低的、背景完整的內(nèi)容圖能夠得到相對更好的效果,這一規(guī)律對于如何更有效地利用圖像風(fēng)格轉(zhuǎn)換網(wǎng)絡(luò)具有指導(dǎo)意義。
網(wǎng)絡(luò)的整體結(jié)構(gòu)如圖5,對于輸入圖像,基于圖像紋理分析,發(fā)現(xiàn)輸入圖像的信息熵與矩特征對于轉(zhuǎn)換效果的影響規(guī)律,并據(jù)此調(diào)整網(wǎng)絡(luò)訓(xùn)練參數(shù)以及采取合適的處理方法來提升轉(zhuǎn)換效果。主體結(jié)構(gòu)使用殘差網(wǎng)絡(luò)作為圖像轉(zhuǎn)換網(wǎng)絡(luò),結(jié)合下采樣層和上采樣層來增大網(wǎng)絡(luò)的感受野,提升轉(zhuǎn)換效果。損失函數(shù)利用ImageNet 上預(yù)訓(xùn)練的VGG-19 作為損失網(wǎng)絡(luò),使用圖像重構(gòu)損失作為圖像的內(nèi)容損失,輸入圖像與輸出圖像Gram 矩陣的歐氏距離作為圖像的風(fēng)格損失,將兩種損失函數(shù)加權(quán)得到總損失函數(shù),作為網(wǎng)絡(luò)訓(xùn)練的依據(jù)。
本文利用COCO2017 年的圖像數(shù)據(jù)集作為訓(xùn)練數(shù)據(jù)(圖6),將每個訓(xùn)練圖像的大小調(diào)整為256×256,批量為2,進(jìn)行80 000次迭代。本文使用Adam 作為優(yōu)化方法,將學(xué)習(xí)率設(shè)置為10-3,學(xué)習(xí)率衰變設(shè)置為10-5,將預(yù)訓(xùn)練網(wǎng)絡(luò)的Relu4_2層數(shù)據(jù)用來將計算圖像重構(gòu)損失,Relu1_1、Relu2_1、Relu3_1、Relu4_1、Relu5_1 層的數(shù)據(jù)用來計算風(fēng)格損失,每訓(xùn)練200 步保存網(wǎng)絡(luò)數(shù)據(jù),每600 步進(jìn)行網(wǎng)絡(luò)驗證,用于檢驗當(dāng)前網(wǎng)絡(luò)的轉(zhuǎn)換能力。訓(xùn)練過程在單個GTX1080ti的GPU 上訓(xùn)練大約需要5 h。
從圖7 可以看出,隨著迭代次數(shù)逐漸增加,網(wǎng)絡(luò)對于圖像風(fēng)格的掌握程度逐漸提高,從早期只能識別圖像的整體結(jié)構(gòu)到既能夠保留色彩、結(jié)構(gòu),也能保持圖像的內(nèi)容。
圖7 不同迭代步數(shù)的驗證圖Fig. 7 Verification diagrams with different iteration steps
3.2.1 基于風(fēng)格圖分析
從圖8 的三種轉(zhuǎn)換效果可以看出,由Style-1 與Style-2 作為風(fēng)格圖所訓(xùn)練的網(wǎng)絡(luò),根據(jù)2.3 節(jié)的計算結(jié)果,風(fēng)格圖的信息熵高,呈現(xiàn)出的轉(zhuǎn)換效果非常好,能夠在保持內(nèi)容圖內(nèi)容保持一致的條件下,將風(fēng)格圖的風(fēng)格賦予在輸出圖像中,并且?guī)в忻黠@的風(fēng)格圖的紋理特征。而以Style-3 作為風(fēng)格圖時,由于風(fēng)格圖的信息熵相對低,圖像對于天空部分把握不佳,主體建筑物周圍的天空呈現(xiàn)出與建筑物相同的風(fēng)格,與右上角部分有較大區(qū)別,但轉(zhuǎn)換后圖像對于內(nèi)容圖有很好的保留。
圖8 三種風(fēng)格圖的轉(zhuǎn)換結(jié)果Fig. 8 Transfer results of three kinds of style images
在以上基于圖像紋理特征分析的基礎(chǔ)上,嘗試增大訓(xùn)練過程中風(fēng)格損失所占比重,將風(fēng)格損失與內(nèi)容損失比重從200∶15 增大到250∶15,并在轉(zhuǎn)換后期添加了高斯噪聲處理來使得天空部分更加均衡,重新訓(xùn)練后得到如圖9所示結(jié)果。
圖9 優(yōu)化前后結(jié)果對比Fig. 9 Result comparison before and after optimization
從圖9 可以看出,在進(jìn)行了網(wǎng)絡(luò)優(yōu)化后,輸出結(jié)果相對更好,塔頂部分周圍的天空從一開始出現(xiàn)不規(guī)則的黃色區(qū)域,優(yōu)化到整個天空的風(fēng)格趨于一致,并且建筑物方面的風(fēng)格也更加統(tǒng)一。圖10給出了更多的優(yōu)化結(jié)果。
3.2.2 基于內(nèi)容圖分析
從圖11 與圖12 的結(jié)果來看,圖11 中的內(nèi)容圖高階矩更高,網(wǎng)絡(luò)對于圖像的主體部分轉(zhuǎn)換效果良好,但是對于背景的部分則效果不佳。而圖12 中第一幅圖馬的轉(zhuǎn)換不僅馬本身,背景也成功轉(zhuǎn)換為風(fēng)格圖的風(fēng)格;第二幅圖不僅山的主體部分轉(zhuǎn)換效果好,左上角的天空部分沒有多余的不規(guī)則紋理,呈現(xiàn)出與風(fēng)格圖相同的空白,效果明顯優(yōu)于圖11 中的(b)。在此基礎(chǔ)上進(jìn)行了更多的實驗,圖像風(fēng)格轉(zhuǎn)換網(wǎng)絡(luò)對于高階矩更低的風(fēng)格圖有更佳的轉(zhuǎn)換效果。
圖10 更多優(yōu)化結(jié)果Fig. 10 More optimization results
圖11 針對內(nèi)容圖分析的結(jié)果Fig. 11 Results of content image analysis
圖12 高階矩更低內(nèi)容圖的效果Fig. 12 Results of content images with lower high-order moments
3.2.3 基于圖像紋理特征分析總結(jié)
綜上所述,在圖像的轉(zhuǎn)換過程中,風(fēng)格圖的信息熵越大,網(wǎng)絡(luò)就能夠更好地把握風(fēng)格的紋理特征,輸出圖像的整體性更佳。另一方面,內(nèi)容圖的高階矩越大,那么由Gram 矩陣所計算出的風(fēng)格損失所占比重就會增加,使得輸出更注重于保留內(nèi)容圖的整體結(jié)構(gòu)特征,而對于風(fēng)格的轉(zhuǎn)換效果不如低高階矩的圖像。通過實驗分析,風(fēng)格圖的信息熵偏低時,通過增大訓(xùn)練時風(fēng)格損失的比重,來提升網(wǎng)絡(luò)對于風(fēng)格的敏感度,并且利用高斯噪聲等圖像處理方法,能夠提升轉(zhuǎn)換效果;另一方面,在風(fēng)格圖與網(wǎng)絡(luò)固定時,網(wǎng)絡(luò)對于高階矩更低的內(nèi)容圖有更好的轉(zhuǎn)換效果,這對于如何更有效利用網(wǎng)絡(luò)具有指導(dǎo)意義。
除了對比不同風(fēng)格圖以及內(nèi)容圖的結(jié)果,本文還將本文網(wǎng)絡(luò)與提出Gram 矩陣的Gatys所提出的圖像風(fēng)格轉(zhuǎn)換的卷積神經(jīng)網(wǎng)絡(luò)以及Stylebank進(jìn)行了對比,結(jié)果如圖13所示。
圖13 本文網(wǎng)絡(luò)與Gatys網(wǎng)絡(luò)和Stylebank網(wǎng)絡(luò)的對比Fig. 13 Comparisons of the proposed network with Gatys network and Stylebank network
通過圖13 可以發(fā)現(xiàn):與Gatys 網(wǎng)絡(luò)對比,得到了更加明亮、更加細(xì)膩的結(jié)果,整體的風(fēng)格也與風(fēng)格圖更加契合,除了風(fēng)格紋理之外,網(wǎng)絡(luò)對于亮度、色彩等方面把握更加優(yōu)秀;而與Stylebank 相比,由于風(fēng)格圖是來自于畢加索的一張抽象的人像,將內(nèi)容圖中整個人轉(zhuǎn)換成該風(fēng)格較為困難,Stylebank的結(jié)果除了有一個人的大致輪廓外,與原圖差距過大,而本文的結(jié)果大致保留了原圖的所有內(nèi)容特征,人物輪廓、背景的廣告板等都有較高的識別度,在紋理方面,做到了和風(fēng)格圖類似的不同區(qū)域分隔明顯的特征,整體效果優(yōu)于Stylebank網(wǎng)絡(luò)。
表4 用3 中風(fēng)格圖作為例子,對比了3 種網(wǎng)絡(luò)的訓(xùn)練耗時。表5 對比了3 種網(wǎng)絡(luò)的轉(zhuǎn)換耗時,在輸入3 種不同尺寸的圖像上進(jìn)行了對比。由于Stylebank 網(wǎng)絡(luò)無法保存已訓(xùn)練數(shù)據(jù),因此訓(xùn)練耗時即轉(zhuǎn)換耗時,每轉(zhuǎn)換一張圖片都需要重新訓(xùn)練網(wǎng)絡(luò),較為不便。與Gatys 的網(wǎng)絡(luò)對比,本文網(wǎng)絡(luò)的訓(xùn)練耗時以及轉(zhuǎn)換耗時都更短,在效率上遠(yuǎn)優(yōu)于Gatys網(wǎng)絡(luò)。
由于三種網(wǎng)絡(luò)采用的方法不盡相同,為了能夠更加直觀地看出不同網(wǎng)絡(luò)對于風(fēng)格轉(zhuǎn)換的效果,將不同網(wǎng)絡(luò)的輸出結(jié)果圖利用Gram 矩陣計算的風(fēng)格損失進(jìn)行了統(tǒng)計。由于對于不同風(fēng)格圖,輸出的風(fēng)格損失差別較大,因此以Stylebank 網(wǎng)絡(luò)作為基準(zhǔn)進(jìn)行歸一化后,進(jìn)行風(fēng)格損失的對比,結(jié)果如表6所示。
表6 風(fēng)格損失對比Tab. 6 Comparison of style loss
表6 表明,在輸入的風(fēng)格圖相同時,本文網(wǎng)絡(luò)計算所得的歸一化風(fēng)格損失更小,因此在風(fēng)格上,本文的結(jié)果更加接近于原圖的風(fēng)格特點(diǎn),在風(fēng)格轉(zhuǎn)換方面的效果更佳。
本文提出了一種結(jié)合圖像紋理特征分析的前饋圖像風(fēng)格轉(zhuǎn)換網(wǎng)絡(luò)算法,通過訓(xùn)練具有感知損失函數(shù)的前饋殘差網(wǎng)絡(luò)網(wǎng)絡(luò)來進(jìn)行風(fēng)格轉(zhuǎn)換,利用輸入圖像的信息熵和不變矩特征分析,發(fā)現(xiàn)了輸入圖像的特征與輸出效果之間的關(guān)系,從而實現(xiàn)了對網(wǎng)絡(luò)的針對性改善。大量實驗結(jié)果表明本文所提出的算法在提升了圖像風(fēng)格轉(zhuǎn)換效果的同時,大大提高了轉(zhuǎn)換效率。下一步的研究方向是提取圖像更多更深層次的特征來進(jìn)一步分析各種特征對于網(wǎng)絡(luò)轉(zhuǎn)換效果的影響,并在更多不同種類的圖像上進(jìn)行實驗,使分析結(jié)果更具有魯棒性和全面性。