王 楊,郁振鑫,盧 嘉
(1.河北工業(yè)大學(xué)電子信息工程學(xué)院,天津 300401;2.河北工業(yè)大學(xué)天津市電子材料與器件重點(diǎn)實(shí)驗(yàn)室,天津 300401)
圖像風(fēng)格遷移技術(shù)可以將一幅圖像的內(nèi)容和另一幅圖像的風(fēng)格相結(jié)合,實(shí)現(xiàn)不同的藝術(shù)效果。傳統(tǒng)方法[1 - 3]利用圖像的低級(jí)特征對(duì)圖像的紋理進(jìn)行統(tǒng)計(jì)建模,運(yùn)行效率較低,且藝術(shù)風(fēng)格實(shí)現(xiàn)效果有限。隨著深度學(xué)習(xí)的發(fā)展,Gatys等[4]提出采用卷積神經(jīng)網(wǎng)絡(luò)將圖像的內(nèi)容和風(fēng)格進(jìn)行分離,這種基于圖像迭代優(yōu)化的方法運(yùn)行較為緩慢,在實(shí)際應(yīng)用中有一定的限制。隨后,學(xué)者們提出的基于模型迭代優(yōu)化的方法提升了圖像風(fēng)格化的效率。Justin等[5]提出一種快速神經(jīng)風(fēng)格遷移模型,采用訓(xùn)練前向神經(jīng)網(wǎng)絡(luò)的方式達(dá)到了實(shí)時(shí)的風(fēng)格化效果。劉洪麟等[6]對(duì)特征圖進(jìn)行空間偏移變換,保留了風(fēng)格遷移結(jié)果的空間信息。Li等[7]采用圖像內(nèi)容和風(fēng)格之間的轉(zhuǎn)換矩陣提升了風(fēng)格遷移效果和運(yùn)行速度。
上述方法只能針對(duì)圖像的整體進(jìn)行風(fēng)格遷移,忽略了圖像不同語(yǔ)義區(qū)域之間的差異性。針對(duì)圖像局部區(qū)域進(jìn)行風(fēng)格遷移的問(wèn)題, Castillo等[8]采用語(yǔ)義分割劃分出圖像的局部區(qū)域,并用馬爾可夫隨機(jī)場(chǎng)來(lái)優(yōu)化前景和背景的連接部分,其風(fēng)格化結(jié)果較為模糊。Park等[9]采用詞向量方法將劃分出的語(yǔ)義區(qū)域和風(fēng)格相對(duì)應(yīng),實(shí)現(xiàn)了相同語(yǔ)義區(qū)域之間的對(duì)應(yīng)風(fēng)格化,但其不同區(qū)域之間邊界不夠清晰。劉哲良等[10]將全卷積神經(jīng)網(wǎng)絡(luò)和生成對(duì)抗網(wǎng)絡(luò)相結(jié)合,實(shí)現(xiàn)了對(duì)圖像中單個(gè)物體的風(fēng)格遷移,雖然對(duì)內(nèi)容圖像劃分了不同的語(yǔ)義區(qū)域,但只能在同類型物體之間進(jìn)行局部風(fēng)格遷移。李美麗等[11]采用K均值聚類方法來(lái)提取圖像中的局部區(qū)域,實(shí)現(xiàn)了對(duì)服飾花紋的風(fēng)格遷移。
當(dāng)前的局部風(fēng)格遷移所針對(duì)的內(nèi)容圖像區(qū)域往往由人為設(shè)定,不能實(shí)現(xiàn)自動(dòng)化,而圖像顯著性區(qū)域逐漸成為人們視覺(jué)注意的焦點(diǎn)。視覺(jué)注意機(jī)制可以忽略感知冗余,降低檢索復(fù)雜度[12],是圖像信息感知領(lǐng)域的關(guān)注熱點(diǎn)。針對(duì)圖像局部風(fēng)格遷移問(wèn)題,本文提出一種融合視覺(jué)注意機(jī)制的圖像顯著性區(qū)域風(fēng)格遷移方法。通過(guò)標(biāo)注數(shù)據(jù)集中的顯著性區(qū)域,采用快速語(yǔ)義分割算法進(jìn)行訓(xùn)練,得出圖像中待風(fēng)格化區(qū)域。在快速神經(jīng)風(fēng)格遷移算法的基礎(chǔ)上,加入實(shí)例正則化損失函數(shù),改進(jìn)快速神經(jīng)風(fēng)格遷移算法網(wǎng)絡(luò)結(jié)構(gòu),實(shí)現(xiàn)了更為精細(xì)的風(fēng)格遷移效果。
本文第2節(jié)介紹了本文提出的圖像顯著性區(qū)域風(fēng)格遷移方法,第3節(jié)為實(shí)驗(yàn)結(jié)果與分析,包括圖像風(fēng)格遷移效果和運(yùn)行效率的分析,最后給出了結(jié)論。
為了對(duì)圖像的顯著性區(qū)域進(jìn)行風(fēng)格遷移,本文所提出的方法包含3個(gè)部分,如圖1所示。首先使用針對(duì)圖像顯著性區(qū)域預(yù)先訓(xùn)練的快速語(yǔ)義分割模型,得到包含內(nèi)容圖像I的二值掩碼圖矩陣,然后將內(nèi)容圖像通過(guò)改進(jìn)的快速神經(jīng)風(fēng)格遷移模型,得到圖像的整體風(fēng)格遷移結(jié)果,二者融合可以得到最終結(jié)果圖像。
本文提出的圖像顯著性區(qū)域風(fēng)格遷移流程如下所示:
圖像顯著性區(qū)域風(fēng)格遷移方法的輸入為內(nèi)容圖像和風(fēng)格圖像,輸出為顯著性區(qū)域被風(fēng)格化的結(jié)果圖像。
步驟1針對(duì)內(nèi)容圖像,采用區(qū)域顯著性檢測(cè)模型,得出顯著性區(qū)域被標(biāo)注的二值掩碼圖。
步驟2將選用的風(fēng)格圖像,輸入到改進(jìn)的快速神經(jīng)風(fēng)格遷移網(wǎng)絡(luò)模型中,得出針對(duì)該風(fēng)格的風(fēng)格化模型。
步驟3將內(nèi)容圖像輸入到訓(xùn)練好的風(fēng)格化模型中,通過(guò)3層卷積進(jìn)行下采樣操作。
步驟4在網(wǎng)絡(luò)結(jié)構(gòu)中加入4個(gè)殘差模塊來(lái)優(yōu)化模型參數(shù),每個(gè)殘差模塊包含2個(gè)3*3的卷積層。
步驟5最后通過(guò)3個(gè)卷積層進(jìn)行上采樣操作,輸出顯著性區(qū)域被風(fēng)格化的結(jié)果圖像。
在圖像局部風(fēng)格遷移問(wèn)題中,目標(biāo)區(qū)域的選擇顯得尤為重要。從視覺(jué)機(jī)理的角度分析,人類的視覺(jué)系統(tǒng)可以快速地從雜亂的場(chǎng)景中定位該場(chǎng)景中最顯著的地方,進(jìn)而處理圖像的整體信息[13]。本文將視覺(jué)注意機(jī)制引入深度非對(duì)稱瓶頸網(wǎng)絡(luò)DABNet(Depth-wise Asymmetric Bottleneck Network)模型[14]中實(shí)現(xiàn)快速語(yǔ)義分割。該語(yǔ)義分割模型將深度可分離卷積和擴(kuò)張卷積相結(jié)合,在網(wǎng)絡(luò)結(jié)構(gòu)的淺層提取密集特征,在保證分割精度的同時(shí),達(dá)到實(shí)時(shí)運(yùn)行效果。
選用Cityscapes數(shù)據(jù)集[15]對(duì)DABNet進(jìn)行訓(xùn)練。Cityscapes數(shù)據(jù)集包含50個(gè)城市的街景視頻和對(duì)應(yīng)的各幀圖像,選用其中的6 000幅圖像進(jìn)行網(wǎng)絡(luò)訓(xùn)練和測(cè)試。DABNet語(yǔ)義分割網(wǎng)絡(luò)的輸出是對(duì)圖像不同區(qū)域的語(yǔ)義分割圖,通過(guò)將其中的顯著性區(qū)域進(jìn)行獨(dú)熱表示可完成顯著性區(qū)域檢測(cè)模型的訓(xùn)練。顯著性檢測(cè)模型結(jié)構(gòu)如圖2所示。
Figure 2 Saliency detection model圖2 顯著性檢測(cè)模型
最后通過(guò)最小化交叉熵?fù)p失來(lái)得到圖像顯著性區(qū)域檢測(cè)模型,如式(1)所示:
(1)
其中,XC代表輸入的要進(jìn)行顯著性區(qū)域檢測(cè)的內(nèi)容圖像,H、W和C分別代表對(duì)應(yīng)層特征圖的高、寬和通道數(shù)量,S(XC)代表網(wǎng)絡(luò)輸出的掩碼預(yù)測(cè)值。
針對(duì)一幅內(nèi)容圖像XC和一幅風(fēng)格圖像XS,快速神經(jīng)風(fēng)格遷移模型通過(guò)訓(xùn)練一個(gè)前向卷積神經(jīng)網(wǎng)絡(luò)來(lái)生成風(fēng)格化圖像,在推理時(shí)不再需要迭代優(yōu)化。本文改進(jìn)快速神經(jīng)風(fēng)格遷移模型來(lái)實(shí)現(xiàn)圖像的風(fēng)格化,模型結(jié)構(gòu)如圖3所示,包含生成網(wǎng)絡(luò)和損失提取網(wǎng)絡(luò)2部分。
損失提取采用預(yù)先訓(xùn)練的VGG-16神經(jīng)網(wǎng)絡(luò)分別得到內(nèi)容損失函數(shù)和風(fēng)格損失函數(shù)。
Figure 3 Structure of for fast neural style transfer model圖3 快速神經(jīng)風(fēng)格遷移模型結(jié)構(gòu)
在訓(xùn)練階段,本文采用Adam算法優(yōu)化以下?lián)p失函數(shù):
Ltotal=αLcontent+βLstyle
(2)
其中,α代表內(nèi)容損失權(quán)重,β代表風(fēng)格損失權(quán)重。
內(nèi)容損失函數(shù)通過(guò)式(3)進(jìn)行計(jì)算:
(3)
其中,F(xiàn)l(I)表示輸入圖像I在神經(jīng)網(wǎng)絡(luò)第l層上的特征映射,Nl表示特征映射的數(shù)量,而Ml(XC)表示第l個(gè)特征映射的高度和寬度的乘積。
風(fēng)格損失函數(shù)采用式(4)進(jìn)行計(jì)算:
(4)
其中,格拉姆矩陣Gl(X)表示不同層之間特征映射的關(guān)系,如式(5)所示:
Gl(X)=Fl(X)TFl(X)
(5)
生成網(wǎng)絡(luò)模型結(jié)構(gòu)如圖4所示,其中生成網(wǎng)絡(luò)的第一層和最后一層采用9*9的卷積核,其余各層均使用3*3的卷積核。
Figure 4 Structure of generate network model 圖4 生成網(wǎng)絡(luò)模型結(jié)構(gòu)
生成網(wǎng)絡(luò)中各層使用ReLU激活函數(shù),最后一層使用tanh激活函數(shù)??紤]到批量歸一化針對(duì)批處理圖像計(jì)算均值和方差,而風(fēng)格遷移需要對(duì)每幅輸入圖像進(jìn)行風(fēng)格遷移,所以本文在每個(gè)卷積層之后連接一個(gè)實(shí)例正則化(Instance Normalization)層[15],針對(duì)每幅圖像計(jì)算均值和方差。給定輸入x∈RN×C×H×W,實(shí)例正則化層的計(jì)算方法如式(16)~式(18)所示:
(6)
(7)
(8)
其中,γ和θ為從訓(xùn)練數(shù)據(jù)中學(xué)習(xí)的仿射參數(shù),μnc(x)和δnc(x)為均值和標(biāo)準(zhǔn)差,N為卷積核個(gè)數(shù),ε為任意小的數(shù)。
為了得到顯著性區(qū)域被風(fēng)格化的圖像O,將由區(qū)域顯著性檢測(cè)模型得到的二值掩碼圖RC和改進(jìn)的快速神經(jīng)風(fēng)格遷移模型得到的圖像整體風(fēng)格遷移結(jié)果圖TS相結(jié)合,如式(9)所示:
O(XC,XS)=(RC*TS)+(I-RC)*I
(9)
其中,*代表逐元素乘積,I表示內(nèi)容圖像XC。
為驗(yàn)證所提方法的有效性,本節(jié)將從定性和定量2個(gè)角度對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行評(píng)價(jià)。在結(jié)果圖像的定性評(píng)價(jià)上,采用內(nèi)容圖像保留程度、風(fēng)格化程度和紋理分布這3個(gè)指標(biāo)作為評(píng)價(jià)的主要依據(jù)。定量評(píng)價(jià)則考慮模型的運(yùn)行效率。
在Ubuntu18.04系統(tǒng)下,采用基于Python的PyTorch深度學(xué)習(xí)框架實(shí)現(xiàn)本文方法。硬件基本配置CPU為Intel i7-8700,16 GB內(nèi)存,NVIDIA GTX 1080顯卡。
考慮到圖像的整體風(fēng)格遷移能夠展現(xiàn)風(fēng)格遷移的優(yōu)勢(shì),故將本文所提方法和經(jīng)典的圖像整體風(fēng)格遷移模型進(jìn)行比較,包括Gatys模型、Patch Swap模型[16]和WCT(Whitening & Coloring Transform)模型[17]。其中,Gatys模型基于模型迭代優(yōu)化實(shí)現(xiàn),可以較好地控制結(jié)果圖像中的風(fēng)格化程度。Patch Swap模型和WCT模型基于編碼器和解碼器結(jié)構(gòu)實(shí)現(xiàn),在不需要預(yù)先訓(xùn)練模型的情況下縮短了風(fēng)格化所用時(shí)間。
本文選用在風(fēng)格遷移相關(guān)文獻(xiàn)中被廣泛使用的內(nèi)容圖像和風(fēng)格圖像(如圖5a和圖5b所示)進(jìn)行實(shí)驗(yàn),圖5c~圖5f顯示了不同模型進(jìn)行風(fēng)格遷移后的結(jié)果。
Figure 5 Comparison of overall style transfer effects圖5 整體風(fēng)格遷移效果對(duì)比
觀察圖5d可知,Patch Swap模型遷移了風(fēng)格圖像中的顏色,而很少有紋理被遷移。而在圖5e中,WCT模型雖然對(duì)內(nèi)容圖像進(jìn)行了大量的紋理遷移,但與圖5b中的風(fēng)格圖像的風(fēng)格卻有些差距。在圖5f中,本文方法的遷移圖像可以較好地與原風(fēng)格圖像保持一致的風(fēng)格,且圖5f中大橋與海面可以較好地融合,無(wú)明顯的沖突感,整體圖像的紋理也較為細(xì)膩、均勻。
本文選用Cityscapes數(shù)據(jù)集和Microsoft COCO 2017數(shù)據(jù)集進(jìn)行效果測(cè)試和性能測(cè)試,并加入自拍街道場(chǎng)景進(jìn)行測(cè)試。圖6a是一幅街道照片,建筑物為其中的顯著性區(qū)域,使用本文方法進(jìn)行風(fēng)格遷移的結(jié)果如圖6c所示。
Figure 6 Style transfer of buildings圖6 對(duì)建筑物進(jìn)行風(fēng)格遷移
觀察圖6c可知,圖中的建筑部分被渲染了圖6b中的風(fēng)格,而其余部分得到了保留,符合人類視覺(jué)注意機(jī)制的特點(diǎn),達(dá)到了較好的視覺(jué)效果。
為更好地驗(yàn)證本文方法的有效性,對(duì)實(shí)際生活中拍照所得的街景進(jìn)行風(fēng)格遷移,結(jié)果如圖7所示。
Figure 7 Style transfer of cars圖7 對(duì)汽車進(jìn)行風(fēng)格遷移
圖7a中的主要顯著性區(qū)域?yàn)轳R路上的汽車,選用圖7b對(duì)其進(jìn)行風(fēng)格化。圖7c顯示,不僅位于最前面的汽車被風(fēng)格化,后面的汽車也被區(qū)分并風(fēng)格化,這說(shuō)明了本文顯著性區(qū)域檢測(cè)方法的有效性。
為進(jìn)一步檢驗(yàn)采用本文所提方法優(yōu)化后的運(yùn)行效率,對(duì)多幅圖像進(jìn)行了整體風(fēng)格遷移,并分別與Gatys模型、Patch Swap模型和WCT模型在運(yùn)行時(shí)間方面進(jìn)行了對(duì)比。
由于采用不同風(fēng)格圖像時(shí)模型運(yùn)行時(shí)間不同,所以分別采用圖4b、圖5b和圖5c中的風(fēng)格圖像,每組實(shí)驗(yàn)重復(fù)6次,取平均值作為最終時(shí)間,結(jié)果如表1所示。由表1可知,本文模型運(yùn)行用時(shí)最少,原因在于針對(duì)每一幅風(fēng)格圖像加入了預(yù)訓(xùn)練過(guò)程,因而運(yùn)行效率更占優(yōu)勢(shì),可以達(dá)到實(shí)時(shí)的效果。
Table 1 Run time comparison
本文提出一種對(duì)圖像顯著性區(qū)域進(jìn)行風(fēng)格遷移的方法。通過(guò)結(jié)合人類視覺(jué)注意機(jī)制以及訓(xùn)練實(shí)時(shí)語(yǔ)義分割網(wǎng)絡(luò),解決了圖像局部風(fēng)格遷移過(guò)程中目標(biāo)區(qū)域選取困難的問(wèn)題。通過(guò)改進(jìn)快速神經(jīng)風(fēng)格遷移方法,在損失函數(shù)中加入實(shí)例正則化損失函數(shù),提升了風(fēng)格遷移的視覺(jué)效果,使其更適合圖像局部較小區(qū)域的風(fēng)格化,防止風(fēng)格溢出。同時(shí),所提方法運(yùn)行速度的提升使其能達(dá)到實(shí)時(shí)的效果,在實(shí)際應(yīng)用中具有更大的靈活性。