CycleGAN:圖片風格,想換就換 | ICCV 2017論文解讀

本期推薦的論文筆記來自 PaperWeekly 社區用戶 @LUOHAO本文提出的模型名為 CycleGAN,作者希望在不藉助 paired example 情況下,來實現圖片的風格轉換。

關於作者:羅浩,浙江大學博士研究生,研究方向為計算機視覺和深度學習,現為曠視科技(Face++)的 research intern。

論文 | Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks

鏈接 | paperweekly.site/papers

源碼 | junyanz.github.io/Cycle

前言

CycleGAN 是發表於 ICCV17 的一篇 GAN 工作,可以讓兩個 domain 的圖片互相轉化。傳統的 GAN 是單向生成,而 CycleGAN 是互相生成,網路是個環形,所以命名為 Cycle。

並且 CycleGAN 一個非常實用的地方就是輸入的兩張圖片可以是任意的兩張圖片,也就是 unpaired。

單向GAN

讀者可以按照原論文的順序理解 CycleGAN,這裡我按照自己的思路解讀。CycleGAN 本質上是兩個鏡像對稱的 GAN,構成了一個環形網路。其實只要理解了一半的單向 GAN 就等於理解了整個CycleGAN。

上圖是一個單向 GAN 的示意圖。我們希望能夠把 domain A 的圖片(命名為 a)轉化為 domain B 的圖片(命名為圖片 b)。

為了實現這個過程,我們需要兩個生成器 G_AB 和 G_BA,分別把 domain A 和 domain B 的圖片進行互相轉換。

圖片 A 經過生成器 G_AB 表示為 Fake Image in domain B,用 G_AB(a) 表示。而 G_AB(a) 經過生辰器 G_BA 表示為圖片 A 的重建圖片,用 G_BA(G_AB(a)) 表示。

最後為了訓練這個單向 GAN 需要兩個 loss,分別是生成器的重建 loss 和判別器的判別 loss。

判別 loss:判別器 D_B 是用來判斷輸入的圖片是否是真實的 domain B 圖片,於是生成的假圖片 G_AB(A) 和原始的真圖片 B 都會輸入到判別器裡面,公示挺好理解的,就是一個 0,1 二分類的損失。最後的 loss 表示為:

生成 loss:生成器用來重建圖片 a,目的是希望生成的圖片 G_BA(G_AB(a)) 和原圖 a 儘可能的相似,那麼可以很簡單的採取 L1 loss 或者 L2 loss。最後生成 loss 就表示為:

以上就是 A→B 單向 GAN 的原理。

CycleGAN

CycleGAN 其實就是一個 A→B 單向 GAN 加上一個 B→A 單向 GAN。兩個 GAN 共享兩個生成器,然後各自帶一個判別器,所以加起來總共有兩個判別器和兩個生成器。一個單向 GAN 有兩個 loss,而 CycleGAN 加起來總共有四個 loss。

CycleGAN 論文的原版原理圖和公式如下,其實理解了單向 GAN 那麼 CycleGAN 已經很好理解。

X→Y 的判別器損失為,字母換了一下,和上面的單向 GAN 是一樣的:

同理,Y→X 的判別器損失為:

而兩個生成器的 loss 加起來表示為:

最終網路的所有損失加起來為:

論文裡面提到判別器如果是對數損失訓練不是很穩定,所以改成的均方誤差損失,如下:

下面放一張網友們自製的 CycleGAN 示意圖,比論文原版的更加直觀。

效果展示

CycleGAN 的效果還是不錯的,論文里給出了很多結果圖,可以欣賞一下。

本文由 AI 學術社區 PaperWeekly 精選推薦,社區目前已覆蓋自然語言處理、計算機視覺、人工智慧、機器學習、數據挖掘和信息檢索等研究方向,點擊即刻加入社區

關於PaperWeekly

PaperWeekly 是一個推薦、解讀、討論、報道人工智慧前沿論文成果的學術平台。如果你研究或從事 AI 領域,歡迎在公眾號後台點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。

微信公眾號:PaperWeekly

新浪微博:@PaperWeekly

推薦閱讀:

(科普)簡單的人臉識別
從RTX&DXR看圖形學的發展
Rethinking ICCV 2017 [Part 1]
[計算機視覺論文速遞] 2018-03-30
【CVPR2018正式公布】行人重識別論文

TAG:生成對抗網路GAN | 計算機視覺 |