楊慧炯,韓燕麗,郭蕓俊
(太原工業學院 計算機工程系, 太原 030008)
圖像風格遷移是計算機視覺技術、計算機圖像非真實感渲染中的常見問題,一直受到學者們的廣泛關注。圖像風格遷移的本質為:在維持某個圖像內容基本語義不變的前提下,將另外某個風格圖像中提取的風格表示應用于該圖像,從而達到該圖像與風格圖像風格表示相吻合的目的。傳統的風格遷移手段一般采用基于圖像全局或局部紋理進行建模的方式,由于只提取了圖像的底層特征,而非高層抽象特征,在處理顏色和紋理較復雜的圖像時,最終會導致合成效果較為粗糙,難以符合實際需求[1]。
近年來,深度卷積神經網絡在計算機視覺領域的研究得到了廣泛關注。Zeiler等[2]通過反卷積法分析圖像中不同區域對圖像分類輸出的影響,對網絡結構特征進行了深入探索。Mahendran等[3]通過基于梯度的方法優化某個目標函數實現淺層和深層網絡表達的圖像重構,以此了解特征信息在各層網絡的存儲機制,從而確立了深層網絡對圖像特征表達的作用。Krizhevsky等[4]通過訓練一個面向數量為120萬的高分辨率圖像數據集ImageNet(圖像種類為1 000種)的深度卷積神經網絡,在圖像識別的Benchmark數據集上取得了較好的成績。
受深度卷積神經網絡在大規模圖像分類上取得的優異性能的啟發,借助其強大的多層次圖像特征和語義表征能力,Gatys等[5]提出基于VGG的網絡模型,conv4_2的特征映射輸出可以作為圖像的內容表示,通過VGG網絡每一層輸出的特征映射之間的內積運算所得到的Gram矩陣可以作為圖像的風格表示。基于上述研究,Gatys等[6-7]率先提出了一種基于最優算法的紋理圖像合成方法,該方法采用Mahendran和Vedaldi[3]提出的損失函數的計算方法來分別計算圖像的風格損失和內容損失,并將二者結合在一起進行圖像的風格遷移。
由于最優化的圖像生成方法需要進行反復的迭代運算,從而導致在迭代過程中消耗大量的計算資源,很多深度學習網絡使用基于網絡計算的感知損失函數來構建前饋神經網絡進行圖像合成[8-10]。Johnson和Ulyanov等[11-12]利用Gatys等定義的感知損失函數,構建了可以進行快速風格遷移的前饋神經網絡。Ulyanov等[13]在前饋神經網絡中通過實例正則化代替批處理正則化進行訓練和測試,顯著提高了快速樣式傳輸的生成圖像的質量。在后續的研究中,Luan等[14]在風格遷移網絡中通過加入正則化項來避免輸出圖像中出現太多的畸變。Gatys等[15]通過YIQ色彩空間,將顏色信息和亮度信息單獨控制,分別實現了基于顏色直方圖匹配和基于亮度信息的深度神經網絡風格遷移,可以在圖像藝術風格遷移的同時,保留原有內容圖像的顏色特征。
上述方法在圖像風格遷移,特別是圖像的藝術風格化處理中取得了令人驚喜的效果,但是仍有以下兩個問題需待解決:
首先,由于算法中只對圖像的顏色特征進行了處理而沒有對亮度特征加以考慮,從而造成風格化后圖像的藝術層次變化不佳,特別是當原始圖像中存在大面積色塊區域時,往往造成風格化后圖像在該區域的效果不佳。如圖1所示,對于藍天中的白云部分,采用梵高的《星空(The Starry Night)》風格化后,與原風格圖像在藝術效果表現上產生較大的變化。
其次,在藝術作品中,像筆觸的形狀、紋理等精細空間的特征結構,與作品中整體藝術風格在特征表現上是不同的,但是現有的方法并沒有對這些不同尺度的特征做有效的區分,從而造成風格化后的圖像雖然在整體藝術風格上與原藝術作品有較好的相關性,但是在細節上往往還存在較大的差距。
本文對快速風格遷移前饋神經網絡進行了改進,通過綜合考慮圖像的顏色信息和亮度信息構建多尺度分層網絡,可以在圖像整體藝術風格和細節特征處理效果上得到有效提高。

圖1 由于顏色區域變化造成風格化效果不佳
基于卷積神經網絡的圖像風格遷移算法[6]的基本工作原理如下:
假設風格圖像xS和待處理的內容圖像xC,其對應CNN網絡第l層的卷積特征分別表示為Fl(xS)和Fl(xC)。其中Fl(x)的每一列都是一個矢量特征映射,并且Fl∈RMl(x)×Nl(Nl為CNN網絡第l層的特征映射數量,即卷積通道數量;Ml(x)=Hl(x)×Wl(x)是每個特征映射的高度和寬度的乘積,Ml(x)由輸入圖像的分辨率大小決定)。
Ltotal=αLC+βLS
(1)
其中LC為內容損失函數,在CNN網絡第l層。LC表示為:
(2)
LS為風格損失函數,表示CNN網絡多層風格損失函數的加權疊加,即:
(3)
(4)
其中Gl(x)為圖像x對應CNN網絡第l層卷積特征的Gram矩陣。
(5)
基于文獻[6]中所論述方法,本文采用VGG-19網絡模型進行訓練,利用“conv4_2”輸出進行內容損失LC的計算,采用“conv1_1”“conv2_1”“conv3_1”及“conv4_1”的輸出進行風格損失的計算。
如圖2所示,基于亮度與色度信息的圖像風格遷移網絡由3部分構成,分別為風格化子網Style-Subnet、紋理細化子網Refine-Subnet和損失網絡Loss-Network。其中風格化子網Style-Subnet和紋理細化子網Refine-Subnet構成1個多層前饋神經網絡。輸入圖像xC首先通過風格化子網Style-Subnet,以顏色和亮度信息為特征進行風格遷移,然后經過紋理細化子網Refine-Subnet對精細的紋理進行處理。2個子網的輸出和內容圖像、風格圖像共同構造損失網絡Loss-Network,通過對整體損失Total Loss進行優化訓練處理,完成整個遷移過程。
在一幅圖像的空間尺度上,顏色信息是其在特征感知方面的重要特征,它在很大程度上獨立于圖像的筆觸紋理變化等其他風格特征。而從另外一個方面來看,由于人眼的視覺感知系統對亮度變化的敏感程度遠遠高于對顏色變化的敏感程度[16-19],因而亮度信息又可以作為圖像風格的細節變化以及精細紋理特征的重要表述。基于上述原因,圖像的色彩和亮度信息都可以作為風格遷移網絡的重要感知特征,成為圖像風格化有意義的控制緯度。

圖2 風格遷移網絡整體框架
3.1.1顏色直方圖匹配


(6)
其中:A為3×3矩陣;b為一個三維向量。假設μC和μS分別為內容圖像和風格圖像的顏色均值,ΣC和ΣS分別為內容圖像和風格圖像的協方差,則有:
(7)
(8)

b=μS-AμC
(9)
(10)
基于上述約束條件,將內容圖像和風格圖像顏色信息作為Color-Block的輸入進行訓練。
3.1.2亮度匹配
假設內容圖像和風格圖像的亮度通道分別為LC和LS,Luminance-Block將內容圖像的亮度LC進行遷移,以實現和風格圖像的亮度LS相匹配。假設μC和μS分別為內容圖像和風格圖像的亮度均值,σC和σS分別為二者的標準差,則圖像的亮度遷移可以通過式(11)進行表示。

(11)
本文采用YUV色彩空間,分別將內容圖像和風格圖像的亮度分量Y作為式(11)中亮度通道LC和LS的值,對Luminance-Block網絡進行學習訓練。
Color-Block和Luminance-Block輸出的feature map分別按照顏色通道分量和亮度通道分量沿著向量深度進行連接,作為CNN-Block的卷積特征輸入進一步進行處理。
Color-Block、Luminance-Block和CNN-Block的網絡設計及訓練策略基于文獻[11,16,20]中所述方法進行。

按照如圖2所示網絡結構,其損失函數為
(12)

(13)

基于上述網絡結構及學習策略,本文提出的圖像風格遷移算法流程如下:
步驟1讀取風格圖像和內容圖像,并進行歸一化處理。
步驟2進行圖像色彩空間變換,內容圖像和風格圖像分別從RGB色彩空間轉換為YUV色彩空間。
步驟3將內容圖像和風格圖像的亮度分量Y和顏色分量UV分別作為風格化子網Style-Subnet的Luminance-Block和Color-Block的輸入,Color-Block按照式(6)~(10)約束,Luminance-Block按照式(11)約束,采用文獻[11,16,20]的方法進行訓練。
步驟4將Luminance-Bloc和Color-Block輸出的feature map分別沿著顏色通道分量和亮度通道分量進行拼接運算,作為CNN-Block的卷積特征輸入,按照文獻[11,16,20]所述方法進行訓練。


步驟7將步驟6計算輸出的各子網遷移損失按照式(12)進行加權運算,計算網絡的整體遷移損失。
步驟8對步驟7的計算結果進行評價,并按照上述步驟進行迭代訓練,直到滿足訓練要求。
實驗中采用微軟的COCO數據集[21]進行訓練,該數據集中包含82 783張圖片。訓練過程中batch_size參數設定為4,epoch參數設定為2,將圖像歸一化為256×256分辨率,采用Adam優化器進行迭代優化。利用VGG-19網絡模型的“conv4_2”輸出進行內容損失LC的計算,采用“conv1_1”“conv2_1”“conv3_1”及“conv4_1”的輸出進行風格損失LS的計算,內容損失權重參數content_weight設定為1,風格損失權重參數style_weight則根據不同的風格圖像進行設定。由于紋理細化子網Refine_Subnet是在風格化子網Style-Subnet進行圖像整體藝術風格遷移基礎上對紋理、筆觸等細節進行處理,因而紋理細化子網Refine_Subnet的損失計算在整個網絡的損失計算中相對于風格化子網Style-Subnet來說應占有較小的比例,本文中,2個子網的損失權重比例設定為λ1∶λ2=1∶0.5。
基于上述網絡結構及訓練策略,實驗中將本文所采用的方法與Johnson[11]和Ulyanov[13]的方法用相同的風格損失權重進行對比,結果如圖3所示。
圖3中,第1列為待處理的內容圖像,第2列為風格圖像,第3列到第5列分別為Jonhson、Ulyanov和本文所采用算法的實驗效果。從圖中可以看出,相對于前兩種算法處理結果,本文所采用算法在色彩、紋理細節及整體藝術風格上都具有較好的效果表現,在藝術表現上和風格圖像具有更強的相關性。
圖4和圖5分別為2張圖像風格遷移效果的細節紋理局部放大。由圖4可以看出,采用梵高的《羅納河上的星夜(Starry Night Over the Rhone)》做風格遷移,對于顏色變化不明顯的大面積色塊天空區域,Jonhson和 Ulyanov的處理效果均無法正確表現出原作品中天空的變化和筆觸的細節變化。而采用本文所提出的神經網絡模型進行處理后,能較好地將原作品的藝術風格效果還原出來。
圖5為采用埃米爾·諾爾德的《庭園(Blumengarten)》和畢加索的《坐著的裸女(Seated Female Nude)》做風格遷移。從原始圖像的局部放大可以看出,相對于Jonhson和 Ulyanov的處理效果,本文采用的神經網絡模型進行訓練處理后,在筆觸的細節上能夠更好地對原作品的藝術風格進行展現。

圖3 實驗結果對比

圖4 局部放大效果對比(一)

圖5 局部放大效果對比(二)
本文全部實驗所采用的硬件環境為:Intel Core(TM) i7-4790 3.6GHZ八核處理器;DDR3 16G內存;NVIDIA GTX 1070i顯卡。將本文所采用算法分別與Jonhson在文獻[11]中和Ulyanov在文獻[13]中所述算法進行比較,分別對1 000張1 024×768分辨率的圖像進行處理,平均處理速度和內存使用情況如表1所示。從表1中可以看出:本文采用算法的平均處理速度為6.9 s,內存使用為4 900 M。在相同的硬件環境下,處理速度和內存使用相對于其他兩種風格遷移網絡來說基本相當。

表1 算法性能比較
在分析深度學習圖像風格遷移算法在遷移效果方面存在主要問題的基礎上,通過將圖像的顏色信息和亮度信息分離,構建多尺度分層網絡,解決了由于大面積色塊帶來的風格化效果不佳和紋理細節及筆觸風格表現不足的問題,可以使圖像在整體藝術風格和細節特征處理效果上得到有效提升。