將照片變成動漫——cartoonGAN論文解析

把現實中拍的照片,變成動漫的畫風,這就是cartoonGAN做到的事情。

這篇論文的全名叫做:《CartoonGAN: Generative Adversarial Networks for Photo Cartoonization》

cartoonGAN主要做了以下幾點創新:

1、提出了一個基於GAN的方法,使用不配對的訓練集,將現實世界的照片轉爲卡通圖片。

2、提出了兩個loss,在生成器中使用了語義分割loss,在判別器中使用了邊緣提升對抗loss。

3、提出了一種初始化權重方法。

 

接下來讓我們詳細看看吧:

一、網絡結構

上方的是生成器,先降採樣再上採樣。

下方的是判別器,作者在這使用了簡單的patch-level的判別器,網絡比較淺,因爲動漫和真實照片的風格差異主要在局部特徵。

 

二、損失函數

總損失函數如下:

對抗損失Ladv: 

本來GAN的對抗損失沒什麼好說的,無非就是生成器G努力生成逼真的圖像,判別器D努力判斷圖像是真的還是假的,但是作者發現卡通圖片的清晰邊緣是一個很重要的特徵,當生成器生成的圖沒有清晰的邊緣但是有正確的形狀的時候,判別器容易也把它分成真圖。這樣就會導致生成的圖不像卡通風格。

因此定義數據Sdata(p)爲真實照片photo,Sdata(c)爲卡通圖片cartoon,作者在這裏自己生成了數據Sdata(e),去掉了Sdata(c)中清晰的邊界。具體做法:1、使用標準的canny邊緣檢測器檢測邊緣像素  2、膨脹邊緣區域  3、在膨脹的邊緣區域使用高斯平滑。效果如下圖:

因此Ladv如下:

也就是說判別器不僅要分清c和p,也要分清c和e。

 

內容損失Lcon:

其次是需要保持生成的圖的語義信息。因此作者使用了預訓練好的VGG,並在特徵上對生成的圖和原圖施加了一個l1loss:

這裏作者特別說明了他們使用l1loss跟其他人都使用l2不太一樣,是因爲卡通畫跟真實照片差別太大。

 

三、初始化方式

因爲GAN比較難訓練,要是隨機初始化權重的話,優化器很容易陷在局部最優裏。作者爲了解決這個問題,作者預訓練了生成器,只使用Lcon。在對比實驗中作者證明了這種方式是有效的。下圖爲預訓練中10個epoch的生成結果:

 

四、實驗部分

實驗部分就不細說了,放幾張圖:

 

 

 

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