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