陳志鵬,鄭文秀,黃瓊丹
(西安郵電大學通信與信息工程學院,西安 710121)
圖像風格轉(zhuǎn)換是指將一張藝術(shù)圖像[1]的風格轉(zhuǎn)換到內(nèi)容圖像上?;谔卣髌ヅ洌?-4]的方法在處理傳統(tǒng)圖像風格轉(zhuǎn)換問題時,耗時長且效果不佳。卷積神經(jīng)網(wǎng)絡能夠較好地理解圖像語義信息并提取圖像特征。文獻[5-6]將深度學習應用在圖像風格轉(zhuǎn)換[7-8]中,使用卷積神經(jīng)網(wǎng)絡提取內(nèi)容圖像和風格圖像的特征,并利用Gram 矩陣計算風格特征之間的相似性以實現(xiàn)圖像風格的遷移。由于Gram 矩陣計算整幅圖相似性的效果不佳,因此研究人員對該算法進行改進以得到更高質(zhì)量的結(jié)果圖像。文獻[9]使用局部均方差減少圖像的噪聲。文獻[10]提出加入直方圖損失控制生成圖像的穩(wěn)定性。文獻[11]使用馬爾科夫條件隨機場將特征分成許多小塊,對小塊進行特征匹配保留更優(yōu)的局部信息。文獻[12]利用新的紋理生成方法Grammian,保留紋理的空間排列信息,生成更高質(zhì)量的結(jié)果圖像。生成對抗網(wǎng)絡(GenerativeAdversarial Network,GAN)[13-14]使用生成器模型進行圖像風格轉(zhuǎn)換,實現(xiàn)多對多的快速風格轉(zhuǎn)換。文獻[15]在損失中加入均值和方差[16]以約束圖像的生成,但是生成圖像存在塊狀效果。文獻[17]利用自動顯著性指導風格轉(zhuǎn)化方法對內(nèi)容圖像中視覺突出的物體進行風格轉(zhuǎn)換。文獻[18]通過編解碼的網(wǎng)格結(jié)構(gòu)進行圖像風格轉(zhuǎn)換,并加入HED 網(wǎng)絡結(jié)構(gòu)提取內(nèi)容圖像的邊緣信息以減少圖像扭曲。
本文提出一種基于Sobel 濾波器的圖像風格轉(zhuǎn)換算法,通過Sobel 濾波器提取內(nèi)容圖像特征圖的邊緣信息,并與生成圖像特征圖的邊緣信息進行匹配計算兩者差值作為新的損失,使得生成圖像保留更多內(nèi)容圖像的細節(jié)信息,避免出現(xiàn)圖像扭曲。
深度學習通過卷積神經(jīng)網(wǎng)絡提取圖像特征,將低層特征組合成更抽象的高層信息。深度學習的圖像風格轉(zhuǎn)換[19]有3 個輸入,包括內(nèi)容圖像、風格圖像、結(jié)果圖像(一張白噪聲圖像)。文獻[8]使用VGG 19[20]提取圖像的高層語義信息,將內(nèi)容圖像信息和風格圖像信息進行分離并重組到結(jié)果圖像上,實現(xiàn)圖像風格轉(zhuǎn)換。
文獻[8]使用VGG19 提取特征,其是由16 個卷積層和3 個全連接層組成。在圖像風格轉(zhuǎn)換中刪除最后的全連接層,使用前面訓練好的16 個卷積層提取特征,并使用平均池化代替最大池化以提高圖像質(zhì)量。研究人員利用反向傳播算法將結(jié)果圖像中的內(nèi)容信息和風格信息與輸入的內(nèi)容圖像和風格圖像信息相匹配。
卷積神經(jīng)網(wǎng)絡中每個卷積層都有一組卷積核提取圖像特征以生成特征圖。隨著網(wǎng)絡深度的增加,卷積核的個數(shù)也在增加。分別為內(nèi)容圖像和生成的結(jié)果圖像,Pl和Fl分別為在第l卷積層上的特征圖,F(xiàn)ij表示第i組卷積核上第j個卷積核提取的特征圖。本文采用均方誤差作為損失函數(shù),Lcontent表示白噪聲圖像與內(nèi)容圖像在同一個卷積層濾波器提取到特征圖像的差距。因此,內(nèi)容圖像的損失函數(shù)如式(1)所示:
文獻[8]使用Gram 矩陣提取圖像的紋理信息。Gram 矩陣的值表示兩個特征映射的內(nèi)積,值的大小反映兩個特征相關(guān)性的大小。因此,Gram 矩陣的值可以表示兩張圖像的風格是否相似。表 示 第l層第i個特征與第j個特征映射的內(nèi)積。特征相關(guān)性計算如式(2)所示:
均方誤差計算風格圖像與白噪聲圖像Gram 矩陣的差異如式(3)所示:
其中:Gl和Al分別表示風格圖像和白噪聲圖像在l層的Gram 矩陣;wl為每層風格損失權(quán)重。損失函數(shù)如式(4)所示:
風格損失函數(shù)使用梯度進行優(yōu)化,如式(5)所示:
文獻[8]使用卷積神經(jīng)網(wǎng)絡進行圖像風格轉(zhuǎn)換,結(jié)果圖像由內(nèi)容圖像和風格圖像共同作用。與原內(nèi)容圖像相比,結(jié)果圖像存在線條扭曲現(xiàn)象。內(nèi)容圖像的特征只選了conv4_2 層,而風格圖像的特征選取conv1_1、conv2_1、conv3_1、conv4_1、conv5_1 層。在卷積神經(jīng)網(wǎng)絡中高層特征是理解圖像整體信息,低層特征是理解圖像的邊緣細節(jié)信息,因此,生成圖像的邊緣細節(jié)信息主要由風格特征提供。文獻[8]在進行圖像風格轉(zhuǎn)換時,將內(nèi)容和風格特征共同作用在結(jié)果圖像上,因此,沒有關(guān)注到內(nèi)容圖像的邊緣結(jié)構(gòu)信息,使得生成圖像發(fā)生扭曲現(xiàn)象。為了減少扭曲,提高圖像的生成質(zhì)量,本文使用Sobel 濾波器提取內(nèi)容圖像的邊緣信息,進而約束生成圖像的邊緣以提高生成圖像的質(zhì)量。
Sobel[21-22]是一階的邊緣檢測算法,使用卷積核Gx和Gy分別在圖像x和y方向上進行卷積,將x和y方向計算出的結(jié)果進行代數(shù)加權(quán)得到整個圖像的邊緣結(jié)果,如式(6)所示:
在使用Sobel 濾波器提取特征時,如果直接計算輸入內(nèi)容圖像p→與生成圖像x→的邊緣檢測信息的均方誤差損失,則在反向傳播時梯度為0。因此,本文重新定義Sobel 濾波器的使用位置,不在內(nèi)容圖像和生成圖像上進行計算,而是選取內(nèi)容圖像和對應結(jié)果圖像在相同的卷積層上進行Sobel 濾波器的特征提取,即在特征圖上進行Sobel 濾波器的邊緣檢測。如果在特征圖中每個通道上都進行Sobel 濾波器的邊緣檢測將會消耗大量時間。由于VGG 特征圖中的通道數(shù)分別是64、128、256、512、512,Sobel 選取的層是conv1_1、conv2_1、conv3_1、conv4_1 層,因此如果選取循環(huán)計算就是960 次,這樣會消耗大量的時間。為了加速計算,本文利用深度卷積方法在對應的卷積層上一次性計算出所有通道Sobel 濾波器提取到的邊緣信息。
本文使用均方誤差作為邊緣損失函數(shù)。LSobel表示白噪聲圖像與內(nèi)容圖像在同一個卷積層濾波器提取的邊緣信息差距。Slij表示第l層第i組卷積核第j個Sobel 濾波器提取的邊緣信息。邊緣損失函數(shù)如式(7)所示:
新的損失函數(shù)如式(8)所示:
輸入圖像為內(nèi)容圖像、風格圖像,輸出圖像是白噪聲圖像。內(nèi)容圖像的特征選取conv4_2 層,風格圖像的特征選取conv1_1、conv2_1、conv3_1、conv4_1、conv5_1 層,Sobel特征選取conv1_1、conv2_1、conv3_1、conv4_1 層。每層之間的權(quán)重均為1。根據(jù)實驗調(diào)參,本文選取的參數(shù)如下:內(nèi)容圖像權(quán)重α為1;風格圖像權(quán)重β為500;Sobel 權(quán)重γ為0.1;迭代次數(shù)為400 次。
本文利用梯度下降法對一張白噪聲圖像進行不斷迭代優(yōu)化,并用擬牛頓法(L-BFGS)[23]進行優(yōu)化。擬牛頓法是二階優(yōu)化算法能夠快速得到收斂結(jié)果。
基于Sobel 濾波器的圖像風格轉(zhuǎn)換對輸入各種內(nèi)容和風格圖像進行實驗。在風格轉(zhuǎn)換時,本文算法在加入內(nèi)容圖像和輸出圖像的邊緣損失后提高了圖像的質(zhì)量,減少線條的扭曲,圖像視覺效果更佳。本文算法流程如圖1 所示。
圖1 本文算法流程Fig.1 Procedure of the proposed algorithm
實驗使用Tensorflow 框架搭建網(wǎng)絡模型,實驗硬件平臺使用阿里云天池實驗室,Intel Xeon E5-2682 v4 CPU 主頻2.5 GHz,NVIDIA Tesla P100 16 GB 的GPU。
不同算法的實驗結(jié)果對比如圖2~圖4 所示。從圖2(c)和圖2(d)可以看出,本文算法能夠更好地保留窗體的線條,并區(qū)分出每個窗口,房屋輪廓也更加清晰,而文獻[8]算法的實驗結(jié)果中不能區(qū)分每個窗口,房屋結(jié)構(gòu)也扭曲在一起。因此,本文算法不僅能夠保留內(nèi)容圖像的結(jié)構(gòu),而且輸出圖像的質(zhì)量更高。從圖3(c)和圖3(d)可以看出,與文獻[8]算法相比,本文算法的結(jié)果圖像眼睛與內(nèi)容圖像中的眼睛一樣,在右眼下沒有很深的線條。因此,本文算法提取的結(jié)果圖像更符合真實的人像。
圖2 不同算法的實驗結(jié)果對比1Fig.2 Experimental results comparison 1 among different algorithms
圖3 不同算法的實驗結(jié)果對比2Fig.3 Experimental results comparison 2 among different algorithms
從圖4 可以看出,與文獻[8]算法相比,本文算法保留了圖像的結(jié)構(gòu)信息,在結(jié)果圖像上沒有線條的扭曲,生成的圖像質(zhì)量更高。
圖4 不同算法的實驗結(jié)果對比3Fig.4 Experimental results comparison 3 among different algorithms
本文提出一種基于邊緣檢測的圖像風格轉(zhuǎn)換算法,利用Sobel 濾波器提取內(nèi)容圖像和生成圖像的邊緣特征,并計算兩者差值作為新的損失。實驗結(jié)果表明,該算法能夠減少圖像線條扭曲并提高圖像生成質(zhì)量。由于生成對抗網(wǎng)絡可以快速生成高質(zhì)量圖像,因此后續(xù)將優(yōu)化生成對抗網(wǎng)絡的損失函數(shù),進一步加快高質(zhì)量風格轉(zhuǎn)換圖像的速度。