《Learning to Cartoonize Using White-box Cartoon Representations》圖像卡通化論文解析

這篇文章收錄於CVPR2020,在圖像卡通化上效果不錯。

github地址:https://github.com/SystemErrorWang/White-box-Cartoonization

那麼這篇文章做了一件什麼事呢?就是把真實世界的照片轉爲卡通風格的:

本文的思想主旨主要如下圖:

將一張真實世界的圖片分解爲三種特徵標識:1、外觀特徵  2、結構特徵 3、紋理特徵。 

分別介紹一下。1、外觀特徵容易理解,一張圖大體上看來是怎麼樣的,去掉紋理、細節信息,就是外觀特徵。   2、結構特徵,作者受啓發於動漫的繪畫方式,動漫總是用稀疏的顏色和分明的邊界來勾畫,因此結構特徵圖將原圖分割後對不同部分上色,只保留大塊的結構信息。   3、紋理特徵,單通道去掉了圖片的顏色,但是保留了圖片的細節和邊界。

接下來詳細介紹作者給出的算法:

整體網絡結構如下:

需要注意的是其中的三個F,並不參與訓練,其中的參數是不會被迭代優化的。當然具體怎麼實現的,還需要看看代碼。

分別介紹下本文的損失函數:

一、學習外觀特徵

作者定義了一個網絡Fdgf,以圖片I爲輸入,並以它自己爲guide map,輸出提取的去掉紋理和細節的外觀特徵F(I,I)。同時定義了一個判別器Ds,用以判斷真實圖和卡通圖的輸出分佈是否一致。

loss函數(經典的GANloss)如下:

其中Ic爲輸入的卡通圖,Ip爲真實圖。

 

二、學習結構特徵

作者使用了 felzenszwalb 提出的圖像分割算法,將圖像分割爲不同的區域。

一般超像素算法會把每個區域用區域內的均值來填充,但是作者通過實驗發現這樣效果不好。因此作者使用了改進的算法,他把算法稱之爲“adaptive coloring”,其實就是一個分段函數:

其中 σ爲標準差,S上橫線應該是均值,S上~暫時不知道是啥意思,作者在論文裏也沒說。

因此結構損失如下:

其中VGGn是使用VGG16預訓練好的提取圖片特徵的網絡,Fst爲專門處理結構損失的網絡。

 

三、學習紋理特徵

作者認爲亮度和顏色信息會使人很容易分辨真實和卡通圖片,因此在學習紋理特徵的時候,作者把RGB圖轉爲了單通道的圖,這樣就排除了亮度和顏色信息的影響。

Frcs公式如上圖所示,把RGB三個通道分開處理,Y表示的是RGB圖轉化成的灰度圖。在本實驗中α等於0.8,而β1、2、3則在-1~1之間隨機。

此處也定義了一個Dt判別器,來判斷經過Frcs後的輸出是來自生成器生成的還是動漫圖。

 

四、總損失

因此總損失函數如下:

其中Ltv是爲了降低總方差,可以促進生成圖像的平滑,並減輕高頻的噪音。公式如下:

Lcontent是爲了讓經過生成器後的真實圖語義不變,這裏也用到了預訓練後的VGG。

 

五、實驗

實驗部分基本上沒什麼可說的,大家有需要的時候自己去看看。不過值得一提的是作者先預訓練了生成器,只用了內容損失,訓練了50000個iterations。

 

 

 

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