陳 杰
(中國聯合網絡通信集團有限公司宣城市分公司,安徽 宣城 242099)
圖像風格遷移是指將藝術大師的畫風遷移到自己的圖片上,使其看上去更富有藝術氣息。近年來,圖像風格遷移成為計算機視覺以及圖像處理領域的熱點研究方向。早期的風格遷移被視為紋理合成的拓展問題,也被稱為紋理遷移。在基于紋理合成的年代,Julesz[1]率先提出基于紋理建模來提取圖片特征的方法。該方法基于像素的底層特征,沒有考慮到語義信息的丟失,所以遷移的效果并不理想。后來,風格遷移進入了基于非真實感渲染的年代,大體可以分為3種:筆觸渲染的方法(Stroke-based Rendering)、基于圖像類比的方法(Image Analogy)、基于圖像濾波的方法(Image Filtering)?;诠P觸渲染的方法有一個缺陷,在設計之前需要先將風格特征確定下來,如果遷移完成后進行其他風格的遷移,還需要重新設計一種風格;基于圖像類比的方法要在真實場景中采集成對的圖像數據,過程十分困難,幾乎是不可能的;基于圖像濾波的方法具有速度快、效果穩(wěn)定的優(yōu)點,能夠滿足工業(yè)界落地的需要,然而濾波器的值是由算法工程師不斷調整得出來的,費時費力,且模擬出來的風格類型也有限。所以,這些方法并沒有得到大規(guī)模的應用。
隨著深度學習興起,卷積神經網絡(Convolutional Neural Networks,CNN)被應用到圖像風格遷移上。Gatys[2]最早提出利用卷積神經網絡,將圖像表示為內容和風格兩個部分,高層次卷積提取圖像的內容特征,低層次卷積提取圖像的風格特征,生成讓人比較滿意的藝術風格圖片,在速度以及質量等方面也比傳統方法更好。隨后,孫勁光等[3]在殘差式神經網絡的基礎上進行圖像細節(jié)的風格化,但沒有對風格遷移的轉換網絡進行研究。因此,本文在卷積神經網絡的基礎上加入注意力機制,以期達到更好的風格遷移效果。
CNN是一種帶有卷積層計算的前饋神經網絡,是深度學習(Deep Learning)的代表性算法之一[4],本質是一個多層感知機[5]。它在對圖像進行處理的過程中采用了局部連接和權值共享的方式,一方面減少了權值數量,讓網絡優(yōu)化更加方便,另一個方面降低了網絡模型的復雜度,即降低了欠擬合發(fā)生的風險。在圖像風格遷移領域,卷積神經網絡可以更好地提取輸入圖像的特征以及重建輸出圖像的內容和風格。使用該網絡可以將風格圖像的風格特征逐層遷移到內容圖像上,并將內容圖像的內容特征很好地保留下來。本文選用的卷積神經網絡為VGG-16網絡,是公認的比較優(yōu)秀的卷積神經網絡。
注意力機制來自于人類大腦對事物的注意力[6]。例如,我們的視覺系統會更多地關注圖像中一些亮眼的信息,忽略一些看上去無關緊要的信息。在某一時刻,眼睛的焦點只集中在一些相對重要的地方,而不是視野中的所有對象。這樣大腦可以有效過濾大量無用的視覺信息,提高視覺系統的識別能力。
在計算機視覺其他領域中,輸入圖像的某些部分的重要程度的占比會比其他部分更大一些。例如,在圖像分類問題中,輸入圖像中只有一些區(qū)域可能與判斷出這一圖像屬于哪一類有作用。注意力模型結合了相關性的概念,允許模型動態(tài)地關注輸入圖片的某些部分。這些部分在執(zhí)行接下來的任務時會比其他部分更加有利。神經網絡中的注意力模型借鑒了該函數,使神經網絡模型對輸入數據的不同像素點給予不同的注意和權重[7-8]。
注意力機制包括強注意力機制(Hard Attention)、軟注意力機制(Soft Attention)、時間注意力機制(Temporal Attention)、空間注意力機制(Spatial Attention)和雙通道注意力機制(Convolutional Block Attention Module,CBAM),本文選用雙通道注意力機制,并加入卷積神經網絡,在通道和空間維度上更加關注目標物體,具有更好的解釋性。
將給定的圖片F∈RC×H×W作為輸入。雙通道注意力按順序推理通道注意映射MC∈RC×I×I和空間注意映射MS∈RI×H×W,整體注意力處理可概括為:
F*=MC(F)?F
(1)
F**=MS(F*)?F*
(2)
式(1)~(2)中,?表示逐元素乘法算子。
通道注意映射是由特征通道之間的關系生成的,把每個通道都視為一個特征檢測器,因此更關注給定輸入圖像中更有意義的部分。為了能有效地計算通道注意力,將特征映射的空間維數進行壓縮,并在空間中將信息進行聚合,比較常用的方法是空間信息聚合average-pooling。max-pooling收集關于不同物體特征的另一個重要線索,以推斷更詳細的通道注意。因此,本文同時使用average-pooling和max-pooling 特征。共享網絡由多層感知器(MLP)和1個隱藏層組成,利用特征間的空間關系生成空間注意映射。其通道注意力計算如下:
(3)
與通道注意力機制不同,空間注意力機制更關注圖像輸入的信息部分。這與通道注意力機制是互補的,空間注意力計算如下:
(4)
整體注意力機制CBAM流程如圖1所示。
圖1 整體注意力機制CBAM流程
本文的轉換網絡由下卷積層與雙通道注意力結合的卷積層、殘差層以及上卷積層組成。TransformerNet轉化網絡模型如圖2所示。
圖2 TransformerNet轉化網絡模型
首先,圖片經過3層下采樣卷積層,每1個卷積層中都包含1個InstanceNorm2d歸一化層以及一個ReLU激活函數層。其中,歸一化層主要運用在風格遷移領域。在風格遷移過程中,某張具體的圖片實例對遷移結果更具有依賴性。所以,風格遷移不會對整個批次做歸一化處理,轉而對圖片的高(H)以及寬(W)做處理,計算其均值,以加速模型的收斂,并保持每個圖像之間的獨立性。InstanceNorm2d歸一化層的數學公式如下:
(5)
式(5)中,E(x)是batch的均值;Var(x)是batch的方差;ε是常數;γ是對應batch學習到的權重;β是偏置。ReLU激活函數的收斂速度快,不會出現梯度消失的問題。
其次,圖片經過5層殘差層,每個殘差層中包含2個卷積層,每個卷積層的卷積核都是3×3。由于殘差網絡的特性,圖片經過每個殘差層的輸入以及輸出是相等的。殘差網絡被用來加深網絡深度。
最后,圖片經過3層上采樣層,得到遷移后的結果圖。InstanceNorm2d激活函數層的數字公式如下:
(6)
風格遷移的損失函數分為內容損失與風格損失,總的損失函數如下:
Ltotal=αLcontent+βLstyle
(7)
式(7)中,α、β分別代表內容損失與風格損失的權重,本文設置的α/β=1×10-5。
(8)
風格遷移領域的風格損失使用格拉姆矩陣(Gram Matrix)來定義。格拉姆矩陣為:
(9)
(10)
本文實驗環(huán)境為在Ubuntu18.04下和pytorch深度學習框架和在ImageNet上預訓練好的VGG-16網絡權重。機器的顯存為11 GB,CPU為Intel 6×Xeon E5-2678 v3,內存為62 GB,硬盤大小為100 GB,并使用NVIDIA GeForce RTX 2080 Ti進行GPU加速。
數據集選用的是COCO2014的train2014數據集。將加入雙通道注意力的結果圖與沒加雙通道注意力的結果圖進行比較。風格遷移對比圖如圖3所示。從圖3中可以發(fā)現,加入雙通道注意力之后的風格遷移更加注重時鐘主體部分,并且在顏色的渲染方面也比傳統的VGG遷移效果要好一點,顯得更加自然。
(a) 內容圖片 (b) 原VGG遷移效果
引入峰值信噪比(PSNR)與結構相似比(SSIM)來對結果進行評價:PSNR越大,說明圖像的失真越小;SSIM越大說明兩幅圖像越相似。2種模型的評價指標及網絡迭代速度見表1。
表1 2種模型的評價指標及網絡迭代速度
從表1可以看出,加入雙通道注意力之后,遷移效果有了顯著提升,網絡迭代速度也比傳統VGG16遷移有所提升。
采用了基于卷積神經網絡的風格遷移模型,并在此基礎上加入雙通道注意力機制,達到了更好的風格遷移效果,提高了圖片生成的質量與速度,讓圖片更好地進行主體部分的風格遷移。引入計算機視覺領域常用的評價指標SSIM與PSNR以及2種模型的網絡迭代速度進行對比。實驗結果表明,遷移效果和網絡迭代速度均有所提升。