【轉】知乎 —— AdaIN 筆記

這個博客寫的不要太好,強烈推薦並轉載。【https://zhuanlan.zhihu.com/p/158657861

AdaIN 筆記

Liewschild

Liewschild

計算機視覺練習生,中國科學院大學碩士在讀

論文Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization的閱讀筆記

ICCV 2017的一篇論文,有點老,不過是一篇很棒的論文,做了非常多的實驗,靠譜、實在,對我的研究也有非常大的幫助。

風格遷移主要3個指標,遷移速度,風格類別數、遷移結果的質量(這個憑肉眼觀測的屬性感覺還是比較主觀),作者說,作爲成年人,我全都要。之前的研究要麼就是比較慢,要麼就是可供前的風格數量有限,這篇論文的主要目標是實現實時的、任意風格的風格遷移(style transfer),主要方法就是自適應實例標準化(Adaptive Instance Normalization,AdaIN),將內容圖像(content image)特徵的均值和方差對齊到風格圖像(style image)的均值和方差。此外,這個方法還給用戶非常多的控制權,包括內容和風格的折中(trade off),風格插值(混合風格遷移),是否保留顏色,對圖像的哪個區域進行風格遷移[1]。

話不多說,先上圖感受一下效果,第一行爲content image,提供內容,第一列爲style image,提供風格,其餘爲風格遷移得到的結果,效果還是很不錯的。

Fig.1 遷移結果,From reference [1]

 

一、背景知識

論文中的方法主要跟標準化(normalization)有關,這裏對各種標準化操作進行一個介紹。

1、Batch Normalization

Ioffe 和 Szegedy[2]引入Batch Normalization(BN),大大簡化了前向神經網絡的訓練。Radford等[3]發現BN在圖像生成模型中也非常有效。Batch Normalization就是對一個batch中的數據進行標準化,就是每一個值減去batch的均值,除以batch的標準差,計算公式如下:

From reference [1]

From reference [1]

From reference [1]

其中, 分別表示計算均值和標準差,是仿射變換的兩個參數。

 

2、Instance Normalization

Ulyanov等[4]發現,將BN替換爲Instance Normalization(IN),可以提升風格遷移的性能。IN的操作跟BN類似,就是範圍從一個batch變成了一個instance,計算公式如下:

From reference [1]

From reference [1]

From reference [1]

 

3、Conditional Instance Normalization

Dumoulin等[5]提出了Conditional Instance Normalization(CIN),計算公式如下:

From reference [1]

乍一看好像沒啥變化,其實不然,它在訓練中會學習不同的  對(pair)。令人驚喜的是,對於同一張content image,同一個遷移網絡,使用相同的卷積層參數,使用不同的 對,可以得到不同風格的遷移結果。爲什麼!先賣個關子,咱後頭慢慢講。

 

二、爲什麼Instance Normalization可以這麼厲害!!!

(Conditional)Instance Normalization取得了巨大的成功,這到底是爲什麼呢?是道德的淪喪,還是人性的扭曲......偏了偏了,讓我們一起走進實驗,探索其中的奧祕。

Ulyanov等[4]將其歸因於IN對content image的對比度的不變性。作者覺得,不,它不是這樣的。二話不說,擼起袖子就是幹,讓實驗結果說話

Fig.2, 實驗結果,From reference [1]

 

作者分別用原圖和對比度標準化後的圖像對網絡進行訓練,結果(Loss收斂的速度,值)如圖2中的(a)和(b)所示,可以發現並沒有什麼不同,IN對contrast normalized的圖像依舊比BN更有效,所以對比度它不是答案的關鍵。

衆所周知(我之前就不知道,孤陋寡聞如我),DNN提取的特徵的統計特性可以代表圖像的風格[6-8]。Gatys等[9]使用二階統計特性作爲優化目標;Li等[10]發現,對其他統計特性,如channel-wise的均值和方差,進行匹配,對風格遷移也是很有效的。基於上述觀察,作者提出,instance normalization通過對特徵的統計特性(均值和方差)進行標準化,實現了某種形式的風格標準化(style normalization)。特徵的均值和方差就代表着圖像的風格!爲了驗證自己的想法,作者又做了一個實驗,先將圖像遷移到同一個風格(不是目標風格),然後再進行一次風格遷移(到目標風格),結果如圖2中的(c)所示,IN和BN的性能差異減小了很多。遷移到同一個風格後,BN的均值和方差和IN的均值和方差就差不多了(差多少取決於遷移的性能),所以BN和IN的性能就差不多了。沒錯了,是它,是它,就是它!實錘了,特徵的均值和方差就代表着圖像的風格!這也就解釋了爲什麼CIN使用不同的 對,可以得到不同風格的遷移結果。

 

三、重點來了:Adaptive Instance Normalization

在BN,IN,CIN中,網絡會學習仿射變換參數,作者提出的AdaIN則無需學習這兩個參數,直接用style image的特徵的均值和標準差代替這兩個參數,公式如下:

From reference [1]

其中, 分別表示content image的特徵的均值和標準差, 分別表示style image的特徵的均值和標準差。這個公式可以理解爲,先去風格化(減去自身均值再除以自身標準差),再風格化到style image的風格(乘style image的標準差再加均值 )。

網絡結構如圖3所示

Fig.3 網絡框架,From reference [1]

 

訓練時,先用VGG提取content image和style image的特徵,然後在AdaIN模塊進行式(8)的操作,然後用於VGG對稱的Decoder網絡將特徵還原爲圖像,然後將還原的圖像再輸入到VGG提取特徵,計算content loss和style loss,計算公式如式(11-13)所示,style loss會對多個層的特徵進行計算。VGG的參數在訓練過程中是不更新的,訓練的目的是爲了得到一個好的Decoder。

From reference [1]

From reference [1]

From reference [1]

 

四、實驗結果

1、跟其他方法的比較

圖4是遷移的結果,個人覺得效果最好的是Chen and Schmidt那個,但是它速度慢了些,比這篇論文慢50倍左右(見圖5)。Loss我覺得這篇論文倒是降得挺低的,訓練200多次迭代後就比其他都低了,但效果我感覺其實沒別人的好(這件事比較主觀),這說明,loss不能充分反映最後的效果會這樣

Fig.4 遷移結果,From reference [1]

Fig.5 遷移速度、風格數量,From reference [1]

Fig.6 兩個Loss,From reference [1]

 

2、看看其他方法效果怎麼樣

Enc-AdaIN-Dec: 論文中的方法

Enc-Concat-Dec: 將AdaIN替換爲串聯操作,即把content image會和style image的特徵簡單串聯起來

Enc-AdaIN-BNDec: 在DEcoder中加入BN

Enc_AdaIN-INDec: 在DEcoder中加入IN

圖7(d)中可以看到(a)中鴨子的輪廓,說明網絡沒能把style image的style和content解耦好,與圖8中content loss很大相對應;(e)和(d)效果很差,style loss也很大,(e)效果尤其差。這也在此驗證了作者的想法,Normalization會將風格進行標準化(或者說,去風格化),這與我們想生成不同風格圖像的目標相左,所以效果自然不好。

Fig.7 不同方法的遷移結果,From reference [1]

Fig.8 不同方法的Loss,From reference [1]

 

3、content和style的折中

用戶可以通過參數  來控制content和style的折中,  越大,風格遷移得越好,但內容的保存得越少,如圖9所示

Fig.9 content與style的折中,From reference [1]

 

4、多風格的混合

如圖10所示,四個頂點是4張style image,中間是遷移結果,混合了4張圖像的style,離style image越近,風格也越靠近該圖

Fig.10 多風格混合遷移,From reference [1]

 

5、色彩控制

如圖11所示,左半邊大圖爲content image,右上角小圖爲style image,如果直接遷移,得到的圖的顏色跟style image會很像,通過色彩控制選項,可以保存原圖的色彩,效果如圖11右半邊所示

Fig.11 色彩控制,From reference [1]

 

6、空間控制

將一張圖像的不同區域遷移到不同風格,效果如圖12所示

Fig.12 空間控制,From reference [1]

 

 

Reference

[1] Huang, Xun, and Serge Belongie. "Arbitrary style transfer in real-time with adaptive instance normalization." InProceedings of the IEEE International Conference on Computer Vision, pp. 1501-1510. 2017.

[2] S. Ioffe and C. Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In JMLR, 2015

[3] A. Radford, L. Metz, and S. Chintala. Unsupervised representation learning with deep convolutional generative adversarial networks. In ICLR, 2016.

[4] D. Ulyanov, A. Vedaldi, and V. Lempitsky. Improved texture networks: Maximizing quality and diversity in feed-forward stylization and texture synthesis. In CVPR, 2017.

[5] V. Dumoulin, J. Shlens, and M. Kudlur. A learned representation for artistic style. In ICLR, 2017.

[6] L. A. Gatys, A. S. Ecker, andM. Bethge. Image style transfer using convolutional neural networks. In CVPR, 2016.

[7] C. Li and M. Wand. Combining markov random fields and convolutional neural networks for image synthesis. In CVPR, 2016.

[8] Y. Li, N. Wang, J. Liu, and X. Hou. Demystifying neural style transfer. arXiv preprint arXiv:1701.01036, 2017.

[9] L. A. Gatys, A. S. Ecker, andM. Bethge. Image style transfer using convolutional neural networks. In CVPR, 2016.

[10]Y. Li, N. Wang, J. Liu, and X. Hou. Demystifying neural style transfer. arXiv preprint arXiv:1701.01036, 2017.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章