吳子揚(yáng),賀 丹,李映琴
(東莞理工學(xué)院城市學(xué)院,廣東 東莞 523419)
計(jì)算機(jī)視覺技術(shù)[1]是一門研究關(guān)于如何利用照相機(jī)和計(jì)算機(jī)來獲取用戶感興趣的被拍攝對(duì)象的數(shù)據(jù)與信息的技術(shù),圖像處理作為計(jì)算機(jī)視覺研究領(lǐng)域中的熱點(diǎn)內(nèi)容,尤其是在人工智能技術(shù)飛速發(fā)展的情形下,學(xué)者對(duì)圖像處理技術(shù)的研究與日俱增,研究成果也十分顯著。
在圖像處理的領(lǐng)域中,一些學(xué)者利用深度學(xué)習(xí)方法在圖像風(fēng)格遷移應(yīng)用中取得了良好的風(fēng)格遷移效果,所謂圖像風(fēng)格遷移[2],就是利用計(jì)算機(jī)處理技術(shù)將內(nèi)容圖像A中融入風(fēng)格圖像B的風(fēng)格特點(diǎn),從而得到風(fēng)格遷移的結(jié)果圖像C,使結(jié)果圖像C既具有內(nèi)容圖像A的內(nèi)容特征,又具有風(fēng)格圖像B的紋理、色彩等風(fēng)格特征。其中內(nèi)容圖像A可以是生活照、風(fēng)景照等寫實(shí)類型的圖像,風(fēng)格圖像B可以是素描畫、油畫、民族畫等風(fēng)格鮮明的圖像,通過圖像風(fēng)格遷移,將風(fēng)格圖像B的風(fēng)格特色融入到內(nèi)容圖像A中,使結(jié)果圖像C既呈現(xiàn)出內(nèi)容圖像A的內(nèi)容特征,又具有風(fēng)格圖像B的紋理、色彩特征。已有研究人員將圖像風(fēng)格遷移技術(shù)應(yīng)用在刺繡風(fēng)格數(shù)字合成[3]、現(xiàn)代室內(nèi)家居設(shè)計(jì)[4]等領(lǐng)域,將傳統(tǒng)藝術(shù)風(fēng)格與現(xiàn)代科學(xué)技術(shù)進(jìn)行融合,給圖像處理領(lǐng)域帶來新的體驗(yàn)。
在2015年GATYS[5-6]等人提出運(yùn)用深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)模型來實(shí)現(xiàn)圖像的風(fēng)格遷移這一目標(biāo),通過分類內(nèi)容圖像A的內(nèi)容特征表示和風(fēng)格圖像B的風(fēng)格特征表示,實(shí)現(xiàn)了圖像風(fēng)格遷移,且效果較為理想。因此,本文在此基礎(chǔ)上,利用基于卷積神經(jīng)網(wǎng)絡(luò)的VGG-19模型,結(jié)合Google人工智能開源框架TensorFlow設(shè)計(jì)出快速圖像風(fēng)格遷移算法,利用圖像風(fēng)格遷移實(shí)例開展圖像風(fēng)格遷移應(yīng)用研究。
在圖像風(fēng)格遷移過程中,將深度學(xué)習(xí)的方法應(yīng)用在圖像特征提取中,已經(jīng)取得了較好的研究效果[7-8]。尤其是隨著深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN)、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)等方法在圖像處理領(lǐng)域中的廣泛應(yīng)用,圖像風(fēng)格遷移效果逐步提高。
卷積神經(jīng)網(wǎng)絡(luò)由多層神經(jīng)網(wǎng)絡(luò)構(gòu)成,主要包括5個(gè)層級(jí)結(jié)構(gòu):輸入層(Input layer)、卷積層(CONV layer)、激勵(lì)函數(shù)(ReLU layer)、池化層(Pooling layer)和全連接層(FC layer)。其中輸入層進(jìn)行數(shù)據(jù)輸入,同時(shí)對(duì)輸入的數(shù)據(jù)做簡(jiǎn)單的處理,包括去均值、歸一化、PCA/SVD降維等。卷積層是卷積神經(jīng)網(wǎng)絡(luò)中最重要的一層,主要進(jìn)行局部關(guān)聯(lián),將每一個(gè)神經(jīng)元當(dāng)成一個(gè)濾波器,同時(shí)利用滑動(dòng)窗口機(jī)制用濾波器對(duì)局部數(shù)據(jù)進(jìn)行卷積計(jì)算,通過卷積層提取出輸入數(shù)據(jù)的特征,并輸出對(duì)應(yīng)的特征矩陣。激勵(lì)層主要是對(duì)卷積層的輸出結(jié)果執(zhí)行一次非線性映射操作,常用的激勵(lì)函數(shù)包括Sigmod函數(shù)、ReLU函數(shù)、Tanh函數(shù)等。池化層也可以稱為欠采樣或者下采樣。主要用于特征降維,壓縮數(shù)據(jù)和參數(shù)的數(shù)量,減小數(shù)據(jù)的過擬合,并提高模型的容錯(cuò)性。全連接層將經(jīng)過卷積層、激勵(lì)函數(shù)、池化層等操作之后的數(shù)據(jù)元素串聯(lián)在一起,并作為分類判決的投票值,并根據(jù)投票值得到最終的分類結(jié)果。
VGG(Visual Geometry Group Network)神經(jīng)網(wǎng)絡(luò)模型是由牛津大學(xué)的計(jì)算機(jī)視覺組和Google Deep-Mind公司于2014年一起研發(fā)的深度卷積神經(jīng)網(wǎng)絡(luò)[9],自研發(fā)成功以來已經(jīng)推出了VGG-16、VGG-19等網(wǎng)絡(luò)模型。VGG-19神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)如圖1所示,從圖中可知,VGG-19網(wǎng)絡(luò)由16個(gè)卷積層、5個(gè)池化層、3個(gè)全連接層組成,卷積核大小為3×3,卷積步長(zhǎng)為1,池化層中的池化方式為最大池化maxpool。目前,在基于深度學(xué)習(xí)的圖像風(fēng)格遷移研究中,VGG-19模型在圖像特征提取環(huán)節(jié)表現(xiàn)十分出色。
圖1 VGG-19神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)圖
2011年谷歌大腦發(fā)起大規(guī)模深度學(xué)習(xí)應(yīng)用研究,并推出了“第一代機(jī)器學(xué)習(xí)系統(tǒng)”DisBelief,通過DisBelief構(gòu)建各尺度下的神經(jīng)網(wǎng)絡(luò)分布式學(xué)習(xí)和交互系統(tǒng),這一系統(tǒng)在谷歌公司的產(chǎn)品中被廣泛使用。在2015-11,谷歌大腦基于DisBelief推出了“第二代機(jī)器學(xué)習(xí)系統(tǒng)”TensorFlow[10],并將TensorFlow代碼開源,與DisBelief相比,TensorFlow處理性能更高,系統(tǒng)框架的靈活性和可移植性也得到提升。
在TensorFlow中用Tensor表示張量,是一個(gè)多維數(shù)組,使用張量的目的是構(gòu)造更高維度的數(shù)組或者向量,滿足更多場(chǎng)景的實(shí)驗(yàn)需求。用Flow表示基于數(shù)據(jù)流圖的計(jì)算過程,TensorFlow程序的計(jì)算過程分為構(gòu)建計(jì)算圖和執(zhí)行計(jì)算圖,其中計(jì)算圖的構(gòu)建過程是將數(shù)據(jù)計(jì)算內(nèi)容和計(jì)算過程用一個(gè)完整的數(shù)據(jù)流圖表示出來。
自TensorFlow發(fā)布以來,先后推出了1.0版本和2.0版本,均支持卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)、長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM)等常見深度神經(jīng)網(wǎng)絡(luò)模型。本文基于VGG-19神經(jīng)網(wǎng)絡(luò)模型,借助深度學(xué)習(xí)框架TensorFlow進(jìn)行圖像風(fēng)格遷移研究,TensorFlow框架的使用提高了研究效率。
圖像風(fēng)格遷移是計(jì)算機(jī)視覺研究領(lǐng)域中的一個(gè)重要研究?jī)?nèi)容,一個(gè)簡(jiǎn)單的圖像風(fēng)格遷移的實(shí)例如圖2表示。其中圖2(a)為內(nèi)容圖像,是一張小女孩在海邊的生活照,圖2(b)為風(fēng)格圖像,選取了梵高的星空油畫作品,風(fēng)格圖像色彩以藍(lán)、黃為主,圖2(c)為風(fēng)格遷移之后的結(jié)果圖像,通過觀察結(jié)果圖像可知,遷移之后的結(jié)果圖像內(nèi)容與圖2(a)保持一致,同時(shí)又具有圖2(b)中的色彩、紋理等風(fēng)格。
此外,從圖2中“圖像風(fēng)格遷移網(wǎng)絡(luò)”模塊部分可知,首先通過VGG-19神經(jīng)網(wǎng)絡(luò)模型分別提取出內(nèi)容圖像的內(nèi)容特征和風(fēng)格圖像的風(fēng)格特征,接著通過損失函數(shù)分別計(jì)算出內(nèi)容損失和風(fēng)格損失,并以總誤差下降為目標(biāo),不斷調(diào)整模型參數(shù)和迭代次數(shù),最終實(shí)現(xiàn)圖像風(fēng)格遷移。
圖2 圖像風(fēng)格遷移實(shí)例
本文重點(diǎn)研究VGG-19神經(jīng)網(wǎng)絡(luò)模型在圖像風(fēng)格遷移領(lǐng)域的應(yīng)用,以Google的TensorFlow框架為模型實(shí)現(xiàn)框架,實(shí)現(xiàn)圖像風(fēng)格遷移研究。
實(shí)驗(yàn)項(xiàng)目以Python為編程語言,以TensorFlow為框架實(shí)現(xiàn)VGG-19神經(jīng)網(wǎng)絡(luò)模型。實(shí)驗(yàn)硬件平臺(tái)處理器為Intel(R)Core(TM)i5-7200U,主頻為2.50 GHz,內(nèi)存為8.00 GB。
實(shí)驗(yàn)過程中,選取圖2(a)中小女孩在海邊的生活照為內(nèi)容圖像,以色彩和風(fēng)格鮮明的經(jīng)典油畫作品為風(fēng)格圖像,分別進(jìn)行不同條件下的圖像風(fēng)格遷移實(shí)驗(yàn)。
選擇小女孩在海邊的生活照為內(nèi)容圖像,如圖3(a)所示。選取梵高的星空油畫作品為風(fēng)格圖像,如圖3(b)所示。采用不用的模型參數(shù)和訓(xùn)練次數(shù),得到的結(jié)果分別如圖3(c)、(d)、(e)所示。
從圖3可知,在使用相同的內(nèi)容圖像和風(fēng)格圖像,選取不同的模型參數(shù)和模型訓(xùn)練次數(shù)得到的圖像風(fēng)格遷移結(jié)果是不同的,遷移結(jié)果圖像的色彩特征、紋理特征等都存在明顯的不同。
圖3 不同模型參數(shù)的圖像風(fēng)格遷移結(jié)果
選擇小女孩在海邊的生活照為內(nèi)容圖像,如圖4(a)所示。分別選取不同風(fēng)格的的油畫作為風(fēng)格圖像,如圖4(b)、(c)、(d)、(e)所示。采用相同的模型參數(shù)和訓(xùn)練次數(shù),得到的圖像風(fēng)格遷移結(jié)果分別如圖4(f)、(g)、(h)、(i)所示。
從圖4可知,當(dāng)采用同一內(nèi)容圖像,不同的風(fēng)格圖像,在相同的模型參數(shù)和訓(xùn)練次數(shù)的情況下,得到的風(fēng)格遷移結(jié)果各不相同,展現(xiàn)的色彩特征、紋理特征等也存在較大差異。
圖4 不同風(fēng)格圖像的圖像風(fēng)格遷移結(jié)果
本文以圖像風(fēng)格遷移為主要研究?jī)?nèi)容,借助VGG-19神經(jīng)網(wǎng)絡(luò)模型分別提取內(nèi)容圖像的內(nèi)容特征和風(fēng)格圖像的風(fēng)格特征,以Google人工智能框架TensorFlow為實(shí)現(xiàn)框架,通過設(shè)置不同的模型參數(shù)和迭代次數(shù),逐步降低內(nèi)容損失和風(fēng)格損失,最終實(shí)現(xiàn)圖像風(fēng)格遷移。從實(shí)驗(yàn)可知,采用本文方法實(shí)現(xiàn)的圖像風(fēng)格遷移效果良好,既保證了內(nèi)容圖像的完整性,同時(shí)具有風(fēng)格圖像的色彩特征、紋理特征等特性。在今后,將繼續(xù)研究提高圖像風(fēng)格遷移算法,進(jìn)一步提高圖像風(fēng)格遷移效率,并將研究結(jié)果推廣至實(shí)際生活生產(chǎn)應(yīng)用中。