CVPR2018 CartoonGAN 解读
CartoonGAN前言
? ? ? 本文是對CVPR2018的一篇關于圖像風格遷移的論文解讀,即CartoonGAN,它可以用真實景物的照片作為源圖片,生成任意風格的漫畫,如新海誠或者宮崎駿。有人說這不就是Photoshop的濾鏡而已嘛,當然Photoshop也可以做到,但是只給你一分鐘來產生上百張效果圖,Photoshop能否做到?我自己也在復現,但發現真的很難調出效果好的模型,自己的實驗還得繼續。
作者調出的模型效果是非常不錯的了,效果圖如下:真實景物——新海誠風格——宮崎駿風格
論文鏈接:
http://203.187.160.133:9011/openaccess.thecvf.com/c3pr90ntc0td/content_cvpr_2018/papers/Chen_CartoonGAN_Generative_Adversarial_CVPR_2018_paper.pdf
作者未開源代碼,只給出了四個訓練好的模型(宮崎駿、細田守、今敏和新海誠風格),作者用torch進行實驗,模型下載鏈接:
http://cg.cs.tsinghua.edu.cn/people/~Yongjin/CartoonGAN-Models.rar
于是Github有人寫了test代碼用以上四個模型來前向測試圖像,以下用Pytorch寫的test代碼還不錯:
https://github.com/Yijunmaverick/CartoonGAN-Test-Pytorch-Torch
大家可以自己看論文,下載模型,找一些真實場景圖試試速度和效果。
CartoonGAN理論解讀
CartoonGAN其實就是一個用于非成對image訓練的GAN,可以說是單向的CycleGAN罷了,創新點就三點:
1、作者自己設計的GAN網絡架構,包括生成網絡G和判別網絡D,都比較直觀基礎,如下圖:
2、提出了損失函數L(G,D),由兩部分組成,第一部分Ladv(G,D)為普通的GAN損失,第二部分Lcon(G,D)為保證原真實圖像內容的內容損失:
? ? ? ?可以看到Ladv(G,D)比普通GAN損失多加了一個Eej~Sdata(e)[log(1 - D(ej))],也就多了一個數據集ej,那這個數據集怎么來的,它是通過對原始卡通圖像進行邊緣模糊后得到的,目的是為了讓生成網絡G生成邊緣清晰的圖片,所以D(ej)判別為假數據。而Lcon(G,D)就是Neural Style里面的內容損失,只不過把L2損失改為L1損失,在這里我們可以看成是一個正則化。
3、引入一個初始化過程,先用Lcon(G,D)單獨一個損失來訓練G,大概訓練10個epoch,目的是為了生成的圖片初始后就能保證原真實場景的內容,畢竟普通的單向GAN要是沒有加入一些限制很難穩定保證原始圖片的內容,大多會出現扭曲或更嚴重的情況,而類似的,在CycleGAN中體現為用cycle_loss來保證原始圖片內容。
CartoonGAN實驗
? ? ? ?想跑一跑CartoonGAN的test效果,直接用作者所給的四個模型就好了,假如還想自己訓練其他風格的模型,或者加點別的效果,那就得自己寫代碼實現論文以上三個創新點了,難度不大,用Tensorflow/Pytorch實現很快,只不過要自己挑好訓練集、訓練集數量要足夠多,質量也要好,其次各種調參也是非常重要的,訓練時間也很長啦~~
最后,歡迎大家討論交流哈哈~
總結
以上是生活随笔為你收集整理的CVPR2018 CartoonGAN 解读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文研读-多目标优化中的多源选择迁移框架
- 下一篇: 手机web端唤醒qq客户端以及电脑web