Face Aging with Conditional Generative Adversarial Network 论文笔记

2017.02.28 

Motivation:

  本文是要根据最新的条件产生式对抗玩网络(CGANs)来完成,人类老年照片的估计。

  主要是做了一下两个事情:

    1. 根据年龄阶段,进行照片的老年估计,用 acGAN 网络来完成;

    2. 提出一种 隐层变量优化算法(latent vector optimization approach),允许 acGAN 可以重构输入人脸图像,与此同时,保留原本人脸的个体。

    

  猛地一看,这个流程图,其实是挺迷惑人的,我感觉。

  按照上述流程图,来看看作者想要达到什么效果:

  1. 首先给定一张输入图像 x ,假设年龄记为 y0,找到一个最优的隐层向量 z*,使得可以产生一个重构的人脸 x-,尽可能的和初始的人脸尽可能的相似。

  2. 给定一个目标年龄 $y_{target}$,产生一张结果人脸图像 $x_{target} = G(z*, y_{target})$,简单的完成年龄的切换。

  其实,这个文章是做了这么一个事情:

  结合 条件产生式对抗网络 和 隐层向量之间的loss 来完成整个网络的训练。

  首先,作者是在给定一张图像的基础上,进行人脸的老化估计。作者这里考虑了 输入随机 noise 对最终结果的影响。

    自己随机的产生了一堆 noise Z,然后在条件--->> 年龄这个标签的条件下,利用对抗网络生成许多伪造的 image ;

    由于是自己根据 noise z 生成的,这里相当于是 已经有了 groundtruth,我们训练一个 encode 网络,将输入的人脸图像,估计其 编码后的 向量 z* ;

    通过不断地训练,可以得到 能够预测图像隐层编码的网络 Encoder 。

  

  其次,我们文章的一个很重要的卖点在于,可以保持生成图像和输入图像是 相同的身份,是同一个人,那么,这里是怎么做到的呢?

    因为我们知道,GAN 生成的数据,一般都是看起来有模有样,但是实际上是很难控制输出什么的。

    本文之所以可以做到这一点,就是因为,在生成图像的过程中,加入了隐层变量 z 之间的 loss,即:

    

    这样在生成图像过程中,考虑生成的图像和原始输入图像之间的隐层向量 z 之间的差距,尽可能的小,就可以将这个事情 model 的非常好!

  总结起来就是,在生成图像的过程中,首先学习一个编码网络,可以预测图像的隐层变量。然后在 GAN 过程中,加入这个 loss,作为衡量输出图像质量好坏的一个标准。

  这样,生成的人脸图像,不但可以尽可能的和原始图像保持是同一个人,另外,又可以,在条件 年龄的基础上,生成对应年龄阶段的人脸图像。

  

  大致就是这么个流程。有任何疑问,请发邮件与我联系! wangxiaocvpr@foxmail.com

最新文章

  1. windows下编译支持https的libcurl
  2. 团体程序设计天梯赛-练习集L1-019. 谁先倒
  3. windows环境下mysql忘记密码如何重置
  4. DirectX 初始化DirectX(第一方式)
  5. Image的Stride
  6. finger用户名、主目录、停滞时间、登录时间
  7. springMVC实现文件上传下载
  8. VS2015 安装nuget离线包nupkg文件
  9. Linux安装Jdk Tomcat MySQL
  10. JavaScript面向对象—基本数据类型和引用数据类型的区别和变量及作用域(函数和变量)
  11. 【rabbitmq】RabbitMQ 集群与网络分区
  12. Android为TV端助力 转载:Android绘图Canvas十八般武器之Shader详解及实战篇(下)
  13. js 对象与数组相互转化的快捷方法 Object.keys()、Object.values()、Object.entries()
  14. SpringMVC(十一) RequestMapping获取Cookie值
  15. B - 可能的路径(gcd变形)
  16. AssetBundle Manager and Example Scenes
  17. openstack之镜像管理
  18. SpringBoot+Shiro引起事务失效、错误原因、解决方法
  19. 【3】SpringMVC的Controller
  20. 第16讲——C++中的代码重用

热门文章

  1. sitecore系统教程之禁用xDB和Xdb跟踪
  2. Groovy常用编程知识点简明教程
  3. 设计模式之Singleton(单态)(转)
  4. 设计模式之Interpreter(解释器)(转)
  5. 设计模式之Chain of Responsibility(职责链)(转)
  6. linux常用的软件更新命令
  7. Codeforce 697A - Pineapple Incident
  8. Python基础教程之udp和tcp协议介绍
  9. WTL CHyperLink类的使用(超链接)
  10. C++ STL--顺序容器(vector)