風格遷移學習一


論文:

  Image Style Transfer Using Convolutional Neural Networks

提出背景:

  作者認為前人所研究的風格遷移問題,是基於從源圖像中重新采樣該圖像的風格像素的分布,從而生成一個新的類似於源圖像的風格像素分布,加到目標圖像中,而該目標圖像中保留下來的基本都是一些低維的像素點,效果並不太理想。隨着深度學習的發展,作者就提出使用卷積神經網絡來完成風格遷移的任務。

網絡結構:

  作者認為可以將源圖像分為風格圖像和內容圖像,利用卷積神經網絡分別提取各自的特征。風格圖像在網絡中提取出風格特征,內容圖像在網絡中提取出內容特征,然后引入初始白噪聲圖像,該噪聲圖像在網絡中訓練得出特征,為內容和風格各自定義一組與噪聲特征的損失函數,最后將兩個損失函數合在一起進行優化,從而使得噪聲圖像越來越好的訓練到內容和風格的特征,從而完成風格的遷移。其中使用的卷積神經網絡是VGG19,因為該網絡在當時有着非常好的效果,包括現在也是,VGG19網絡結構如圖1:

      

 

  本文作者在使用該VGG19使,去除了最后的全連接和softmax,因為作者目的還是為了生成圖像,所以無需這兩層。

內容特征表示:

  當我們把一張圖片輸入到VGG19網絡中,會在開始處變成一系列向量(每個像素上包含三個channel,代表了圖像長什么樣)。而在網絡的每層中,能得到中間向量,比如 conv3_1,conv4_2(分別代表第三個卷積層的第一個feature map和第四個卷積層的第二個feature map),但是它們並沒有內在的含義。不過對於一個訓練好的網絡,比如 VGG19,其參數已經確定,通過該參數計算得出的中間向量就可以代表該圖像本身,這樣就可以定義某一個卷積層中的某個feature map作為該圖像的內容,比如前面說的conv4_2,可以根據自己的網絡結構進行調整,不過拿不同的feature map作為圖像的內容對結果會有影響。作者認為,圖像的內容可以簡單的認為是通過某個訓練好的網絡(比如 VGG19)進行計算后,某個卷積層中的某個feature map(比如conv4_2)。作者給出的圖2中,發現在內容特征表示中,越低層的feature map(比如圖2下面的a-c)可以提取出較好的內容特征,而到了高層的feature map,一些像素點就會開始消失,但是會保留高級的內容(比如圖2下面的d和e)。

  理解了神經網絡中每層feature map的信息,然后作者定義了在內容特征上的損失函數,這里使用了平方誤差的loss函數:

 

  

  

  

 

  這里公式中是拿某一個卷積層(比如conv3)中所有的feature map 作為內容,並和新的圖像在同一卷積層中的所有feature map進行比較,然后進行平方差求和。不過,這和上面說的某一個卷積層中的某一個feature map作為內容好像不一樣,其實作為圖像的內容,可以是某一層的全部feature map,也可以是某一個feature map,這取決於你想要得到的結果。拿特定層的所有feature map作為內容,這樣更加准確,但同時也增加了計算量,會使訓練速度變慢,拿其中一個feature map作為內容,可以加快訓練速度,但是內容保真度不能得到保證。

風格特征表示:

  作者通過圖2中觀察每一層中某個feature map和該層中的所有feature map得到的風格特征,發現使用該層的所有feature map效果更好,這和內容特征表示是有點不同的,這里作者定義了一個用於捕獲圖像風格信息的特征空間,目的是為了保存每一層中多個濾波器(filter)的相關性組合,而這樣的相關性組合其實就是feature map兩兩做內積。定義Gram 矩陣包含圖片的紋理信息以及顏色信息,由Gram矩陣給出

  

  

  

  

  

 

風格轉換最終loss函數:

  將前面定義好的內容loss函數和風格loss函數線性組合,就得到了最終的loss函數:

  

  

  其中α和β分別是內容和風格的權重因子,和為1,若α/β的值越大,則合成圖像越具體,若α/β的值越小,則越抽象。

  該風格遷移訓練的過程如下:

  

  在圖3的風格遷移算法中,左邊對輸入風格圖像進行特征提取,對每一層所有的feature map都進行內積計算和保存,然后求每一層的loss函數;右邊對輸入內容圖像進行特征提取,只對conv4卷積層中的feature map進行loss計算;中間初始輸入白色噪聲圖像,通過網絡在每一層計算與風格的loss值,在conv4計算與內容的loss值,不斷地反向傳播優化,最后合成風格圖像中的風格,內容圖像中的內容。

結果:

  1. 利用卷積神經網絡可以很好的分離圖片的內容和風格,可以獨立的對圖片的這兩個信息進行特征提取,而且效果很好。
  2. α與β之間的比例會影響合成圖片后的效果,α/β越大,合成的圖片越具體,越小合成的圖片風格化越嚴重(抽象)。
  3. 卷積層中不同層次的feature map會提取出不同的特征,因此其對合成圖片會產生不同的影響。在風格特征的提取中,層次越高的feature map保持局部圖像結構的規模越來越大,從而實現的更加平滑、連續;在內容特征的提取中,層次月底的feature map保留的內容越詳細。
  4. 初始輸入白噪聲圖片在該圖片上面合成,和初始輸入風格圖片或內容圖片在其上合成效果差別並不大。

算法的不足:

  1. 訓練速度很慢,合成過程的速度在很大程度上取決於圖像分辨率。
  2. 合成圖片過程中會受到一些低級噪聲影響。
  3. 對於圖像中風格的定義尚且還不太清楚,對於風格特征從圖像中分離出來尚不明確。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM