CVPR 2022|快手聯(lián)合中科院自動化所提出基于Transformer的圖像風(fēng)格化方法
本文提出了一種基于 Transformer 的圖像風(fēng)格遷移方法,我們希望該方法能推進圖像風(fēng)格化的前沿研究以及 Transformer 在視覺尤其是圖像生成領(lǐng)域的應(yīng)用。
論文鏈接:https://arxiv.org/abs/2105.14576
代碼地址:https://github.com/diyiiyiii/StyTR-2
圖像風(fēng)格化是一個有趣且實用的課題,它可以使用參考的風(fēng)格圖像來呈現(xiàn)內(nèi)容圖像,多年以來在學(xué)術(shù)界被廣泛研究,并已在包括短視頻領(lǐng)域在內(nèi)的業(yè)界得到大規(guī)模的落地應(yīng)用。例如,移動互聯(lián)網(wǎng)用戶可以通過快手主站、極速版、一甜相機和快影等一系列 APP,體驗包括手繪、水彩、油畫和 Q 版萌系風(fēng)格在內(nèi)的各種人像風(fēng)格化特效。
傳統(tǒng)的基于紋理合成的風(fēng)格化方法可以生成生動的風(fēng)格化圖像,但由于包含筆畫外觀和繪畫過程的建模,計算起來很復(fù)雜。隨后,研究人員聚焦于基于卷積神經(jīng)網(wǎng)絡(luò)的神經(jīng)風(fēng)格化?;趦?yōu)化的風(fēng)格化方法參照內(nèi)容圖像與風(fēng)格圖像,不斷迭代優(yōu)化生成結(jié)果。按照編碼器 - 風(fēng)格化模塊 - ****的設(shè)計,任意風(fēng)格化方法利用端到端的方式,根據(jù)風(fēng)格圖片調(diào)整內(nèi)容圖片的二階統(tǒng)計信息,可以高效地生成風(fēng)格化結(jié)果。但是,由于對內(nèi)容和風(fēng)格之間關(guān)系的建模能力有限,這些方法在很多情況下不能取得令人滿意的結(jié)果。為了克服這一問題,一些研究方法應(yīng)用自注意機制來改進風(fēng)格化結(jié)果。
目前主流的的風(fēng)格化方法一般利用卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)風(fēng)格和內(nèi)容表示。由于卷積運算的感受野有限,只有卷積網(wǎng)絡(luò)比較深,才能捕獲圖片的長程依賴關(guān)系。但是,網(wǎng)絡(luò)深度的增加會導(dǎo)致圖片特征分辨率降低和細節(jié)的丟失。細節(jié)的缺失體現(xiàn)在風(fēng)格化結(jié)果中就是會影響內(nèi)容結(jié)構(gòu)的保存和風(fēng)格模式的顯示。如圖 1(a) 所示,基于卷積神經(jīng)網(wǎng)絡(luò)的風(fēng)格化算法在特征提取過程中忽略了一些細節(jié),網(wǎng)絡(luò)淺層關(guān)注局部特征,深層通過整合局部信息才能獲取全局信息。此外,有研究工作發(fā)現(xiàn)典型的基于 CNN 的風(fēng)格化方法獲取的內(nèi)容表示是不準(zhǔn)確的,會導(dǎo)致內(nèi)容泄漏的問題: 經(jīng)過幾輪重復(fù)的風(fēng)格化操作,風(fēng)格化結(jié)果中幾乎不能保留任何原始輸入的內(nèi)容結(jié)構(gòu)信息。
圖 1 (a)基于 CNN 的風(fēng)格化中間層可視化結(jié)果;(b)我們的方法中間層可視化結(jié)果隨著 Transformer 在自然語言處理 ( Natural Language Processing, NLP) 領(lǐng)域的成功,基于 Transformer 的架構(gòu)已被用于各種視覺任務(wù)。Transformer 應(yīng)用 于計算機視覺的優(yōu)點有兩個:首先,在自注意機制的幫助下,Transformer 可以很容易地學(xué)習(xí)輸入的全局信息,從而在每一層都可以獲得對輸入的整體的理解; 其次,Transformer 是一種關(guān)系建模的結(jié)構(gòu),不同層可以提取相似的結(jié)構(gòu)信息 (如圖 1(b) 所示)。因此,Transformer 具有較強的特征表示能力,可以避免特征提取過程中細節(jié)的丟失,并能很好地保存生成的結(jié)構(gòu)。
本文針對基于 CNN 的風(fēng)格化方法存在的內(nèi)容表達存在偏差的問題,提出了一種新穎的圖像風(fēng)格化算法,即 StyTr^2。方法
為了利用 Transformer 捕獲長期依賴關(guān)系的能力來實現(xiàn)圖像風(fēng)格化,本文設(shè)計了圖 2 中結(jié)構(gòu),模型主要包括三部分:內(nèi)容 Transformer 編碼器,風(fēng)格 Transformer 編碼器和 Transformer ****。內(nèi)容 Transformer 編碼器和風(fēng)格 Transformer 編碼器分別用來編碼內(nèi)容域和風(fēng)格域的圖片的長程信息,這種編碼方式可以有效避免細節(jié)丟失問題。Transformer ****用來將內(nèi)容特征轉(zhuǎn)換為帶有風(fēng)格圖片特征的風(fēng)格化結(jié)果。
圖 2 網(wǎng)絡(luò)結(jié)構(gòu)
此外,本文針對傳統(tǒng)位置編碼提出兩個重要問題。第一,對于圖像生成任務(wù),在計算 PE(位置編碼)時,是否應(yīng)該考慮圖像語義? 傳統(tǒng)的 PE 是根據(jù)按照邏輯排序的句子來設(shè)計的,而圖像序列是根據(jù)圖像內(nèi)容語義來組織的。假設(shè)兩個圖像補丁之間的距離為 d(.,.) 。如圖 3(a) 右邊部分所示,d((0 , 3 ), (1 , 3 )) (紅色和綠色塊) 之間的差異與 d(( 0 , 3 ), (3 , 3 )) (紅色和青色 塊) 之間的差異應(yīng)該是相似的,因為風(fēng)格化任務(wù)要求相似的內(nèi)容補丁有相似的風(fēng)格化結(jié)果。第二,當(dāng)輸入圖像尺寸呈指數(shù)級增大時,傳統(tǒng)的正弦位置編碼是否仍然適用于視覺任務(wù)? 如 3(a) 所示,當(dāng)圖像大小發(fā)生變化時,相同語義位置的補丁 (用藍色小矩形表示) 之間的相對距離會發(fā)生顯著變化,這不適合視覺任務(wù)中的多尺度輸入要求。
圖 3 CAPE 計算示意圖
為此,本文提出了內(nèi)容感知的位置編碼 (Content-Aware Positional Encoding,CAPE),它具有尺度不變且與內(nèi)容語義相關(guān)的特點,更適合于風(fēng)格化任務(wù)。
結(jié)果展示
如圖 4 所示,與 state-of-the-art 方法相比,StyTr^2 利用了基于 Transformer 的網(wǎng)絡(luò),具有更好的特征表示能力,捕獲輸入圖像的長期依賴關(guān)系,并避免丟失內(nèi)容和風(fēng)格細節(jié)。因此,本文方法的結(jié)果可以實現(xiàn)高質(zhì)量的風(fēng)格化,使結(jié)果同時保持良好的內(nèi)容結(jié)構(gòu)和豐富的風(fēng)格模式。
圖 4 風(fēng)格化結(jié)果比較
圖 5 展示了第 1 輪和第 20 輪的風(fēng)格化結(jié)果。首先,比較第一輪的風(fēng)格化結(jié)果?;?CNN 的方法生成的結(jié)果內(nèi)容結(jié)構(gòu)受到了不同程度的破壞,但本文的結(jié)果仍然具有清晰的內(nèi)容結(jié)構(gòu)。雖然 ArtFlow 生成的結(jié)果保持了清晰的內(nèi)容結(jié)構(gòu),但風(fēng)格化的效果并不令人滿意 (例如,邊緣缺陷和不合適的樣式模式)。其次,隨著風(fēng)格化次數(shù)的增加,基于 CNN 的方法生成的內(nèi)容結(jié)構(gòu)趨于模糊,而我們的方法生成的內(nèi)容結(jié)構(gòu)仍然是清晰的。
圖 5 多輪風(fēng)格化結(jié)果比較
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。