CartoonGAN_CVPR_2018为照片卡通化而生的对抗网络论文阅读笔记

CartoonGAN_CVPR_2018

屠龙少女的世界可可爱爱没道理
好了 进入正题 话不多说 快上车
CartoonGAN: Generative Adversarial Networks for Photo Cartoonization
为照片卡通化而生的对抗网络
语言lua
框架torch

https://github.com/Yijunmaverick/CartoonGAN-Test-Pytorch-Torch
只有测试代码,没有公开训练代码。

github上面有2个cartoonGAN的复现。
https://github.com/taki0112/CartoonGAN-Tensorflow

https://github.com/SystemErrorWang/CartoonGAN
暂时我只测试过第一个github源码,效果不错,其他两个还没测过
在这里插入图片描述

1. 创新点
采用不配对的照片和卡通图像进行训练
提出了两个新颖的损失

(1)语义内容损失Lcon(G,D), 在VGG网络的高级特征图中以稀疏正则化的形式表示,以处理照片和卡通之间的大量样式变化。
(2) 一种边缘提升的对抗损失Ladv(G,D)为了保持清晰的边缘。

2. 数据集
无公开数据集
训练数据包含真实世界的照片和卡通图像,测试数据只包含真实世界的照片。所有的训练图像都被调整大小并裁剪为256×256。
真实图片:从Flickr上下载了6153张照片,其中5402张照片是用训练的
卡通图片:使用了来自几个动画短片的4573张和4212张卡通图像来训练新海诚和细田守模型。动画电影《千与千寻》和《辣椒粉》中的3617和2302张图片被用来训练宫崎骏和“辣椒粉”风格的模型。
3. 模型结构
在这里插入图片描述其中k为核尺寸,n为特征图数,s为各卷积层的步长,‘norm’表示归一化层,‘ES’表示元素求和。

GAN框架由两个cnn组成。一个是发生器G,它被训练来产生动画风格的图片。另一种是鉴别器D,它可以区分图像是来自真实的目标流形还是合成的。针对卡通图像的特殊性,设计了发生器和鉴别器网络。
(1) G网络

  • 使用生成网络G将输入图像映射到卡通流形。一旦模型被训练,就会产生卡通风格。
  • G首先是一个平坦的卷积阶段,然后是两个下卷积块,对图像进行空间压缩和编码。该阶段提取有用的局部信号进行下游变换。
  • 然后,用8个布局相同的残块来构造内容和流形特征。
  • 最后,通过两个上卷积块对输出的卡通图像进行重构,上卷积块包含一个阶跃跃度为1/2的卷积层和一个阶跃跃度为7×7的卷积层。

(2) D网络

  • 该鉴别器网络与生成网络互补,用于判断输入图像是否是真实的卡通图像,使用了一个简单的补丁级鉴别器,而不是常规的全图鉴别器。在d中,使用了较少参数的补丁级鉴别器。与对象分类不同,卡通风格鉴别依赖于图像的局部特征。
  • 网络采用两个跨行卷积块来降低分辨率,编码必要的局部特征进行分类。然后利用特征构造块和3×3卷积层获得分类响应。LReLU(α= 0.2)每次使用归一化层。

(3) 损失函数
损失函数L(G,D)由两部分组成:(1)对抗损失Ladv(G,D),驱动发生器网络实现所需的流形变换;(2)内容损失Lcon(G,D),在卡通风格化过程中保持图像内容。
在这里插入图片描述

其中ω是平衡两个损失的权重。ω越大就会有更多的内容信息从输入照片被保留,更详细的纹理图像。这篇论文设置ω= 10,达到风格和内容保护的平衡。

  • 对抗损失Ladv(G,D),其值表示发生器G的输出图像与卡通图像的相似程度。
    生成器G输出生成的图像G(pk)。
    没有清晰边缘的卡通图像G(pk) ej∈Sdata(e))
    真实的卡通图像(即,ci∈Sdata©)
    在这里插入图片描述

  • 语义内容损失Lcon(G,D),确保生成的卡通图像保留输入照片的语义内容。
    在这里插入图片描述

其中l为特定VGG层的特征图。使用“conv4_4”层中的特征图来计算语义内容损失,并使用VGG中的ℓ1稀疏正则化的损失函数。
4. 总结
研究如何利用局部的面部特征来提高人脸的卡通化
计划在训练过程中添加顺序约束,以将模型扩展到处理视频

好了 ,完结撒花!!!!!

原创文章 3 获赞 9 访问量 328

猜你喜欢

转载自blog.csdn.net/weixin_45236828/article/details/105839502