朱佳寶,張建勛,陳虹伶
重慶理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,重慶400054
在短視頻興起的時(shí)代,各種風(fēng)格濾鏡效果備受人們喜愛(ài),圖像風(fēng)格遷移技術(shù)已經(jīng)廣泛地被人們熟知。然而,許多圖像風(fēng)格遷移方法一個(gè)模型都只能針對(duì)一種風(fēng)格,在應(yīng)用上效率低下。
Gatys等人[1]在2015年首次提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的統(tǒng)計(jì)分布參數(shù)化紋理建模方法,他們發(fā)現(xiàn)VGG(Visual Geometry Group)網(wǎng)絡(luò)的高層能夠很好地表達(dá)圖像的語(yǔ)義風(fēng)格信息,網(wǎng)絡(luò)的低層能夠很好地表示圖像的內(nèi)容紋理特征信息,通過(guò)計(jì)算Gram矩陣來(lái)表示一種風(fēng)格紋理,再利用圖像重建的方法,不斷優(yōu)化迭代來(lái)更新白噪聲圖像的像素值,使其Gram矩陣與風(fēng)格圖Gram矩陣相似,最后重建出既具有風(fēng)格圖的風(fēng)格又具有內(nèi)容圖像的內(nèi)容,這一研究引起了后來(lái)學(xué)者的廣泛研究,并成功使用深度學(xué)習(xí)技術(shù)來(lái)進(jìn)行風(fēng)格遷移。
文獻(xiàn)[2]從理論上驗(yàn)證了Gram矩陣為什么能夠代表風(fēng)格特征,認(rèn)為神經(jīng)風(fēng)格遷移的本質(zhì)是匹配風(fēng)格圖像與生成圖像之間的特征分布,并提出一種新的在不同層使用批歸一化統(tǒng)計(jì)量對(duì)風(fēng)格建模方法,通過(guò)在VGG網(wǎng)絡(luò)不同層的特征表達(dá)的每一個(gè)通道的均值和方差來(lái)表示風(fēng)格,為后續(xù)研究提供了風(fēng)格建模的參考。這些方法都是在CNN(Convolutional Neural Networks)網(wǎng)絡(luò)的高層特征空間提取特征,高層特征空間是對(duì)圖像的一種抽象表達(dá),容易丟失一些低層次的信息,比如邊緣信息的丟失會(huì)造成結(jié)構(gòu)上形變。文獻(xiàn)[3]提出在風(fēng)格遷移的同時(shí)應(yīng)該考慮到像素空間和特征空間,在Gatys提出的損失函數(shù)基礎(chǔ)上,將在像素空間的內(nèi)容圖進(jìn)行拉普拉斯算子濾波,得到的結(jié)果與生成圖之間的差異作為一個(gè)新的損失添加進(jìn)去,彌補(bǔ)了在抽象特征空間丟失低層次圖像信息的缺點(diǎn)。文獻(xiàn)[4]分別將內(nèi)容圖像與風(fēng)格圖像進(jìn)行語(yǔ)義分割,來(lái)增強(qiáng)圖像的邊緣真實(shí)性。
文獻(xiàn)[5]提出了一個(gè)取代Gram損失的MRF損失,將風(fēng)格圖與生成圖分成若干塊,對(duì)每個(gè)生成圖中的塊去尋找與其最接近的風(fēng)格塊,這種基于塊匹配的風(fēng)格建模方法比以往的統(tǒng)計(jì)分布方法有的主要優(yōu)勢(shì)在于,當(dāng)風(fēng)格圖不是一幅藝術(shù)畫(huà)作,而是同樣的攝影作品,可以很好地保留圖像中的局部結(jié)構(gòu)等信息,提高了模型的泛化能力。文獻(xiàn)[6-7]在Gatys的方法基礎(chǔ)上,提出一種快速風(fēng)格遷移方法,通過(guò)一個(gè)前向網(wǎng)絡(luò)去學(xué)習(xí)一個(gè)風(fēng)格,前向網(wǎng)絡(luò)基于殘差網(wǎng)絡(luò)設(shè)計(jì),損失函數(shù)依然采用Gatys的算法。文獻(xiàn)[8]對(duì)基于塊匹配的風(fēng)格遷移算法做了改進(jìn),引入生成對(duì)抗網(wǎng)絡(luò),使用鑒別器來(lái)替代塊匹配這一過(guò)程,加速了風(fēng)格遷移的效率。
這些方法在靜態(tài)圖像的風(fēng)格遷移任務(wù)中,對(duì)于每一個(gè)風(fēng)格都需要單獨(dú)訓(xùn)練一個(gè)模型,不利于工業(yè)的落地使用。對(duì)于有很多種風(fēng)格的應(yīng)用來(lái)說(shuō),每一個(gè)模型都會(huì)占用大量的存儲(chǔ)空間,鑒于此,很多學(xué)者就開(kāi)始研究利用一個(gè)模型去學(xué)習(xí)多種風(fēng)格。文獻(xiàn)[9]提出通過(guò)發(fā)掘出不同風(fēng)格網(wǎng)絡(luò)之間共享的部分,然后對(duì)于新的風(fēng)格只去改變有差別的部分,共享的部分保持不變,他們發(fā)現(xiàn)在訓(xùn)練好的風(fēng)格網(wǎng)絡(luò)基礎(chǔ)上,只通過(guò)在Instance Norlization層做一個(gè)彷射變換,每個(gè)新風(fēng)格只需要去訓(xùn)練很少的參數(shù),就可以得到一個(gè)具有完全不同網(wǎng)絡(luò)風(fēng)格的結(jié)果。文獻(xiàn)[10]提出一種自適應(yīng)實(shí)例正則化層(AdaIN),通過(guò)權(quán)衡內(nèi)容特征與風(fēng)格特征之間的均值和方差,實(shí)現(xiàn)了一種多風(fēng)格遷移模型,但是這種方法會(huì)對(duì)遷移紋理呈現(xiàn)塊狀干擾。文獻(xiàn)[11]提出將任意風(fēng)格圖像的語(yǔ)義信息對(duì)齊風(fēng)格特征來(lái)重建內(nèi)容特征,不僅在整體上匹配其特征分布,又較好地保留了細(xì)節(jié)的風(fēng)格信息。但是這種方法會(huì)在一定程度上造成模糊的情況。文獻(xiàn)[12]把風(fēng)格化網(wǎng)絡(luò)中間層稱為StyleBank層,將其與每個(gè)風(fēng)格綁定,對(duì)于新風(fēng)格只去訓(xùn)練StyleBank層,其余層保持不變。文獻(xiàn)[13]通過(guò)預(yù)測(cè)實(shí)例正則化的參數(shù)來(lái)適應(yīng)不同的內(nèi)容與風(fēng)格樣式,雖然實(shí)現(xiàn)了任意內(nèi)容與風(fēng)格的轉(zhuǎn)換,卻降低了風(fēng)格化的效果。
假設(shè)應(yīng)用需要有n種風(fēng)格化遷移場(chǎng)景,就需要有n種模型堆砌在應(yīng)用中,勢(shì)必會(huì)造成應(yīng)用占用大量資源,并且用戶體驗(yàn)也會(huì)下降。針對(duì)這種問(wèn)題,本文提出一種可學(xué)習(xí)的線性變換網(wǎng)絡(luò),可以接受任意的一對(duì)內(nèi)容圖像和風(fēng)格圖像,使用兩組CNNs網(wǎng)絡(luò)來(lái)作為轉(zhuǎn)換網(wǎng)絡(luò)模塊,以此來(lái)擬合被風(fēng)格遷移廣泛使用的Gram矩陣,一組用來(lái)擬合內(nèi)容特征,另一組用來(lái)擬合風(fēng)格特征。通過(guò)實(shí)驗(yàn)得出,本文的風(fēng)格遷移方法具有更高的靈活性,風(fēng)格化效果也大有提示,并能夠很好地應(yīng)用在視頻風(fēng)格化領(lǐng)域。
單模型是指訓(xùn)練一個(gè)模型,單風(fēng)格是指這個(gè)模型只能遷移一種風(fēng)格。文獻(xiàn)[7]在Gatys等人的方法基礎(chǔ)上,提出去訓(xùn)練一個(gè)特定的前饋網(wǎng)絡(luò),來(lái)改善Gatys等人提出的風(fēng)格遷移方法耗時(shí)的問(wèn)題。主要是針對(duì)一張風(fēng)格圖去訓(xùn)練模型,在測(cè)試階段只需要輸入一張內(nèi)容圖像,就可以得到一個(gè)固定風(fēng)格樣式的圖像。其網(wǎng)絡(luò)結(jié)果如圖1所示。
這種模型結(jié)構(gòu)由兩個(gè)網(wǎng)絡(luò)組成,一個(gè)圖像轉(zhuǎn)換網(wǎng)絡(luò)和一個(gè)損失網(wǎng)絡(luò)。其中圖像轉(zhuǎn)換模型由一個(gè)下采樣層、中間殘差塊層、后一個(gè)上采樣層構(gòu)成。訓(xùn)練階段風(fēng)格圖像是固定的,只有一張,而內(nèi)容圖像則是使用COCO數(shù)據(jù)集,試圖用一張風(fēng)格圖像來(lái)擬合多種內(nèi)容圖像,來(lái)達(dá)到一個(gè)快速遷移的效果。
其中x是輸入圖像,經(jīng)過(guò)圖像轉(zhuǎn)換模塊得到了風(fēng)格化圖y?,y s表示風(fēng)格圖像,yc表示的是輸入的內(nèi)容圖像,其實(shí)yc=x。而后通過(guò)一個(gè)損失函數(shù)網(wǎng)絡(luò),分別計(jì)算y?與y c在不同網(wǎng)絡(luò)層之間的內(nèi)容損失,y?與y s之間的風(fēng)格損失。網(wǎng)絡(luò)中內(nèi)容損失選擇的是relu3_3層,風(fēng)格損失是多層的組合,越低層風(fēng)格化的效果越清晰,與內(nèi)容紋理相近;越高層風(fēng)格化的效果就越抽象,內(nèi)容紋理越扭曲。
雖然基于訓(xùn)練前饋網(wǎng)絡(luò)的方法能夠提高風(fēng)格遷移的速度,但是一個(gè)模型只能處理特定的風(fēng)格,在實(shí)際應(yīng)用上嚴(yán)重不足。因此,研究一種單模型多風(fēng)格遷移方法有實(shí)際的應(yīng)用意義。本文在該方法的基礎(chǔ)上,提出一種改進(jìn)方法,使得一個(gè)模型可以遷移多種風(fēng)格。
圖1 單模型單風(fēng)格遷移模型示意圖
圖2 改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)圖
在風(fēng)格遷移任務(wù)中,通常都是在一個(gè)網(wǎng)絡(luò)中分別對(duì)內(nèi)容圖像和風(fēng)格圖像進(jìn)行處理,通過(guò)一個(gè)預(yù)訓(xùn)練好的VGG分類網(wǎng)絡(luò),從網(wǎng)絡(luò)提取出的高層特征,兩張圖像的歐式距離越小,說(shuō)明兩張圖在內(nèi)容上是相似的;從網(wǎng)絡(luò)提取的低層特征,用Gram矩陣統(tǒng)計(jì)的共同特性越多,則表示兩張圖像的風(fēng)格是越接近的。
但是,風(fēng)格圖像往往有其共同的相似性,比如印象派的風(fēng)格擁有相似的筆觸,它們只是色彩上有差異,梵高的畫(huà)作與莫奈的畫(huà)作也有很多相似之處。本文希望通過(guò)學(xué)習(xí)到不同風(fēng)格之間的共同特性,使用線性變化來(lái)將任意風(fēng)格遷移到內(nèi)容圖像上。
本文網(wǎng)絡(luò)結(jié)構(gòu)由三部分組成,一個(gè)是預(yù)訓(xùn)練好的編碼器解碼器模塊,用來(lái)提取圖像特征和重建圖像,風(fēng)格轉(zhuǎn)換模塊用來(lái)學(xué)習(xí)任意風(fēng)格之間的線性變換,損失函數(shù)網(wǎng)絡(luò)模塊用來(lái)約束重建網(wǎng)絡(luò),生成出高質(zhì)量的圖像。本文網(wǎng)絡(luò)的結(jié)構(gòu)圖如圖2所示。
其中的Encoder、Decoder和loss model都是采用VGG網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)絡(luò)的輸入是一對(duì)256×256大小的圖片,通過(guò)Encode分別提取出內(nèi)容特征F c和風(fēng)格特征F s。文獻(xiàn)[6]中直接將Fc與F s直接通過(guò)轉(zhuǎn)換網(wǎng)絡(luò)來(lái)重建圖像,這些重建的圖像細(xì)膩度較低,越低層的特征重建出的效果會(huì)越好,所以本文通過(guò)跳躍連接的方式,將Fc與轉(zhuǎn)換網(wǎng)絡(luò)輸出結(jié)果進(jìn)行連接,以此重建出更加細(xì)膩,更加符合內(nèi)容圖像特征的風(fēng)格化結(jié)果。
大多數(shù)風(fēng)格遷移研究人員都直接將F s作為風(fēng)格的提取特征來(lái)和Fc進(jìn)行對(duì)比計(jì)算,這種方式會(huì)隨著風(fēng)格圖像的增多,風(fēng)格化的質(zhì)量逐漸下降。本文使用了一個(gè)中間虛擬函數(shù)?s來(lái)表示風(fēng)格特征,?s可以對(duì)F s做非線性映射,即?s=?(F s)。本文的優(yōu)化目標(biāo)是獲得最小的F d,使得編碼器輸出的特征圖與所遷移的風(fēng)格特征圖盡可能的匹配,其優(yōu)化公式如下:
其中,N是像素個(gè)數(shù),C是通道數(shù),表示將特征向量F進(jìn)行零均值化,表示F d與?s之間的最小中心協(xié)方差。并且,由公式(1)可知,當(dāng)且僅當(dāng)F向量模的平方最小時(shí),才有最小值,即:
由奇異值分解可得:
其中,U是一組正交基,可知轉(zhuǎn)換遷移特征向量T都是由內(nèi)容特征向量與風(fēng)格特征向量之間的協(xié)方差矩陣決定的。為了避免大量的協(xié)方差之間的矩陣運(yùn)算,本文設(shè)計(jì)的轉(zhuǎn)換網(wǎng)絡(luò)模塊能夠直接地輸出結(jié)果矩陣,并將內(nèi)容特征與風(fēng)格特征項(xiàng)分開(kāi),網(wǎng)絡(luò)轉(zhuǎn)換模塊設(shè)計(jì)如圖3所示。
圖3 轉(zhuǎn)換網(wǎng)絡(luò)設(shè)計(jì)圖
對(duì)編碼器輸出的內(nèi)容特征F c與風(fēng)格特征F s設(shè)置單獨(dú)的通道,包含3個(gè)卷積層,卷積核大小都是3×3,卷積核數(shù)量依次減半,將卷積操作得出的與其轉(zhuǎn)置矩陣進(jìn)行相乘得到其對(duì)應(yīng)的協(xié)方差矩陣,在將得出的協(xié)方差矩陣通過(guò)一個(gè)全連接層,再與風(fēng)格特征通道進(jìn)行內(nèi)積,得出轉(zhuǎn)換矩陣T。
本文采用組合的多級(jí)風(fēng)格損失函數(shù),風(fēng)格特征損失主要將VGG網(wǎng)絡(luò)的relu1_2、relu2_2、relu3_3三層進(jìn)行合并,通過(guò)組合的多層次風(fēng)格損失,用來(lái)增強(qiáng)轉(zhuǎn)換網(wǎng)絡(luò)的泛化能力。內(nèi)容特征損失主要來(lái)自VGG網(wǎng)絡(luò)的第relu3_3和relu4_3層。
風(fēng)格損失計(jì)算方法與內(nèi)容損失計(jì)算一致,都是采用二者特征激活值做距離差平方計(jì)算,是風(fēng)格損失在三層網(wǎng)絡(luò)中的平均值,其公式如下:
因此,本文的總損失函數(shù)為:
本文的損失模塊設(shè)計(jì)圖如圖4所示。
圖4 損失模塊設(shè)計(jì)圖
高層的內(nèi)容特征信息能夠夠重建出原圖的內(nèi)容,低層的風(fēng)格特征信息能夠更好地表示風(fēng)格,所以本文沒(méi)有取第5層的特征信息。本文的風(fēng)格重建損失是VGG網(wǎng)絡(luò)前三層損失之和,內(nèi)容重建損失分別使用的是relu3_3層和relu4_3層,為了驗(yàn)證本文的轉(zhuǎn)換模塊是否能夠靈活地適應(yīng)不同層的風(fēng)格損失,本文將使用不同的內(nèi)容重建損失的生成效果進(jìn)行展示,如圖5所示。
圖5 不同層內(nèi)容損失與組合風(fēng)格損失效果
根據(jù)圖5實(shí)驗(yàn)結(jié)果,使用的組合風(fēng)格損失能夠很好地表現(xiàn)出風(fēng)格圖像的風(fēng)格;使用relu4_3層的內(nèi)容損失重建出來(lái)的圖像,在紋理上更清晰,色彩上更加平滑。
動(dòng)態(tài)視頻風(fēng)格化遷移通常是將視頻拆分成一幀一幀的圖像,將每一幀圖像送入訓(xùn)練好的模型,得到風(fēng)格化效果的幀圖像,然后再將風(fēng)格化幀圖像重新組合成視頻。但是這種方式特別依賴模型的規(guī)模,若是模型特別繁重,風(fēng)格化過(guò)程會(huì)特別耗時(shí),且容易造成抖動(dòng)和閃爍的問(wèn)題。
視頻中的抖動(dòng)和閃爍問(wèn)題,多數(shù)領(lǐng)域都是添加光流[14]來(lái)加強(qiáng)時(shí)間一致性約束。Ruder等人[15]采用基于迭代優(yōu)化的方式,通過(guò)添加光流一致性約束,來(lái)重點(diǎn)計(jì)算運(yùn)動(dòng)物體的邊界,以此來(lái)保持風(fēng)格化后視頻的連續(xù)性,雖然這種方法能夠解決視頻閃爍的問(wèn)題,引入光流的計(jì)算會(huì)帶來(lái)更大的計(jì)算開(kāi)銷,會(huì)降低風(fēng)格化速度。
第2章所介紹的模型,證明了本文的線性變換能夠快速地適用于風(fēng)格變換,并且網(wǎng)絡(luò)是輕量的,它只有兩組CNNS結(jié)構(gòu),共6個(gè)卷積層,2個(gè)全連接層,輕量的網(wǎng)絡(luò)能夠快速地完成風(fēng)格遷移過(guò)程,能夠產(chǎn)生穩(wěn)定傳輸?shù)囊曨l。這是因?yàn)閮?nèi)容視頻與風(fēng)格化后的視頻應(yīng)該存在某種相似性,這種相似性應(yīng)該是二者在像素和特征信息之間具備某種一定的相似性。在風(fēng)格化過(guò)程中,這種信息相似關(guān)系會(huì)被保留下來(lái)。
事實(shí)上,靜態(tài)圖像風(fēng)格遷移與視頻遷移中的相似性保留是一致的,只是屬于不同形式的矩陣表示關(guān)系,它們都可以用特征信息之間的線性變換表示。令Sim(F)表示特征之間的相似性保留,其相似性關(guān)系表示為:
在本文的設(shè)計(jì)中,網(wǎng)絡(luò)每層中輸出的特征圖大小決定了這種相似性所保留的尺度,為了使得這種相似性能最大化地保留,本文選擇了更淺層的網(wǎng)絡(luò),在自編碼器結(jié)構(gòu)中,使用VGG網(wǎng)絡(luò)relu3_1層作為輸出,僅對(duì)風(fēng)格樣式進(jìn)行一次特征提取,然后將其應(yīng)用在所有幀上,這樣可以減少大量的計(jì)算,且能夠有效保持幀間的內(nèi)容關(guān)聯(lián)性,這是因?yàn)橐曨l遷移中,幀間的內(nèi)容關(guān)聯(lián)性主要依賴于內(nèi)容特征。其應(yīng)用結(jié)果在本文的4.4節(jié)展示。可以發(fā)現(xiàn),使用線性變換來(lái)映射風(fēng)格遷移能夠有效地應(yīng)用在動(dòng)態(tài)視頻遷移,并且對(duì)于運(yùn)動(dòng)物體也能有效地解決閃爍和抖動(dòng)的問(wèn)題。
下面介紹本文實(shí)驗(yàn)的相關(guān)軟硬件環(huán)境及訓(xùn)練細(xì)節(jié):
(1)硬件環(huán)境:處理器為Intel?CoreTMi7-8750H CPU@2.20 GHz,8 GB DDR4內(nèi)存,顯卡為NVIDIA GeForce GTX1050Ti 4 GB獨(dú)立顯卡。
(2)軟件環(huán)境:Linux Mint19.2操作系統(tǒng),Python3.6,CUDA9.2,troch0.4.1-cu92,opencv3.6等相關(guān)工具包。
本文實(shí)驗(yàn)內(nèi)容數(shù)據(jù)集使用MS-COCO,使用Kaggle比賽上的Painter by numbers WikiArt數(shù)據(jù)集作為本文的風(fēng)格數(shù)據(jù)集。其中內(nèi)容數(shù)據(jù)集有80 000多張圖片,圖像內(nèi)容多種多樣,包括人物照、風(fēng)景照、建筑照等;風(fēng)格數(shù)據(jù)集有8 000張圖片。
由于數(shù)據(jù)集里面圖片大小不一,所有圖片送入網(wǎng)絡(luò)前都需進(jìn)行預(yù)處理,保持圖像之間的比例關(guān)系,將大小重新調(diào)整為300×300,然后從中隨機(jī)裁剪出256×256大小區(qū)域作為訓(xùn)練樣本輸入,因此網(wǎng)絡(luò)可以處理任意大小的輸入。
本文將網(wǎng)絡(luò)分為兩步訓(xùn)練,首先訓(xùn)練對(duì)稱的編碼器、解碼器結(jié)構(gòu)來(lái)重建任意輸入圖像,使用在ImageNet上預(yù)訓(xùn)練好的VGG網(wǎng)絡(luò)作為初始化參數(shù),當(dāng)訓(xùn)練損失穩(wěn)定時(shí)結(jié)束訓(xùn)練,然后將其參數(shù)固定,最后訓(xùn)練轉(zhuǎn)換網(wǎng)絡(luò)。本文BatchSize設(shè)置為1,其中內(nèi)容損失權(quán)重為α=1,風(fēng)格損失權(quán)重β=0.02,這是為了使得重建出的風(fēng)格圖像能夠保留更多的內(nèi)容信息,學(xué)習(xí)率為0.000 1。
為了驗(yàn)證本文方法的有效性,本文分別與Johnson[6]、AdaIN[10]、Avatar-net[11]和Ghiasi[15]的方法進(jìn)行比較,風(fēng)格化實(shí)驗(yàn)效果如圖6所示。分別測(cè)試了三種風(fēng)格類型的遷移效果,第一行是對(duì)梵高的油畫(huà)作品進(jìn)行風(fēng)格遷移,從圖中可以看到,Johnson和AdaIN方法的風(fēng)格化紋理遷移過(guò)重,導(dǎo)致生成圖片天空處顯得雜亂,Avatar-net方法能夠較好地匹配內(nèi)容與風(fēng)格特征,只是生成效果顯得暗淡,Ghiasi的方法在天空區(qū)域風(fēng)格紋理過(guò)重,本文的方法能夠更好地匹配內(nèi)容與風(fēng)格特征,且生成效果更具觀賞性。第二行是對(duì)素描風(fēng)格類型進(jìn)行遷移,輸入的是一張年輕女性頭像,其中Johnson的方法在眼睛處風(fēng)格效果不佳,AdaIN方法在紋理上顯得粗糙,Avatar-net方法風(fēng)格化后在嘴角鼻子出顯得扭曲,Ghiasi的方法在頭發(fā)臉頰等處遷移效果不夠細(xì)膩,而本文方法能夠在臉部細(xì)節(jié)與頭發(fā)紋理上都有著最好的表現(xiàn)。第三行是對(duì)密集風(fēng)格塊類型進(jìn)行遷移,其中Johnson的方法紋理遷移過(guò)重,AdaIN方法紋理已變得模糊,Avatar-net方法在建筑邊界區(qū)已信息丟失,Ghiasi的方法對(duì)風(fēng)格樣式的模塊化遷移紋理太重,導(dǎo)致風(fēng)格化效果有很多雜亂的小方塊,而本文的方法重建出的圖像紋理信息保存完整,風(fēng)格化效果也比較完整,沒(méi)有出現(xiàn)大的扭曲現(xiàn)象。
本文的生成效果能夠更好,得益于轉(zhuǎn)換網(wǎng)絡(luò)采用了雙通道結(jié)構(gòu),將內(nèi)容特征與風(fēng)格特征分開(kāi)處理,減少了噪聲的引入,所以生成的圖像內(nèi)容與風(fēng)格之間才能有較少的干擾。
本文選用了一段健身愛(ài)好者跑步的視頻作為實(shí)驗(yàn)數(shù)據(jù),時(shí)長(zhǎng)共33 s,首先使用ffmpeg將視頻拆分成一幀一幀的圖像,總計(jì)拆分為338幀圖像。本文將該動(dòng)態(tài)視頻轉(zhuǎn)換為具有梵高畫(huà)作的風(fēng)格視頻,并對(duì)關(guān)鍵幀的結(jié)果進(jìn)行展示,如圖7所示。
該實(shí)驗(yàn)數(shù)據(jù)包含鏡頭的變換,鏡頭從前往后在拉近,從結(jié)果可以看出,本文的風(fēng)格遷移算法在運(yùn)動(dòng)物體上具有很好的穩(wěn)定性,不需要添加光流等方法,就可以遷移出具有穩(wěn)定的幀圖像,也沒(méi)有出現(xiàn)遷移過(guò)度的問(wèn)題,幀圖像上的影子等場(chǎng)景也沒(méi)有被風(fēng)格化侵蝕,整體上來(lái)說(shuō),本文方法的遷移效果質(zhì)量完成度高,內(nèi)容圖像特征保留完整,風(fēng)格化效果適中,風(fēng)格化速度快。
為驗(yàn)證本文方法在視頻風(fēng)格遷移中更具有效性,分別與Avatar-net和AdaIN方法進(jìn)行對(duì)比,抽取上述視頻中第10幀、第224幀與第329幀圖像進(jìn)行展示,其結(jié)果如圖8所示。
圖6 三種風(fēng)格類型的遷移效果實(shí)驗(yàn)結(jié)果對(duì)比圖
圖7 關(guān)鍵幀風(fēng)格遷移效果
圖8 關(guān)鍵幀效果對(duì)比圖
從結(jié)果展示可以看出,本文的方法出現(xiàn)的偽影較少,風(fēng)格化效果最佳。
由于風(fēng)格化難以有定量的實(shí)驗(yàn)值來(lái)作為評(píng)價(jià),其好壞的評(píng)價(jià)受個(gè)人主觀因素的影響。大多數(shù)的研究人員都是采用與其他實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比來(lái)作為評(píng)價(jià)方法。本文主要采用峰值信噪比(PSNR)與結(jié)構(gòu)相似性(SSIM)來(lái)作為度量方法。
PSNR用來(lái)衡量圖像的生成質(zhì)量,SSIM用來(lái)衡量圖像的結(jié)構(gòu)相似性,這兩個(gè)值越大表示風(fēng)格化的圖像質(zhì)量越高,以運(yùn)行時(shí)間復(fù)雜度為指標(biāo),本文以256×256大小的圖像作為測(cè)試數(shù)據(jù),以i7-8750H CPU作為計(jì)算處理器,分別與Johnson、AdaIN、Avatar-net和Ghiasi的方法進(jìn)行比較,其結(jié)果如表1所示。
表1 定量分析結(jié)果及運(yùn)行時(shí)間對(duì)比
從表1中可以觀察出,峰值信噪比本文得到11.591的分?jǐn)?shù),比其他四種都要高一些,說(shuō)明本文方法生成的圖像質(zhì)量最高。結(jié)構(gòu)性本文方法獲得0.499的分?jǐn)?shù),同樣比其他方法要高,說(shuō)明本文方法生成的圖像與內(nèi)容圖像具有更高的相似性。
由于本文方法沒(méi)有使用Gram矩陣,減少了大量的矩陣運(yùn)行,所以本文方法在所需要使用的運(yùn)行時(shí)間更少。
以往的風(fēng)格遷移模型,每個(gè)模型只能對(duì)應(yīng)一種風(fēng)格,當(dāng)遷移其他風(fēng)格圖像的時(shí)候就需要重新去訓(xùn)練模型,使得應(yīng)用效率低下。本文通過(guò)提出一種線性變換的輕量網(wǎng)絡(luò)結(jié)構(gòu),使得單個(gè)模型可以遷移任意風(fēng)格,大大改善了在實(shí)際應(yīng)用上的能力;且在實(shí)驗(yàn)效果上相比其他方法有一定的提升,并且對(duì)動(dòng)態(tài)視頻幀也有一定的風(fēng)格約束能力。