做者 | Xinrui Wang, Jinze Yugit
譯者 | 劉暢
github
出品 | AI科技大本營(ID:rgzani100)
算法
卡通愛好者的福利來了。網絡
如今,經過在Cartoonize這個應用上一鍵上傳你拍攝的圖像或視頻,就能夠在很短期內將它卡通化。其核心技術來自CVPR 2020的投稿論文,做者的背景是字節跳動和東京大學,他們提出了用白盒卡通表徵實現圖像卡通化。app
目前,這項工做已在GitHub得到1400個Stars。做者稱,他們還計劃很快將開源全部代碼。下一步,他們的目標是經過將模型移植到tensorflow.js來適應實時視頻推理。框架
GitHub連接:機器學習
https://github.com/SystemErrorWang/White-box-Cartoonizationide
來看看這項工做的卡通化效果。函數
頗有卡通化的味道吧?
工具
視頻卡通化的效果也能夠。
固然,若是你想在這款應用上上傳你拍攝的圖片或視頻來進行卡通化,這是地址:
https://cartoonize-lkqov62dia-de.a.run.app/cartoonize
如下是詳細的論文內容解讀:
本文提出了一種將圖像卡通化的方法。經過觀察卡通繪畫行爲並諮詢卡通藝術家,本文提出能夠從圖像中分別識別三個白盒表示:一是卡通圖像平滑表面的輪廓表示,二是針對稀疏色塊和全局內容的結構表示,三是在卡通圖像中反映高頻紋理,輪廓和細節的紋理表示。做者利用生成對抗網絡(GAN)框架來學習提取的表示並將圖像卡通化。
本文方法的學習目標是分別基於每一個提取的表示,從而使本文的框架可控和可調整。這使本文的方法可以知足不一樣風格和不一樣用處的藝術家的要求。最後,對本文方法進行了定性和定量的比較分析,以及用戶研究,以驗證這種方法的有效性。結果是本文方法在全部比較中均優於以前的方法。最後,消融實驗代表了本文框架中每一個部分的做用。
引言
卡通是一種流行的藝術形式,且已普遍應用於各類場景。現代卡通動畫工做流程容許藝術家使用各類資源來創做內容。經過將真實世界的圖片轉換爲可用的卡通場景素材,創造了一些著名的漫畫,該過程稱爲圖像卡通化。
各類卡通風格和用處須要基於特定任務或者先驗知識才能開發可用的算法。例如,某些卡通工做流程更加關注全局調色板主題,可是線條的清晰度倒是次要問題。在其餘一些工做流程中,稀疏和乾淨的色塊在藝術表達中起着主導做用,可是主題卻相對較少強調。
這些變量因素給黑盒模型帶來了不小的挑戰,例如,當面對不一樣用例中藝術家的不一樣需求時,簡單地更改訓練數據集是無濟於事的。所以有了用於圖像卡通化的CartoonGAN網絡,其中提出了一種具備新穎邊緣損失的GAN框架,並在某些狀況下取得了良好的效果。可是,使用黑盒模型直接擬合訓練數據會下降其通用性和風格化質量,在某些狀況下會致使較差的效果。
爲了解決上述問題,本文對人們繪畫的行爲和不一樣風格的卡通形象進行了大量的觀察,並諮詢了少數幾位卡通藝術家。根據本文的觀察結果(如上圖所示),本文建議將圖像分解爲幾種卡通表徵方式,並將它們列出以下:
第一步:提取一個帶權重的低頻內容表示圖片的輪廓特徵(surface representation)。這個低頻內容保留了邊緣/紋理等細節。這與藝術家畫卡通時一般先描繪形狀相似。
第二步:針對輸入圖像,提取一個分割圖,而且在每一個分割區域上使用一個自適應的色彩算法來生成結構表徵(structure representation)。這是模仿畫卡通畫時,邊界清晰且色塊稀疏的膠片(celluloid)風格。
第三步:紋理表徵(texture representation)是用來保持繪畫細節和邊緣的。將輸入圖像轉換爲僅保留相對像素強度的圖像,而後引導網絡獨立地學習高頻紋理細節。這與藝術家素描與上色是獨立的兩個過程相似。
單獨提取的卡通表徵形式使卡通化問題能夠在生成神經網絡(GAN)框架內進行端到端的優化,使其可擴展和可控,更加適用於實際的使用場景,並能夠針對特定任務進行微調以輕鬆知足多樣化的藝術需求。本文在各類風格不一樣的場景中測試了本文的將真實圖片卡通化的方法。
實驗結果代表,該方法能夠生成色彩和諧,使人愉悅的藝術風格,清晰銳利的邊緣以及明顯更少的僞影。本文還顯示,經過定性定量的實驗和用戶研究,本文方法是優於以前的最新方法。最後,本文進行了消融實驗以說明每種表徵方式的做用。最後,本文的貢獻以下:
根據對卡通繪畫行爲的觀察,本文提出了三種卡通表示:輪廓表示,結構表示和紋理表示。而後引入圖像處理模塊以提取每一個表示。
在提取表示的指導下優化了基於GAN的圖像卡通化框架。用戶能夠經過平衡每一個表示的權重來調整模型輸出的樣式。
已經進行了普遍的實驗,代表咱們的方法能夠生成高質量的卡通圖像。咱們的方法在定性比較,定量比較和用戶偏心方面均優於現有方法。
方法
圖4顯示了本文提出的圖像卡通化框架。它將圖像分解爲輪廓表徵,結構表徵和紋理表徵,並引入了三個獨立的模塊來提取相應的特徵表示。GAN的框架包含了一個生成器和兩個判別器。一個判別器是區分卡通圖的輸出和輪廓特徵,另外一個判別器是區分卡通圖的輸出和紋理特徵。預訓練的VGG網絡用於提取高級特徵,並對提取的結構表示和輸出之間以及輸入圖片和輸出之間的全局內容施加空間約束。損失函數中每部份內容的權重均可以調整,這使用戶能夠控制輸出樣式並使模型適應各類用處。
輪廓表徵
做者定義了一個網絡F_dgf,以圖片I爲輸入,並以它本身爲guide map,輸出提取的去掉紋理和細節的外觀特徵F(I,I)。同時定義了一個判別器D_s,用以判斷真實圖和卡通圖的輸出分佈是否一致。損失函數就是經典的gan的損失函數,以下,其中Ic爲輸入的卡通圖,Ip爲真實圖。
結構表徵
通常超像素算法會把每一個區域用區域內的均值來填充,可是做者經過實驗發現這樣效果很差。所以做者使用了改進的算法,他把算法稱之爲「adaptive coloring」,其實就是一個分段函數:
結構損失以下,其中VGG_n是使用VGG16預訓練好的提取圖片特徵的網絡,F_st爲專門處理結構損失的網絡。
紋理表徵
做者認爲亮度和顏色信息會令人很容易分辨真實和卡通圖片,所以在學習紋理特徵的時候,做者把RGB圖轉爲了單通道的圖,這樣就排除了亮度和顏色信息的影響。
Frcs公式如上圖所示,把RGB三個通道分開處理,Y表示的是RGB圖轉化成的灰度圖。在本實驗中α等於0.8,而3個β值則在-1~1之間隨機。此處也定義了一個D_t判別器,來判斷通過F_rcs後的輸出是來自生成器生成的仍是動漫圖。以下所示:
總的損失函數以下:
其中TV損失是爲了下降總方差,能夠促進生成圖像的平滑,並減輕高頻的噪音。公式以下:
content的損失是爲了讓通過生成器後的真實圖語義不變,這裏也用到了預訓練後的VGG。
實驗
本文算法是基於tensorflow實現的,代碼已開源。訓練的超參基本都是常規的訓練參數,而loss權重的超參是基於對訓練集的統計肯定的。做者對模型的性能和效果均作了分析,效果以下,本文算法在對比的算法中,是最高效的。
下圖效果展現了本文算法的泛化能力,可以處理多種複雜的真實場景,包含人、動物、植物等等。
接下來做者作了消融實驗,以FID爲評價標準,結果如表格2所示。計算出的FID度量標準代表,卡通表徵是有助於縮小現實世界的圖像和卡通圖像之間的距離,由於與原始圖像相比,全部三個提取的卡通表徵都具備較小的FID。
圖10是顯示消融實驗中,每一個特徵表示的結果。圖8展現了本文算法的可調控性。結果顯示能夠經過在損失函數中調整每一個特徵表徵的權重來調整卡通化結果的樣式。
圖9與表格3是本文算法與其它算法定性定量的對比。能夠看出,本文算法是更優的。
結論
本文中,做者提出了一種基於GAN的白盒可控的圖像卡通化框架,該框架能夠從真實圖像中生成高質量的卡通化圖像。輸入圖像被分解爲三個卡通表徵:輪廓表徵,結構表徵和紋理表徵。而後使用相應的圖像處理模塊來提取用於網絡訓練的三個表徵,而且能夠經過調整損失函數中每一個表徵的權重來控制輸出風格。最後進行了普遍的定量和定性實驗,驗證了本文方法的性能。同時消融實驗也證實了每一個特徵表示帶來的做用。
論文連接:
https://systemerrorwang.github.io/White-box-Cartoonization/paper/06791.pdf
推薦閱讀