CartoonGAN: Generative Adversarial Networks for Photo Cartoonization

CartoonGAN: Generative Adversarial Networks for Photo Cartoonization

Yang Chen, Yu-Kun Lai, Yong-Jin Liu

Abstract

类似新海诚的《你的名字》,作者做的是transforming photos of real-world scenes into cartoon style images
现如今的困难:
(1) cartoon styles have unique characteristics with high level simplification and abstraction
(2) cartoon images tend to have clear edges, smooth color shading and relatively simple textures, which exhibit significant challenges for texture-descriptor-based loss functions used in existing methods
本文的解决方案:CartoonGAN,利用未经匹配的真实图像和动画图像进行训练,并设计了有针对性的loss
(1) semantic content loss,类似neural style,针对第一个问题,通过VGG高层特征的稀疏正则化保证真实图像和卡通图像风格一致
(2) edge-promoting adversarial loss,这是针对第二个问题专门设计的为保留清晰边缘的方法
为了改善训练,促进收敛,作者还提出了一种初始化方法(联系另一篇训练10000层神经网络的论文,其实也只是在做初始化)

Introduction

众所周知的日本动画《你的名字》以其图像风格清新、内容逼真而著名,但这实际上是以创作团队的巨大劳动为代价的,他们以纯手工的方式用软件描画、渲染、修改真实图像的每一个细节才得到如此精良的动画,其中付出的艰辛不言而喻。因此,自动将真实图像转换为卡通图像的技术亟待开发。
这方面相关的有neural style和基于GAN的style transfer(利用不匹配的真实图像和stylized图像进行训练),但是现如今的效果还难以接受,原因主要在于卡通图和艺术作品之间的不同:(1)卡通图是真实图像的高度简化和抽象,并不存在艺术作品中的毛笔划等纹理;(2)卡通图并不像艺术作品那样每种自成一家,而是基本上有相同的外观,如清晰的边缘、光滑的色影和相对简单的纹理。
从计算机视觉的角度来看,卡通图风格化实际上是在保留图像内容的条件下把真实图像映射到卡通图流形上
contribution: (1) CartoonGAN (2) 两种针对该问题设计的loss,对于生成器使用semantic loss,对于判别器使用edge-promoting adversarial loss

Nonphotorealistic rendering (NPR)

cel shading: render 3D shapes in simple shading
传统方法利用图像滤波、优化求解的方式进行卡通图像生成,但是利用简单的数学式子求解复杂的图像艺术风格问题很困难

Stylization with neural networks

neural style适用于大部分艺术风格迁移,但是并不适合卡通图像生成,除此之外还有CNNMRF, Deep Analogy等方法,它们都存在各自的缺陷

Image synthesis with GANs

GAN在text to image translation, image inpainting,image super-resolution等方面都取得了state of the art的结果,然而一般的GAN在做图像合成时都要求匹配的图像集,这通常是不现实的,因为同时具有真实图像和合成图像的数据集很难找到。为此,CycleGAN被提出,能够进行不匹配的数据训练。该方法的主要思想是同时训练两个GAN,一个从类别A到类别B,一个从类别B到类别A,而loss则基于到同一类别的组合映射(?)。本文的方法实际上就是在CycleGAN的基础上加上基于卡通图像的特征设计的两个loss

Network architectures

使用了Residual block,batch normalization和leaky relu(不给出网络模型?)
CartoonGAN: Generative Adversarial Networks for Photo Cartoonization_第1张图片

CartoonGAN

如上图所示,一般的GAN中生成器都是以随机噪声为输入,而这里的GAN却是以真实图像为输入,将其映射到一张卡通图像,其功能类似自编码器,为全卷积结构。而判别器用于判断一张图像是否为真实的卡通图像,其结构也是全卷积结构,不过要比生成器简单。图中k表示kernel size,n表示channel数,s表示stride

loss

该模型的loss包含两部分,一部分是GAN loss,由通常的loss和edge-promoting loss组成,保证GAN的正常训练并且驱使判别器关注图像中的边缘部分,另一部分是图像的content loss,保证生成的图像符合卡通图像的风格特征

L=Lavd+ωLconLavd=Ecp(c)(logD(c))+Eep(e)(log(1D(e)))+Exp(x)(log(1D(G(x))))Lcon=Exp(x)(VGGl(G(x))VGGl(x)1) L = L a v d + ω L c o n L a v d = E c ∼ p ( c ) ( log ⁡ D ( c ) ) + E e ∼ p ( e ) ( log ⁡ ( 1 − D ( e ) ) ) + E x ∼ p ( x ) ( log ⁡ ( 1 − D ( G ( x ) ) ) ) L c o n = E x ∼ p ( x ) ( ‖ V G G l ( G ( x ) ) − V G G l ( x ) ‖ 1 )

其中 p(c) p ( c ) 表示卡通图像分布, p(e) p ( e ) 表示弱化了边缘的卡通图像分布,该数据集从原始卡通数据集经过Canny边缘检测、边缘膨胀和Gauss滤波生成,目的就是为了通过该数据是判别器学习分辨弱边缘卡通图像的能力,而 p(x) p ( x ) 则表示真实图像分布,根据生成器的设定, G(x) G ( x ) 是一张卡通图像,因此 minLadv min L a d v 就是要将真实的卡通图和虚假的卡通图或边缘较弱的卡通图区分开,这就是edge promoting的原理。而semantic loss则由 minLcon min L c o n 保证,其中 l l 表示VGG的某一层。根据卡通图不同于真实图像的特性,这里选取比 l2 l 2 范数更适合的 l1 l 1 范数。

初始化

由于CartoonGAN与一般GAN的差异,因此一般GAN的随机初始化在这里可能不适合。为了对生成器进行一个较好的初始化,首先利用 Lcon L c o n 对生成器进行类似于自编码器器的预训练。

实验

居然还用垃圾lua的torch?
作者进行了新海诚和宫崎骏的卡通图生成实验,感觉效果海星?

你可能感兴趣的:(paper,reading,notes)