基于《Arbitrary Style Transfer with Style-Attentional Networks》的视频风格迁移
一、方法介紹
本文是參照Arbitrary Style Transfer With Style-Attentional Networks[1]中圖像風(fēng)格遷移的方法去實現(xiàn)視頻風(fēng)格遷移。其工作的主要貢獻為:
1)提出了SANet去靈活匹配風(fēng)格特征和內(nèi)容特征在語義上相近的部分;
2)針對SANet和decoder組成的網(wǎng)絡(luò)提出了新的損失函數(shù);
3)風(fēng)格化圖像的效率以及質(zhì)量都很高。
源碼:https://github.com/GlebBrykin/SANET
1.1總體結(jié)構(gòu)
圖1是論文[1]方法的總體框架。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1 算法框架
從圖1中看出該算法主要由編碼器、SANet以及解碼器構(gòu)成。編碼器使用的是預(yù)訓(xùn)練好的VGG19,用來提取內(nèi)容圖像和風(fēng)格圖像的特征,SANet負責(zé)將來自VGG19的Style feature map和Content feature map根據(jù)其注意力進行結(jié)合,而解碼器的網(wǎng)絡(luò)結(jié)構(gòu)則是與編碼器所對稱的,可以利用結(jié)合后的feature map進行圖像的重建,得到的圖像即為風(fēng)格化后的圖像。本算法利用了VGG19的Relu4_1和Relu5_1兩個網(wǎng)絡(luò)層輸出的特征去進行結(jié)合,這是因為只使用Relu4_1可以很好保留風(fēng)格圖像和內(nèi)容圖像的全局結(jié)構(gòu),但其局部風(fēng)格顯示效果不好。而Relu5_1對其局部風(fēng)格表現(xiàn)的效果較好,因為其接受域更大。所以利用Relu4_1和Relu5_1輸出的特征都利用兩個SANet結(jié)合后再整合得到最終的風(fēng)格圖像。其效果展示見圖2。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖2 不同網(wǎng)絡(luò)層特征進行風(fēng)格化的效果對比
1.2 SANet
下面對算法中建立的SANet進行簡單的介紹,其網(wǎng)絡(luò)結(jié)構(gòu)見圖3。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖3 SANet結(jié)構(gòu)
SANet主要由3個(1,1)的卷積層構(gòu)成,其輸入Fc和Fs為VGG19輸出的內(nèi)容圖像和風(fēng)格圖像的特征圖。對其先進行歸一化處理得到和,然后通過f和g計算其注意力,公式如下:
C(F)為歸一化因子。SANet可以通過學(xué)習(xí)來映射內(nèi)容和樣式特征圖之間的關(guān)系(例如相似度),從而在內(nèi)容特征圖的每個位置嵌入適當(dāng)?shù)娘L(fēng)格特征。
1.3損失函數(shù)
本文訓(xùn)練所使用的損失函數(shù)由三部分組成,分別是傳統(tǒng)的風(fēng)格和內(nèi)容損失以及本文新提出的identity損失。
如圖1顯示,我們借助了預(yù)訓(xùn)練好的encoder去計算損失函數(shù)。其中內(nèi)容損失計算的是風(fēng)格化圖像通過encoder的特征與原內(nèi)容圖像的特征歸一化后的歐幾里得距離。風(fēng)格損失是計算的Relu1_1,Relu2_1,Relu3_1,Relu4_1,和Relu5_1上的AdaIN風(fēng)格損失。Identity損失的計算過程見圖4。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖4 identity損失計算圖
輸入的內(nèi)容圖像和風(fēng)格圖像為同一張圖,再利用得到的風(fēng)格化圖像與原圖在像素級上和感知層上計算差異。
圖5展示了損失函數(shù)中權(quán)重對風(fēng)格遷移結(jié)果的影響。其中(a)將λidentity1、λidentity2和λs分別固定為0、0和5,并將λc從1增大到50所獲得的結(jié)果;(b)通過將λc和λs分別固定為0和5,并將λidentity1和λidentity2分別從1到100和從50到5,000增大獲得的結(jié)果。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖5 不同權(quán)重配比下的風(fēng)格化結(jié)果
在沒有identity損失的情況下,如果增加內(nèi)容損失的權(quán)重,則可以保留內(nèi)容結(jié)構(gòu),但是由于內(nèi)容損失和風(fēng)格損失之間的權(quán)衡,風(fēng)格的特征會逐漸消失。 相反,在沒有內(nèi)容損失的情況下增加identity損失的權(quán)重,可以在保持風(fēng)格的同時盡可能多地保留內(nèi)容圖像的結(jié)構(gòu)。但是,無法避免內(nèi)容結(jié)構(gòu)的失真。因此,采用了內(nèi)容損失和identity損失的組合來維護內(nèi)容結(jié)構(gòu),同時豐富風(fēng)格特征。
二、改進
源碼:https://github.com/EnchanterXiao/video-style-transfer
2.1 基礎(chǔ)模型
我們使用的基礎(chǔ)模型,是上文預(yù)訓(xùn)練的模型。使用的內(nèi)容圖像數(shù)據(jù)集為COCO2014,風(fēng)格圖像數(shù)據(jù)集為WikiArt。優(yōu)化函數(shù)使用的是Adam,初始學(xué)習(xí)率為1e-4,batch size為5(5對內(nèi)容和風(fēng)格圖像),迭代的次數(shù)為500000。其參數(shù)配置為λc=1,λs=3,λidentity1=50,λidentity2=1。
2.2添加損失函數(shù)
由于原文的目的是圖像的風(fēng)格遷移,當(dāng)將其直接應(yīng)用于視頻風(fēng)格遷移時,其輸出的結(jié)果在流暢度上并不是十分令人滿意的。所以我們們通過添加時序上的平滑損失和圖像空間上的平滑損失,來增加視頻的流暢度。
圖像空間上的平滑損失來源于文[2],通過計算生成圖像在水平和垂直軸上的平均梯度作為損失函數(shù)。
時序上的一致性通過查找文獻,發(fā)現(xiàn)一般主要由兩種方式去進行實現(xiàn),一類從模型角度引入 voxel 的關(guān)聯(lián),另一類從損失函數(shù)的角度限制。在視頻風(fēng)格遷移中,時序損失函數(shù)上比較常見的方法是計算前后幀輸入圖像的光流,其利用t-1幀的輸出圖像以及光流預(yù)測t幀的圖像,再與t幀的輸出結(jié)果計算差異。但是,我們在自制視頻數(shù)據(jù)集上進行損失函數(shù)的測試時,發(fā)現(xiàn)了兩個問題:一是訓(xùn)練時間的增長較多,二是相鄰幀的圖像利用光流預(yù)測后的差異有時候要比直接計算的差異還大。基于以上原因,我們選擇了論文[3]中提出的思路,直接用相鄰幀之間的特征圖的差作為時序上的損失。但是個人感覺該loss雖然可以保證視頻的平滑,但是也可能抑制幀之間該有的變化。
2.3 視頻數(shù)據(jù)集
為了提升該模型在視頻遷移上的效果,我們利用視頻序列制作了專門的內(nèi)容圖像的數(shù)據(jù)集。我們從videvo.net上隨機下載了63個短視頻,其時長都在30s以下,將其解幀,其中60個視頻序列為訓(xùn)練集,大約27000張圖片,3個作為測試集。
2.4 實驗
我們的實驗是微調(diào)文[1]中預(yù)訓(xùn)練好的模型,加入2.2中的損失函數(shù)。利用2.3中的數(shù)據(jù)集和WikiArt數(shù)據(jù)集進行訓(xùn)練。相關(guān)參數(shù)與2.1保持一致,新添加的損失函數(shù)權(quán)重分別為λt=2,λtv=20。同時對訓(xùn)練數(shù)據(jù)的抽取方法進行調(diào)整,隨機抽取圖片時會同時返回它的前一幀圖片。進行100000次的迭代,在NVIDIA Titan X上的訓(xùn)練時間約為30小時,學(xué)習(xí)曲線見圖6。
微調(diào)之后的結(jié)果對于視頻風(fēng)格遷移的效果明顯優(yōu)于基準(zhǔn)模型,效果對比請見demo附圖。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖6學(xué)習(xí)曲線(從上到下依次是Lt、Ltv以及Ltotal的loss曲線)
參考文獻
?
?
總結(jié)
以上是生活随笔為你收集整理的基于《Arbitrary Style Transfer with Style-Attentional Networks》的视频风格迁移的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第七章 假设检验(2)
- 下一篇: MOSSE相关滤波跟踪算法(二)