CariGANs: Unpaired Photo-to-Caricature Translation

2018年SIGGRAPH的一篇文章,原文见:CariGANs: Unpaired Photo-to-Caricature Translation

由于时间的关系,小编这里也只贴了我的PPT,完整PPT可以私聊我哈!

 1. 要解决的问题

 2. 基本思路

 3. 数据集准备

 这里有两个主要的问题——

1)为什么要自己标记,不用现成state-of-the-art的模型去检测?
首先是作为训练数据,最好足够准确;
其次则是考虑到对漫画人物的检测很难;
最后,作者使用标记的真人图像的数据去finetune一个已有的face landmarks detector网络,以供测试使用。

2)为什么要对landmark使用PCA降维?
首先,在神经网络中,坐标/位置的变换往往比图像转换难,因为直接使用landmark我们只能使用FC,丢失了空间信息;当然这里说的比较牵强,我们完全可以使用spatial的map来输入人脸,这主要是landmark使用方式不同;
其次,是直接使用坐标的致命弱点:sensitive to very small error。较小的误差都可能引起巨大的artifact,如脸的轮廓可能因为某一点过高或过低导致锯齿状;
最后,是使用PCA编码后降维的好处,它隐式地包含了“人脸”的先验知识,如五官的相对位置等;同时PCA可以保留足够的数据多样性信息,如表情、五官比例等。

4. 训练几何变换的网络CariGeoGAN

训练框架如下图所示:

 具体的原理与loss如下图:

这里值得注意的是Feature loss,其思想是:

对于几何形状的变形,应该满足:该样例在源域与源域中心的位移(注意:包括大小和方向),与该样例映射到目标域后与目标域中心的位移,应该尽可能相似,于是cos距离越大(越接近于1),所以目标要最小化这个误差。

5.  针对不同的loss,作者做了一个销蚀实验

 6. 训练样式变换网络CariStyGAN

训练之前,我们需要制作一个中间的数据集Y'。

 训练的框架如下图

"""
同样的也是采用CycleGAN的训练框架。这里先看一个方向的。

1. 对x用一个content encoder与style encoder 编码得到内容与样式的编码;
2. 取x的内容向量与随机采样得到的Y域的一个样式向量合并,经过Y'->X方向的解码器解码得到目标的风格化图像;
   同时,让x的内容向量与样式向量经过X->Y'方向的解码器得到重构的原图像x;
3. 让生成的目标漫画图像再次经过Y'->X方向的内容编码器与样式编码器,得到内容向量与样式向量;那么,理论上,如果内容与样式很好解耦的话,得到的内容向量应该与原来的内容向量是一样的,我们让这个新的内容向量与原来的样式向量结合,经过x->Y'方向的解码器,那么理论上应该是重构回原来的图像;
(实际上下面的分支就是一个CycleGAN,只不过这里是Cycle的编码器有两个)

4. 之前看到一篇文章,为了实现更好地解耦,还开将S_Y'与合成的漫画图像经过Y'->X方向的样式编码器E_Y'^s获得的新样式向量作L1误差计算。

** 这里的样式s_Y'可以是经过E_Y'^s对某一个y'抽取得到的,也可以是从正态分布随机抽取到的向量。于是我们就实现了多样性的合成!
"""

 每个方向有4个loss,总共8个loss;以X→Y'方向为例,loss的计算如下图所示。

7. 最后展示一些结果

8. 作者在文中自己提到了一些不足之处,如:

"""
1. 只是在脸型上有明显的夸张,这是由于脸型的landmarks点占了33/63
——考虑用分部分地训练?
2. shape上是否可以像style那样实现解耦从而实现多样化?
——但夸张的定义并不明显。什么是内容什么是样式?
"""

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值