• Face Aging with Conditional Generative Adversarial Network 论文笔记


    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 

  • 相关阅读:
    从C#角度 单例模式 懒汉和饿汉
    从C#角度 理解MVC原理
    总结下 简单工厂-》工厂-》抽象工厂
    尝试加载Oracle客户端库时引发BadImageFormatException
    org.springframework.dao.DuplicateKeyException: 问题
    写出严谨的代码
    Spring基础入门之IoC注入
    javaIO流小结(1)
    java入门之异常处理小结
    static关键字使用
  • 原文地址:https://www.cnblogs.com/wangxiaocvpr/p/6477137.html
Copyright © 2020-2023  润新知