【翻译】Fast Patch-based Style Transfer of Arbitrary Style
基于補(bǔ)丁的任意風(fēng)格的快速遷移
文章目錄
- Abstract
- 1. Introduction
- 2. Related Work
- 3. 風(fēng)格遷移的新目標(biāo)
- 3.1. 風(fēng)格互換(Style Swap)
- 3.2. 可并行化的實(shí)現(xiàn)
- 3.3. 優(yōu)化公式
- 4. 逆向網(wǎng)絡(luò)(Inverse Network)
- 4.1. 訓(xùn)練逆向網(wǎng)絡(luò)
- 4.2. 前饋風(fēng)格轉(zhuǎn)移過程
- 5. 實(shí)驗(yàn)
- 5.1. Style Swap Results
- 5.2. CNN反轉(zhuǎn)(CNN Inversion)
- 5.3. 計(jì)算時(shí)間(Computation Time)
- 6. 討論
Abstract
藝術(shù)風(fēng)格轉(zhuǎn)移是一個(gè)圖像合成問題,即用另一個(gè)圖像的風(fēng)格來再現(xiàn)圖像的內(nèi)容。最近的工作表明,通過使用預(yù)先訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)的隱藏激活,可以實(shí)現(xiàn)視覺上吸引人的風(fēng)格轉(zhuǎn)移。然而,現(xiàn)有的方法要么應(yīng)用
(i)一個(gè)對(duì)任何風(fēng)格的圖像都有效但非常昂貴的優(yōu)化程序,要么
(ii)一個(gè)有效的前饋網(wǎng)絡(luò),只允許有限數(shù)量的訓(xùn)練風(fēng)格。
在這項(xiàng)工作中,我們提出了一個(gè)更簡(jiǎn)單的基于局部匹配的操作目標(biāo),將內(nèi)容結(jié)構(gòu)和風(fēng)格紋理結(jié)合在預(yù)訓(xùn)練網(wǎng)絡(luò)的單一層中。我們表明,我們的目標(biāo)具有良好的特性,如更簡(jiǎn)單的優(yōu)化環(huán)境,直觀的參數(shù)調(diào)整,以及在視頻中逐幀表現(xiàn)的一致性。此外,我們使用80,000幅自然圖像和80,000幅繪畫來訓(xùn)練一個(gè)近似于優(yōu)化結(jié)果的逆向網(wǎng)絡(luò)。這就產(chǎn)生了一個(gè)高效的藝術(shù)風(fēng)格轉(zhuǎn)移程序,但也允許任意的內(nèi)容和風(fēng)格圖像。
1. Introduction
著名藝術(shù)家通常以特定的藝術(shù)風(fēng)格而聞名,這需要多年的發(fā)展。即使一旦被發(fā)現(xiàn),一件藝術(shù)作品也可能需要幾天甚至幾個(gè)月的時(shí)間來創(chuàng)作。這促使我們?nèi)ヌ剿鲃?chuàng)造藝術(shù)圖像的有效計(jì)算策略。雖然有大量關(guān)于紋理合成方法的經(jīng)典文獻(xiàn),從一張空白的畫布上創(chuàng)造出藝術(shù)品[8, 20, 22, 35],但最近的一些方法研究了將一個(gè)圖像的理想風(fēng)格轉(zhuǎn)移到另一個(gè)圖像的結(jié)構(gòu)內(nèi)容上的問題。這種方法被稱為藝術(shù)風(fēng)格轉(zhuǎn)換法。
藝術(shù)風(fēng)格的模糊概念很難被量化。早期的工作是用相似度或基于像素值的局部統(tǒng)計(jì)來定義風(fēng)格[7, 8, 13, 14, 20, 24]。然而,最近取得令人印象深刻的視覺質(zhì)量的方法來自于使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)進(jìn)行特征提取[9, 10, 11, 21]。這些方法的成功甚至創(chuàng)造了一個(gè)可以按需對(duì)用戶提供的圖像進(jìn)行風(fēng)格化的移動(dòng)應(yīng)用市場(chǎng)[15, 29, 32]。
盡管有這種新的興趣,但實(shí)際的風(fēng)格轉(zhuǎn)移過程是基于解決一個(gè)復(fù)雜的優(yōu)化程序,這在今天的硬件上可能需要幾分鐘。一個(gè)典型的加速解決方案是訓(xùn)練另一個(gè)神經(jīng)網(wǎng)絡(luò),在一個(gè)簡(jiǎn)單的前饋通道中接近優(yōu)化的最佳狀態(tài)[6, 17, 33, 34]。雖然速度更快,但使用這種方法的現(xiàn)有作品犧牲了能夠?qū)θ魏谓o定的風(fēng)格圖像進(jìn)行風(fēng)格轉(zhuǎn)換的通用性,因?yàn)榍梆伨W(wǎng)絡(luò)不能超越其訓(xùn)練的圖像集的范圍。由于這一限制,前述應(yīng)用要么耗時(shí),要么在提供的風(fēng)格數(shù)量上受到限制,這取決于風(fēng)格轉(zhuǎn)換的方法。
在這項(xiàng)工作中,我們提出了一種解決這些限制的方法:一種新的藝術(shù)風(fēng)格轉(zhuǎn)移方法,它是有效的,但不局限于有限的風(fēng)格集合。為了實(shí)現(xiàn)這一點(diǎn),我們?yōu)轱L(fēng)格轉(zhuǎn)換定義了一個(gè)新的優(yōu)化目標(biāo),該目標(biāo)顯然只取決于CNN的一個(gè)層(與現(xiàn)有的使用多層的方法相反)。新的目標(biāo)導(dǎo)致了視覺上吸引人的結(jié)果,而這個(gè)簡(jiǎn)單的限制允許我們使用一個(gè) "反轉(zhuǎn)網(wǎng)絡(luò) "來確定地反轉(zhuǎn)來自風(fēng)格化層的激活,以產(chǎn)生風(fēng)格化的圖像。
第2節(jié)回顧了相關(guān)的工作,而第3-4節(jié)描述了我們新的優(yōu)化目標(biāo),即在一個(gè)激活層中結(jié)合風(fēng)格和內(nèi)容統(tǒng)計(jì)。然后,我們提出了一種訓(xùn)練神經(jīng)網(wǎng)絡(luò)的方法,它可以在激活層中產(chǎn)生一個(gè)圖像。第5節(jié)介紹了新方法的實(shí)驗(yàn),表明它具有現(xiàn)有公式中所沒有的理想特性。
2. Related Work
作為優(yōu)化的風(fēng)格轉(zhuǎn)移(Style Transfer as Optimization)。Gatys等人[11]將風(fēng)格轉(zhuǎn)移作為一個(gè)優(yōu)化問題,將紋理合成與內(nèi)容重建結(jié)合起來。他們的表述涉及放置在預(yù)訓(xùn)練的CNN的多個(gè)層上的加性損失函數(shù),其中一些損失函數(shù)用于合成風(fēng)格圖像的紋理,另一些損失函數(shù)用于重建內(nèi)容圖像。梯度是通過反向傳播計(jì)算的,基于梯度的運(yùn)算被用來解決風(fēng)格化圖像的問題。另一種方法是在內(nèi)容和風(fēng)格圖像之間使用基于補(bǔ)丁的相似性匹配[9, 10, 21]。特別是,Li和Wand[21]構(gòu)建了基于補(bǔ)丁的損失函數(shù),其中每個(gè)合成補(bǔ)丁都有一個(gè)必須匹配的最近鄰目標(biāo)補(bǔ)丁。這種補(bǔ)丁匹配損失函數(shù)然后與Gatys等人的公式相加。雖然這些方法允許任意風(fēng)格的圖像,但這些方法所使用的優(yōu)化框架使得生成風(fēng)格化圖像的速度很慢。這對(duì)于我們要對(duì)大量的幀進(jìn)行風(fēng)格化的視頻來說尤其重要。
前饋風(fēng)格網(wǎng)絡(luò)(Feed-forward Style Networks) 前面提到,可以訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)近似于Gatys等人對(duì)一種或多種固定風(fēng)格的損失函數(shù)的最佳值[6, 17, 33, 34]。這產(chǎn)生了一個(gè)更快的方法,但這些方法需要為每個(gè)新的風(fēng)格重新訓(xùn)練。
視頻的風(fēng)格轉(zhuǎn)移(Style Transfer for Video)。Ruder等人[30]引入了一個(gè)時(shí)間損失函數(shù),當(dāng)與Gatys等人的損失函數(shù)疊加使用時(shí),可以對(duì)視頻進(jìn)行具有時(shí)間一致性的風(fēng)格轉(zhuǎn)移。他們的損失函數(shù)重新在于光流算法,用于將風(fēng)格粘在附近的幀上。與逐幀應(yīng)用的風(fēng)格轉(zhuǎn)移相比,這導(dǎo)致了一個(gè)數(shù)量級(jí)的減慢。
反轉(zhuǎn)深度表示(Inverting Deep Representations) 有幾項(xiàng)工作為實(shí)現(xiàn)可視化的目標(biāo),訓(xùn)練了預(yù)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)的逆向網(wǎng)絡(luò)[3, 26]。其他的工作是將逆向網(wǎng)絡(luò)作為自動(dòng)編碼器的一部分來訓(xùn)練[19, 27, 36]。據(jù)我們所知,所有現(xiàn)有的逆向網(wǎng)絡(luò)都是用一個(gè)圖像數(shù)據(jù)集和一個(gè)置于RGB空間的損失函數(shù)進(jìn)行訓(xùn)練。
與現(xiàn)有的風(fēng)格轉(zhuǎn)移方法相比,我們提出了一種直接構(gòu)建預(yù)訓(xùn)練的CNN中單層目標(biāo)行為的方法。與Li和Wand[21]一樣,我們使用了一個(gè)標(biāo)準(zhǔn)來尋找激活空間中的最佳匹配斑塊。然而,我們的方法能夠直接構(gòu)建整個(gè)激活目標(biāo)。這種確定性的程序使我們能夠輕松地適應(yīng)視頻,而不需要依靠光流來解決一致性問題。除了優(yōu)化,我們還提出了一個(gè)前饋式風(fēng)格轉(zhuǎn)移程序,即倒置預(yù)先訓(xùn)練的CNN。與現(xiàn)有的前饋式風(fēng)格轉(zhuǎn)移方法不同,我們的方法不局限于專門訓(xùn)練的風(fēng)格,可以很容易地適應(yīng)任意的內(nèi)容和風(fēng)格印象。與現(xiàn)有的CNN反轉(zhuǎn)方法不同,我們的訓(xùn)練方法不使用像素級(jí)損失,而是使用激活的損失。通過使用一個(gè)特殊的訓(xùn)練設(shè)置(見第4.1節(jié)),這個(gè)反轉(zhuǎn)網(wǎng)絡(luò)甚至能夠反轉(zhuǎn)超出CNN激活通常范圍的激活。
3. 風(fēng)格遷移的新目標(biāo)
我們的風(fēng)格轉(zhuǎn)換方法的主要組成部分是一個(gè)基于補(bǔ)丁的操作,用于在單層中構(gòu)建目標(biāo)激活,給定風(fēng)格和內(nèi)容圖像。我們把這個(gè)過程重新稱為圖像的 “風(fēng)格轉(zhuǎn)換”,因?yàn)?strong>內(nèi)容圖像被風(fēng)格圖像逐片替換。我們首先在高層次上介紹這一操作,然后是關(guān)于我們實(shí)現(xiàn)的更多細(xì)節(jié)。
3.1. 風(fēng)格互換(Style Swap)
讓C和S分別表示內(nèi)容和style圖像的RGB表示,讓?duì)?-)是預(yù)先訓(xùn)練好的CNN的完全卷積部分所代表的函數(shù),它將圖像從RGB映射到一些中間激活空間。在計(jì)算了激活,Φ(C )和Φ(S)之后,風(fēng)格交換程序如下:
- 為內(nèi)容和風(fēng)格激活提取一組補(bǔ)丁,用{φi(C )}i∈nc和{φj(S)}j∈ns表示,其中nc和ns是提取補(bǔ)丁的數(shù)量。提取的斑塊應(yīng)該有足夠的重疊,并包含激活的所有通道。
- 對(duì)于每個(gè)內(nèi)容激活補(bǔ)丁,根據(jù)歸一化的交叉相關(guān)度,確定一個(gè)最匹配的風(fēng)格補(bǔ)丁,
- 將每個(gè)內(nèi)容激活補(bǔ)丁φi(C )與其最相近的樣式補(bǔ)丁φssi(C,S)進(jìn)行交換。
- 重建完整的內(nèi)容激活,我們用Φss(C,S)表示,通過對(duì)可能因步驟3而有不同數(shù)值的重疊陣列進(jìn)行平均化。
這種操作的結(jié)果是對(duì)應(yīng)于具有內(nèi)容圖像結(jié)構(gòu)的單一圖像的隱藏激活,但其紋理取自風(fēng)格圖像。
3.2. 可并行化的實(shí)現(xiàn)
為了給出一個(gè)有效的實(shí)現(xiàn)方法,我們表明全部風(fēng)格互換操作可以作為一個(gè)具有三種操作的網(wǎng)絡(luò)來實(shí)現(xiàn):
(i)一個(gè)二維卷積層,
(ii)一個(gè)通道方式 argmax,
(iii)一個(gè)二維轉(zhuǎn)置的卷積層。
這樣,風(fēng)格互換的實(shí)現(xiàn)就像使用現(xiàn)有的二維卷積和轉(zhuǎn)置卷積的有效實(shí)現(xiàn)一樣簡(jiǎn)單。
為了簡(jiǎn)明扼要地描述執(zhí)行情況,我們對(duì)內(nèi)容激活斑塊進(jìn)行重新索引,以明確表示空間結(jié)構(gòu)。特別是,我們讓d為Φ(C )的特征通道數(shù),讓?duì)誥,b(C )表示Φ(C )a:a+s, b:b+s, 1:d的補(bǔ)丁,其中s是補(bǔ)丁大小。
請(qǐng)注意,內(nèi)容激活補(bǔ)丁的歸一化項(xiàng)φi(C )相對(duì)于argmax操作而言是常數(shù),因此(1)可以改寫為
由于沒有對(duì)內(nèi)容激活斑塊進(jìn)行歸一化處理,因此簡(jiǎn)化了計(jì)算,并允許我們使用二維卷積層。以下三個(gè)步驟描述了我們的實(shí)現(xiàn),并在圖2中得到了說明:
圖2:風(fēng)格互換操作的圖示。二維卷積提取大小為3×3、步長(zhǎng)為1的斑塊,并對(duì)歸一化的交叉關(guān)系進(jìn)行分析。在進(jìn)行通道的argmax操作前后,有nc=9個(gè)空間位置和ns=4個(gè)特征通道。二維轉(zhuǎn)置卷積通過將每個(gè)最佳匹配的樣式補(bǔ)丁放在響應(yīng)的空間位置來重建完整的行為。
- 張量K可以通過使用歸一化的樣式激活補(bǔ)丁{φj(S)/||φj(S)||}作為卷積濾波器和Φ(C )作為輸入,通過單個(gè)二維卷積計(jì)算出來。計(jì)算出的K有nc個(gè)空間位置和ns個(gè)特征通道。在每個(gè)空間位置,Ka,b是一個(gè)內(nèi)容激活斑塊和所有樣式激活斑塊之間的交叉相關(guān)的向量。
- 為了準(zhǔn)備二維轉(zhuǎn)置卷積,我們將每個(gè)向量Ka,b重新置于一個(gè)對(duì)應(yīng)于最佳匹配風(fēng)格激活斑塊的單熱向量。
- 構(gòu)建Φss(C,S)的最后一個(gè)操作是二維轉(zhuǎn)置卷積,以K為輸入,以非正常化的風(fēng)格激活斑塊{φj(S)}為過濾器。在每個(gè)空間位置,只有最匹配的風(fēng)格激活補(bǔ)丁在輸出中,因?yàn)槠渌a(bǔ)丁被乘以零。
請(qǐng)注意,轉(zhuǎn)置的卷積會(huì)將重疊斑塊的值加起來。為了平均這些值,我們對(duì)輸出的每個(gè)間隔位置進(jìn)行元素除法,即重疊斑塊的數(shù)量。因此,我們不需要規(guī)定(3)中的argmax有一個(gè)唯一的解決方案,因?yàn)槎鄠€(gè) argmax 解決方案可以簡(jiǎn)單地解釋為添加更多的重疊補(bǔ)丁。
3.3. 優(yōu)化公式
風(fēng)格化圖像的像素表示可以通過在激活空間上放置一個(gè)損失函數(shù)與目標(biāo)激活Φss(C,S)來計(jì)算。與先前關(guān)于風(fēng)格轉(zhuǎn)移的工作[11, 21]類似,我們使用平方誤差損失,并將我們的優(yōu)化目標(biāo)定義為:
其中,我們說合成圖像的維度是h乘w乘d,||-||F是Frobenius規(guī)范,`TV(-)是圖像生成方法中廣泛使用的總變化正則化項(xiàng)[1, 17, 26]。由于Φ(-)包含多個(gè)對(duì)圖像進(jìn)行降采樣的maxpooling操作,我們將這個(gè)正則化作為一個(gè)自然的圖像先驗(yàn),為重新升采樣的圖像獲得空間上更平滑的結(jié)果。總變異正則化如下:
由于函數(shù)Φ(-)是預(yù)訓(xùn)練的CNN的一部分,并且至少是一次可微分的,(4)可以使用標(biāo)準(zhǔn)的基于子梯度的優(yōu)化方法來計(jì)算。
4. 逆向網(wǎng)絡(luò)(Inverse Network)
不幸的是,在視頻風(fēng)格化等應(yīng)用中,解決優(yōu)化問題以計(jì)算風(fēng)格化圖像的成本可能太高。我們可以通過使用其他神經(jīng)網(wǎng)絡(luò)近似優(yōu)化來提高運(yùn)算速度。一旦經(jīng)過訓(xùn)練,這個(gè)網(wǎng)絡(luò)就可以更快地生成風(fēng)格化圖像,我們將特別訓(xùn)練這個(gè)網(wǎng)絡(luò)的通用性,使其能夠使用新的內(nèi)容和新的風(fēng)格圖像。
我們的逆向網(wǎng)絡(luò)的主要目的是為任何目標(biāo)激活接近(4)中損失函數(shù)的最優(yōu)。因此,我們將最優(yōu)的反函數(shù)定義為:
其中f代表一個(gè)確定性的函數(shù),H是一個(gè)代表目標(biāo)激活的運(yùn)行變量。總變量正則化項(xiàng)被添加為類似于(4)的自然圖像先驗(yàn)。
4.1. 訓(xùn)練逆向網(wǎng)絡(luò)
由于預(yù)先訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)的特性,出現(xiàn)了幾個(gè)問題。
非注入式(Non-injective)。定義Φ(-)的CNN包含convolutional, maxpooling, 和ReLU層。這些函數(shù)是多對(duì)一的,因此沒有明確的反函數(shù)。與現(xiàn)有的使用逆向網(wǎng)絡(luò)的工作相似[4, 25, 36],我們改用參數(shù)化的神經(jīng)網(wǎng)絡(luò)來訓(xùn)練逆向關(guān)系的近似。
其中θ表示神經(jīng)網(wǎng)絡(luò)f的參數(shù),Hi是來自大小為n的數(shù)據(jù)集的激活特征。這個(gè)目標(biāo)函數(shù)導(dǎo)致了神經(jīng)網(wǎng)絡(luò)的無監(jiān)督訓(xùn)練,因?yàn)?#xff08;4)的最佳值不需要知道。我們將逆向網(wǎng)絡(luò)結(jié)構(gòu)的描述放在附錄中。
非射影的(Non-surjective)。由于插值的原因,風(fēng)格互換操作產(chǎn)生的目標(biāo)激活可能在Φ(-)的范圍之外。這意味著,如果反演網(wǎng)絡(luò)只用真實(shí)圖像進(jìn)行訓(xùn)練,那么反演網(wǎng)絡(luò)可能只能反演Φ(-)范圍內(nèi)的激活。由于我們希望反轉(zhuǎn)網(wǎng)絡(luò)能夠反轉(zhuǎn)風(fēng)格互換的激活,所以我們?cè)黾恿擞?xùn)練集以包括這些激活。更確切地說,給定一組訓(xùn)練圖像(和它們相應(yīng)的激活),我們用基于圖像對(duì)的風(fēng)格互換的激活來增強(qiáng)這個(gè)訓(xùn)練集。
4.2. 前饋風(fēng)格轉(zhuǎn)移過程
一旦經(jīng)過訓(xùn)練,逆向網(wǎng)絡(luò)就可以用來取代優(yōu)化程序。因此,我們提出的前饋程序包括以下步驟:
這個(gè)過程如圖4所示。如第3.2節(jié)所述,風(fēng)格互換可以作為一個(gè)(不可微分的)卷積神經(jīng)網(wǎng)絡(luò)來實(shí)現(xiàn)。因此,整個(gè)前饋程序可以被看作是一個(gè)具有單獨(dú)訓(xùn)練部分的神經(jīng)網(wǎng)絡(luò)。與現(xiàn)有的前饋方法[6, 17, 33, 34]相比,我們的前饋程序最大的優(yōu)勢(shì)是能夠使用新的風(fēng)格圖像,只需要一個(gè)訓(xùn)練好的逆向網(wǎng)絡(luò)。
圖4:我們提出了第一個(gè)可用于任意風(fēng)格圖像的風(fēng)格轉(zhuǎn)換前饋方法。我們用一個(gè)建設(shè)性的程序(風(fēng)格互換)來模擬風(fēng)格轉(zhuǎn)換,并訓(xùn)練一個(gè)反轉(zhuǎn)網(wǎng)絡(luò)來生成圖像。
5. 實(shí)驗(yàn)
在本節(jié)中,我們分析了所提出的風(fēng)格轉(zhuǎn)移和反轉(zhuǎn)方法的特性。我們使用Torch7框架[2]來實(shí)現(xiàn)我們的方法2,并使用先前工作的現(xiàn)有開源實(shí)現(xiàn)[16, 21, 30]進(jìn)行比較。
5.1. Style Swap Results
目標(biāo)層。圖3顯示了VGG-19網(wǎng)絡(luò)中不同層的風(fēng)格互換的效果。在這個(gè)圖中,RGB圖像是通過第3節(jié)中描述的優(yōu)化計(jì)算出來的。我們看到,雖然我們可以直接在RGB空間中進(jìn)行風(fēng)格交換,但其結(jié)果不過是重新著色而已。當(dāng)我們選擇一個(gè)在網(wǎng)絡(luò)中更深的目標(biāo)層時(shí),風(fēng)格圖像的紋理會(huì)更加明顯。我們發(fā)現(xiàn),在 "relu3 1 "層上進(jìn)行風(fēng)格互換可以提供最令人愉悅的視覺效果,同時(shí)在結(jié)構(gòu)上與內(nèi)容保持一致。在下面的實(shí)驗(yàn)和反演網(wǎng)絡(luò)訓(xùn)練中,我們把我們的方法限制在 "relu3 1 "層。定性結(jié)果顯示在圖10中。
圖3:在VGG-19[31]的不同層中風(fēng)格互換的效果,也是在RGB空間中。由于VGG-19的命名慣例,"reluX 1 "指的是(X -1)-th maxpooling層之后的第一個(gè)ReLU層。風(fēng)格互換操作使用大小為3×3、跨度為1的補(bǔ)丁,然后用優(yōu)化方法構(gòu)建RGB圖像。
一致性。我們的風(fēng)格互換方法將內(nèi)容和風(fēng)格信息串聯(lián)成一個(gè)單一的目標(biāo)特征向量,與其他方法相比,導(dǎo)致了一個(gè)更容易的優(yōu)化表述。因此,我們發(fā)現(xiàn),與現(xiàn)有的公式相比,我們的優(yōu)化算法能夠以更少的迭代次數(shù)達(dá)到最優(yōu),同時(shí)持續(xù)地達(dá)到相同的最優(yōu)。圖5和圖6顯示了在隨機(jī)初始化的情況下,我們的公式與現(xiàn)有作品之間的優(yōu)化差異。這里我們看到,隨機(jī)初始化對(duì)風(fēng)格化的結(jié)果幾乎沒有影響,表明我們的局部?jī)?yōu)化比其他風(fēng)格的轉(zhuǎn)移目標(biāo)少得多。
圖5:與現(xiàn)有的優(yōu)化公式相比,我們的方法取得了一致的結(jié)果。我們看到Gatys等人的公式[11]有多個(gè)局部最優(yōu),而我們能夠在隨機(jī)初始化的情況下持續(xù)實(shí)現(xiàn)相同風(fēng)格的轉(zhuǎn)移效果。圖6顯示了這個(gè)數(shù)量。
圖6:在優(yōu)化過程中,40個(gè)隨機(jī)初始化的RGB像素的標(biāo)準(zhǔn)偏差顯示。線條顯示的是平均值,陰影部分是在平均值的一個(gè)標(biāo)準(zhǔn)差之內(nèi)。垂直的虛線表示優(yōu)化的結(jié)束。圖5顯示了優(yōu)化結(jié)果的例子。
直接適應(yīng)于視頻。在對(duì)視頻逐幀進(jìn)行風(fēng)格化時(shí),這種一致性屬性是很有利的。相同的幀將產(chǎn)生相同的風(fēng)格化結(jié)果,而連續(xù)的幀將以類似的方式被風(fēng)格化。因此,我們的方法能夠適應(yīng)視頻,而不需要像光流[30]那樣的明確膠合程序。我們將風(fēng)格化的視頻放在代碼庫(kù)中。
簡(jiǎn)單直觀的調(diào)校。在提議的方法中,調(diào)整風(fēng)格化程度(與保留內(nèi)容相比)的一個(gè)自然方法是修改補(bǔ)丁的大小。圖7定性地顯示了補(bǔ)丁大小和風(fēng)格交換結(jié)果之間的關(guān)系。隨著補(bǔ)丁大小的增加,更多的內(nèi)容圖像的結(jié)構(gòu)被丟失并被風(fēng)格圖像的紋理所取代。
圖7:我們可以通過調(diào)整補(bǔ)丁的大小在內(nèi)容結(jié)構(gòu)和風(fēng)格紋理之間進(jìn)行權(quán)衡。風(fēng)格圖像,星空(上)和小世界I(下),顯示在圖10中。
5.2. CNN反轉(zhuǎn)(CNN Inversion)
在這里,我們描述了我們對(duì)一個(gè)反向網(wǎng)絡(luò)的訓(xùn)練,該網(wǎng)絡(luò)可以計(jì)算出預(yù)先訓(xùn)練好的VGG-19網(wǎng)絡(luò)的近似反向函數(shù)[31]。更具體地說,我們從輸入層到 "relu3 1 "層對(duì)截?cái)嗟木W(wǎng)絡(luò)進(jìn)行訓(xùn)練。該網(wǎng)絡(luò)結(jié)構(gòu)被放在附錄中。
數(shù)據(jù)集。我們使用微軟COCO(MSCOCO)數(shù)據(jù)集[23]和來自wikiart.org并由Kaggle[5]托管的繪畫數(shù)據(jù)集進(jìn)行訓(xùn)練。每個(gè)數(shù)據(jù)集分別有大約80,000張自然圖像和繪畫。由于典型的內(nèi)容圖像是自然圖像,而風(fēng)格圖像是繪畫,我們將這兩個(gè)數(shù)據(jù)集結(jié)合起來,使網(wǎng)絡(luò)能夠?qū)W習(xí)重新創(chuàng)建這兩類圖像的結(jié)構(gòu)和紋理。此外,自然圖像和繪畫的明確分類為第4.1節(jié)中描述的擴(kuò)展提供了相應(yīng)的內(nèi)容和風(fēng)格候選。
訓(xùn)練。我們將每張圖片的大小調(diào)整為256×256像素(對(duì)應(yīng)于64×64大小的激活),并對(duì)每個(gè)數(shù)據(jù)集進(jìn)行大約2個(gè)周期的訓(xùn)練。請(qǐng)注意,即使我們限制了訓(xùn)練圖像的大小(和響應(yīng)的激活),逆向網(wǎng)絡(luò)是完全卷積的,在訓(xùn)練后可以應(yīng)用于任意大小的激活。
我們通過從自然圖像中提取2個(gè)激活樣本和從繪畫中提取2個(gè)樣本來構(gòu)建每個(gè)minibatch。我們用4個(gè)風(fēng)格互換的激活來增強(qiáng)minibatch,使用minibatch中的所有自然圖像和繪畫對(duì)。我們?cè)?7)的基礎(chǔ)上使用反推法計(jì)算子梯度,總方差正則化系數(shù)λ=10-6(該方法對(duì)這個(gè)選擇并不特別敏感),我們使用亞當(dāng)優(yōu)化器[18]更新網(wǎng)絡(luò)的參數(shù),固定學(xué)習(xí)率為10-3。
結(jié)果。圖8顯示了使用MSCOCO的2000張全尺寸驗(yàn)證圖像和6張全尺寸風(fēng)格圖像的定量近似結(jié)果。盡管只在256×256的圖像上進(jìn)行了訓(xùn)練,但我們對(duì)任意全尺寸的圖像都能取得合理的結(jié)果。我們還與一個(gè)具有相同結(jié)構(gòu)但沒有經(jīng)過增強(qiáng)訓(xùn)練的逆向網(wǎng)絡(luò)進(jìn)行比較。正如預(yù)期的那樣,在訓(xùn)練期間從未看到樣式交換激活的網(wǎng)絡(luò)比具有增強(qiáng)訓(xùn)練集的網(wǎng)絡(luò)表現(xiàn)更差。
圖8:我們比較了在2000張可變大小的驗(yàn)證圖像和6張可變大小的風(fēng)格圖像上,使用3×3的補(bǔ)丁尺寸,由操作計(jì)時(shí)器和我們的逆向網(wǎng)絡(luò)實(shí)現(xiàn)的平均損失(7)。在訓(xùn)練過程中,出現(xiàn)在繪畫數(shù)據(jù)集中的風(fēng)格圖像被移除。
5.3. 計(jì)算時(shí)間(Computation Time)
現(xiàn)有風(fēng)格轉(zhuǎn)換方法的計(jì)算時(shí)間列于表1。與基于優(yōu)化的方法相比,我們的優(yōu)化公式更容易解決,每次迭代所需的時(shí)間更少,這可能是由于只使用了預(yù)訓(xùn)練的VGG-19網(wǎng)絡(luò)的一個(gè)層。其他方法使用多層,也比我們使用的層數(shù)更深。
表1:可以處理任意風(fēng)格圖像的風(fēng)格轉(zhuǎn)移方法的平均計(jì)算時(shí)間。時(shí)間是在GeForce GTX 980 Ti上拍攝的分辨率為300×500的圖像。請(qǐng)注意,基于優(yōu)化的方法的迭代次數(shù)只能被視為一個(gè)非常粗略的估計(jì)。
我們?cè)趫D9a和9c中顯示了我們前饋程序的不同部分所花費(fèi)的計(jì)算時(shí)間的百分比。對(duì)于任何非微不足道的圖像尺寸,風(fēng)格互換程序比其他神經(jīng)網(wǎng)絡(luò)需要更多時(shí)間。這是由于風(fēng)格互換程序包含兩個(gè)卷積層,過濾器的數(shù)量是風(fēng)格補(bǔ)丁的數(shù)量。補(bǔ)丁的數(shù)量與圖像的像素?cái)?shù)呈線性增長(zhǎng),其常數(shù)取決于匯集層的數(shù)量和提取補(bǔ)丁的步幅。因此,樣式圖像大小對(duì)計(jì)算時(shí)間的影響最大,這并不奇怪(如圖9a和9b所示)。
有趣的是,即使在內(nèi)容圖像尺寸增加時(shí),計(jì)算時(shí)間似乎也停止了增加(圖9d),這可能是由于實(shí)現(xiàn)了并行性。這表明我們的程序可以處理大的圖像尺寸,只要風(fēng)格補(bǔ)丁的數(shù)量是可控的。也許應(yīng)該對(duì)風(fēng)格補(bǔ)丁進(jìn)行聚類,以減少補(bǔ)丁的數(shù)量,或者使用其他的實(shí)現(xiàn)方法,如快速近似近鄰搜索方法[12, 28]。
圖9:計(jì)算時(shí)間隨著(a,b)風(fēng)格圖像大小的增加和(c,d)內(nèi)容圖像大小的增加而增加。不可變的圖像大小保持在500×500。如(a,c)所示,大部分的計(jì)算都花在樣式交換程序上。
6. 討論
我們提出了一種新的基于CNN的藝術(shù)風(fēng)格轉(zhuǎn)換方法,其目的是既快速又能適應(yīng)任意的風(fēng)格。我們的方法通過將內(nèi)容圖像的紋理與風(fēng)格圖像的紋理互換,將內(nèi)容和風(fēng)格的形成并入CNN的單一層。我們方法的簡(jiǎn)單性使我們能夠訓(xùn)練一個(gè)逆向網(wǎng)絡(luò),該網(wǎng)絡(luò)不僅能夠在更短的時(shí)間內(nèi)獲得近似的結(jié)果,而且還能在其訓(xùn)練的風(fēng)格集之外進(jìn)行泛化。盡管有單層的限制,我們的方法仍然可以產(chǎn)生視覺上令人愉悅的圖像。此外,該方法有一個(gè)直觀的調(diào)整參數(shù)(補(bǔ)丁大小),其一致性允許簡(jiǎn)單地逐幀應(yīng)用于視頻。
雖然我們的前饋方法在速度上無法與Johnson等人[17]的前饋方法競(jìng)爭(zhēng),但應(yīng)該指出,我們的方法最大的優(yōu)勢(shì)是能夠使用新的風(fēng)格圖像進(jìn)行風(fēng)格化,而Johnson等人的方法需要為每個(gè)風(fēng)格圖像訓(xùn)練一個(gè)新的神經(jīng)網(wǎng)絡(luò)。我們已經(jīng)表明,我們的逆向方法可以在其訓(xùn)練集之外進(jìn)行泛化(圖8),而另一個(gè)有用的應(yīng)用是能夠改變風(fēng)格圖像的大小而不需要重新訓(xùn)練逆向網(wǎng)絡(luò)。
所提出的風(fēng)格互換程序的一些缺點(diǎn)包括缺乏全局風(fēng)格測(cè)量和缺乏相鄰斑塊的相似度測(cè)量,無論是在空間域還是時(shí)間域。這些簡(jiǎn)化為提高效率而犧牲了質(zhì)量,但在逐幀應(yīng)用于視頻時(shí),偶爾會(huì)導(dǎo)致局部閃爍的效果。在保持我們算法的高效和通用性的同時(shí),尋找提高質(zhì)量的方法可能是可取的。
總結(jié)
以上是生活随笔為你收集整理的【翻译】Fast Patch-based Style Transfer of Arbitrary Style的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java里的时间转换
- 下一篇: 162. Find Peak Eleme