天天看點

Image Style Transfer Using Convolutional Neural Networks——風格遷移經典論文閱讀論文亮點研究背景研究方法與意義方法細節實驗設定與結果讨論

Image Style Transfer Using Convolutional Neural Networks

  • 論文亮點
  • 研究背景
  • 研究方法與意義
  • 方法細節
    • 内容表示與内容損失
    • 風格表示與風格損失
    • 風格遷移
  • 實驗設定與結果
  • 讨論
    • 内容和風格損失函數項的權重Trade-off
    • 卷積神經網絡不同層的影響
    • 待轉換圖像初始化方法的讨論
    • 作者給出的其他讨論

論文亮點

  1. 給出了内容損失(Content Loss,也被稱為特征重建損失)和風格損失(Style Loss)的定義,之後的論文中二者被總結成感覺損失(Perceptual Loss)。
  2. 給出了當内容損失和風格損失的權重不同時,風格遷移結果的對比。根據論文的實驗結果,一般來說内容損失相比風格損失的權重要少2~3個數量級,即1:100的關系。
  3. 可視化了提取出的圖像風格表示和内容表示
  4. 定義了成功的風格遷移——如果生成圖像看起來像風格圖像但是展示了内容圖像的目标和場景

研究背景

  将一張圖像的語義資訊渲染成不同風格是非常困難的圖像處理問題。之前方法存在的主要限制條件是可以準确表示語義資訊,以及是以将圖像内容從風格中分離出來的圖像表征的缺乏。

  在風格遷移領域存在許多經典的無參數算法,它們的原理基于使用不同的方式來保留目标圖像的結構,然而這些方法的缺陷在于它們隻能使用目标圖像的低層圖像特征。

  事實上,想進行風格遷移的關鍵在于我們如何将圖像的内容和風格很好地分離開。而可以提取高層語義資訊的卷積神經網絡的出現,則為風格遷移工作提供了很好的思路。

研究方法與意義

  在這篇文章中,作者使用了從卷積神經網絡中學習到的圖像表征來分别處理和操作圖像的内容和風格,它可以使得高層圖像資訊更确切。作者提出了一個藝術風格的神經算法(A Neural Algorithm of Artistic Style),它可以分離和重新組合自然圖像的内容和風格。這個算法可以生成較高感覺品質的新圖像,結合任意照片的内容和許多著名藝術品的外觀(風格)。

方法細節

  使用了經典的VGG19網絡來提取圖像的高層語義特征,它具有16個卷積層和5個池化層,未使用任何的全連接配接層。還對VGG的參數進行了不改變其輸出的正則化,并且發現平均池化相比最大池化取得了稍微更好的結果。

内容表示與内容損失

  内容表示本質上就是圖像輸入到神經網絡後,某一卷積層的輸出特征圖。當然采取不同的卷積層輸出的特征圖不一緻,得到的内容表示也不一緻。

  由生成圖像提取出的内容表示和真實圖像提取的内容表示的差異可以計算出内容損失,計算方法是對比生成圖像在某一卷積層的輸出特征圖與真實圖像在相同卷積層的輸出特征圖二者的逐像素差異,即内容損失實質上就是在生成圖像和真實圖像卷積得到的特征圖上再計算逐像素損失。其計算公式表示如下:

  有 N l N_{l} Nl​個濾波器的卷積層會得到 N l N_{l} Nl​個輸出特征圖,假設其輸出特征圖的高度與寬度相乘後的結果為 M l M_{l} Ml​,則卷積層 l l l 的響應可以表達為 F l ∈ R N l × M l F^{l} \in \mathcal{R}^{N_{l} \times M_{l}} Fl∈RNl​×Ml​,其中 F i j l F_{i j}^{l} Fijl​是卷積層 l l l 第 i t h i^{t h} ith個濾波器在位置 j j j上的響應。如果用 p ⃗ \vec{p} p

​表示真實的内容圖像,而 x ⃗ \vec{x} x

表示生成圖像, P l P^{l} Pl和 F l F^{l} Fl分别表示它們在相同卷積層上的輸出。通過輸出特征圖之間的最小均方誤差(MSE,逐像素計算)來定義内容損失:

L content  ( p ⃗ , x ⃗ , l ) = 1 2 ∑ i , j ( F i j l − P i j l ) 2 \mathcal{L}_{\text {content }}(\vec{p}, \vec{x}, l)=\frac{1}{2} \sum_{i, j}\left(F_{i j}^{l}-P_{i j}^{l}\right)^{2} Lcontent ​(p

​,x

,l)=21​i,j∑​(Fijl​−Pijl​)2

  MSE損失可導,是以由其計算得到的内容損失也可導,其導數為

∂ L content  ∂ F i j l = { ( F l − P l ) i j  if  F i j l > 0 0  if  F i j l < 0 \frac{\partial \mathcal{L}_{\text {content }}}{\partial F_{i j}^{l}}=\left\{\begin{array}{ll}{\left(F^{l}-P^{l}\right)_{i j}} & {\text { if } F_{i j}^{l}>0} \\ {0} & {\text { if } F_{i j}^{l}<0}\end{array}\right. ∂Fijl​∂Lcontent ​​={(Fl−Pl)ij​0​ if Fijl​>0 if Fijl​<0​

  是以可以直接通過已有的反向傳播算法進行優化。

  經過卷積神經網絡多層卷積後,可以得到更接近于圖像真實内容的特征圖,但和它原本的确切的外觀可能會有所變化。是以,在網絡中的更高層基于目标和他們的位置來捕捉高層内容,而不是關注于重建圖像的像素值之間的差異。

風格表示與風格損失

  (筆者覺得這篇論文對于風格損失和Gram矩陣的計算表述并不友好,可以參考另一篇論文上的表述)

  為了獲得輸入圖像的風格表示,我們使用了一個用于捕捉紋理資訊的特征空間。這個特征空間可建立在網絡中任何層的濾波器響應的頂部。它由不同濾波器響應(同一個濾波器的不同響應?)之間的對應關系組成,其中期望值占據了特征映射的空間範圍。這些特征關系通過Gram矩陣 G l ∈ R N l × N l G^{l} \in \mathcal{R}^{N_{l} \times N_{l}} Gl∈RNl​×Nl​給定,其中 G i j l G_{i j}^{l} Gijl​是 l l l層中兩個向量化的特征圖 i i i和特征圖 j j j的内積:

G i j l = ∑ k F i k l F j k l G_{i j}^{l}=\sum_{k} F_{i k}^{l} F_{j k}^{l} Gijl​=k∑​Fikl​Fjkl​

  通過包含不同層之間的特征相關性,我們可以獲得一個輸入圖像固定的、多尺度的表示,其中包含了它的紋理資訊。風格損失由最小化真實風格圖像和生成圖像的Gram矩陣中各元素的平均平方距離計算。用 a ⃗ \vec{a} a

表示真實風格圖像, x ⃗ \vec{x} x

表示生成圖像, A l A^{l} Al和 G l G^{l} Gl分别表示它們在 l l l層上的風格表示(風格表示的實質是?Gram矩陣?)。則第 l l l層的風格損失計算公式如下:

E l = 1 4 N l 2 M l 2 ∑ i , j ( G i j l − A i j l ) 2 E_{l}=\frac{1}{4 N_{l}^{2} M_{l}^{2}} \sum_{i, j}\left(G_{i j}^{l}-A_{i j}^{l}\right)^{2} El​=4Nl2​Ml2​1​i,j∑​(Gijl​−Aijl​)2

  總風格損失如下:

L style  ( a ⃗ , x ⃗ ) = ∑ l = 0 L w l E l \mathcal{L}_{\text {style }}(\vec{a}, \vec{x})=\sum_{l=0}^{L} w_{l} E_{l} Lstyle ​(a

,x

)=l=0∑L​wl​El​

  其中 w l w_{l} wl​為各卷積層對總風格損失的權重因子,對在 l l l層的激活值的 E l E_{l} El​求導的結果為:

∂ E l ∂ F i j l = { 1 N l 2 M l 2 ( ( F l ) T ( G l − A l ) ) j i  if  F i j l > 0 0  if  F i j l < 0 \frac{\partial E_{l}}{\partial F_{i j}^{l}}=\left\{\begin{array}{ll}{\frac{1}{N_{l}^{2} M_{l}^{2}}\left(\left(F^{l}\right)^{\mathrm{T}}\left(G^{l}-A^{l}\right)\right)_{j i}} & {\text { if } F_{i j}^{l}>0} \\ {0} & {\text { if } F_{i j}^{l}<0}\end{array}\right. ∂Fijl​∂El​​={Nl2​Ml2​1​((Fl)T(Gl−Al))ji​0​ if Fijl​>0 if Fijl​<0​

  可以直接通過反向傳播進行優化。

風格遷移

  為了将一個藝術品的風格 a ⃗ \vec{a} a

遷移到一張照片 p ⃗ \vec{p} p

​上,作者合成了一張新的照片(由白噪聲進行初始化),它同時比對照片 p ⃗ \vec{p} p

​的内容表示和藝術品 a ⃗ \vec{a} a

的風格表示。是以我們共同最小化白噪聲初始圖像到CNN某層的内容損失和風格損失,其損失可以表示如下:

L t o t a l ( p ⃗ , a ⃗ , x ⃗ ) = α L c o n t e n t ( p ⃗ , x ⃗ ) + β L s t y l e ( a ⃗ , x ⃗ ) \mathcal{L}_{\mathrm{total}}(\vec{p}, \vec{a}, \vec{x})=\alpha \mathcal{L}_{\mathrm{content}}(\vec{p}, \vec{x})+\beta \mathcal{L}_{\mathrm{style}}(\vec{a}, \vec{x}) Ltotal​(p

​,a

,x

)=αLcontent​(p

​,x

)+βLstyle​(a

,x

)

  其中 α \alpha α和 β \beta β分别表示内容損失和風格損失的權重因子。需要注意的是,為了在相同尺度上提取圖像資訊,在計算風格表示和内容表示之前,先将風格圖像大小調整為和内容圖像大小一緻。

實驗設定與結果

  我們的結果對由卷積神經網絡學習到的深度圖像特征提供了新的視角,并且證明了它們用于高水準的圖像合成和操作的潛力。

Image Style Transfer Using Convolutional Neural Networks——風格遷移經典論文閱讀論文亮點研究背景研究方法與意義方法細節實驗設定與結果讨論

  上圖提供了在卷積神經網絡(VGG19)中的圖像表示。給定的輸入圖像在CNN的每一個處理階段中被表示成一系列的濾波後圖像。Content Reconstructions:根據網絡一個特定層的響應重建輸入圖像,并可視化。作者重建了原始VGG網絡中的

conv1_2

(對應圖中的

a

)、

conv2_2

(對應圖中的

b

)、

conv3_2

(對應圖中的

c

)、

conv4_2

(對應圖中的

d

)、

conv5_2

(對應圖中的

e

)層的輸入圖像。對于低層網絡的重建結果非常接近原始圖像

(a-c)

。在網絡的更高層,詳細的像素資訊被丢失了,同時圖像的高層内容被保留了

(d,e)

。Style Reconstructions:在原始CNN激活層的頂層,作者使用了一個用于捕捉輸入圖像紋理資訊的特征空間。風格特征計算了CNN中不同層的不同特征之間的相關性。作者通過建立在不同的CNN層子集的風格表示重建了輸入圖像的風格s

‘conv1 1’ (a), ‘conv1 1’ and ‘conv2 1’ (b), ‘conv1 1’, ‘conv2 1’ and ‘conv3 1’ (c), ‘conv1 1’, ‘conv2 1’, ‘conv3 1’ and ‘conv4 1’ (d), ‘conv1 1’, ‘conv2 1’, ‘conv3 1’, ‘conv4 1’ and ‘conv5 1’ (e)

Image Style Transfer Using Convolutional Neural Networks——風格遷移經典論文閱讀論文亮點研究背景研究方法與意義方法細節實驗設定與結果讨論

  上圖展示了将一張照片的内容和一些著名藝術品的風格結合後的結果。

讨論

  這篇文章最重要的發現是通過CNN可以很好地将圖像的風格和内容進行分離。

内容和風格損失函數項的權重Trade-off

  當然,很好地分離并不意味着我們可以完全将圖像風格和内容進行分離。當合成一張圖像其中帶有一張圖像的内容和另一張圖像的風格時,通常不存在能同時比對所有限制的圖像。然而,因為我們在圖像合成中優化的損失函數是一個風格損失和内容損失的線性組合,我們可以平滑地進行調節,将重點放在重建内容或是重建風格,下圖展示了原始圖像随着比對内容與比對風格的相對權重的變化而變化的結果,圖上的比例

10-3

代表了**内容損失項與風格權重項的權重相除(注意是損失項的權重相除,而不是損失值相除)**的結果。是以從左往右,從上到下代表了内容損失項占的權重越來越大的結果。

Image Style Transfer Using Convolutional Neural Networks——風格遷移經典論文閱讀論文亮點研究背景研究方法與意義方法細節實驗設定與結果讨論

  由上圖結果可以看出,重點強調風格(左上角)會導緻圖像過于比對期望的風格資訊,而重點強調内容則會生成一個僅有少量風格資訊的圖像。作者提出在實踐中要在這兩種極端之間進行平衡,最後取得視覺上吸引人的圖像。

卷積神經網絡不同層的影響

  在圖像合成過程中的另一個重要問題則是提取風格和内容表示的神經網絡的卷積層的選擇。作者發現以更高層提取的風格特征作為待比對的風格特征,可以在風格遷移後的圖像上取得更平滑和更連續的視覺體驗。至于内容表示提取層的選擇,在固定風格和權重超參的情況下,作者進行了對比如下圖:

Image Style Transfer Using Convolutional Neural Networks——風格遷移經典論文閱讀論文亮點研究背景研究方法與意義方法細節實驗設定與結果讨論

  由上圖可以看出,比對網絡中不同層提取的内容特征的影響。如圖所示,如果比對

conv2_2

的内容特征則可以保留原始圖像更多細節結構與詳細的像素資訊。當比對

conv4_2

層的内容特征時,内容特征和風格特征比對地更深,輸出圖像的内容以風格圖像的風格的形式被展示。

待轉換圖像初始化方法的讨論

  無論是用内容圖像、風格圖像或是噪聲圖像進行初始化,最後取得的結果都差不多。

作者給出的其他讨論

  1、在生成分辨率較大的圖像時,速度會變慢。

  2、合成的圖像可能會有噪聲,可以做一個圖像後處理——比如濾波等。

  3、從圖像内容中分離出風格不是一個很好定義的問題,這主要是因為圖像的風格不好定義。在這項工作中,我們将成功的風格遷移定義為如果生成圖像看起來像風格圖像但是展示了内容圖像的目标和場景。

  4、通過這種方式來推測人類從風格中抽象内容的能力是非常誘人的,這可能是我們的視覺系統強大的推理能力帶來的。

繼續閱讀