CIAGAN: Conditional Identity Anonymization Generative Adversarial Networks
(个人理解,欢迎指正错误)
 
Introduction
  隐私:整个人脸
  可用性:是看起来自然的人
  文章去除真实人脸的同时生成了高质量的假人脸,可用于支持跟踪、检测等计算机视觉任务。与先前工作相比,本文的创新处在于可以在一定程度上控制人脸匿名效果,依据给定的身份参照指导假人脸的合成,到达合成图像接近参照图像的效果。
  文章指出,他们的的关键观察是,许多计算机视觉任务,如人的检测、多人跟踪、动作识别等,不需要识别视频中的人,只需要检测它们,因此文章对人脸隐私保护可用性的解释仍然局限于是个自然的人脸。
Methodology
 

  ·Shape 是人脸姿态的指导信息,文章用了外轮廓、鼻梁和嘴巴指导生成器,而眼睛等其他人脸信息的生成则是自由灵活的。

  ·Background 告诉模型关注人脸区域而非背景区域,多mask一些前额头皮肤可以帮助模型学习与额头肤色相匹配的肤色,过度更加自然。

  ·Identity guidance 文章指出如果模型的可变性仅由输入的landmark(shape、background)提供,则模型会快速过拟合于训练集并倾向于重建图像,导致合成图像与训练集图像相似。为解决这个问题,文章为生成器加入的identity信息,生成器的输入包含了图像A的landmrak以及图像B的identity,合成图像将是图像A姿态特征和图像B身份特征的组合。

  ·Identity Discr.  为连体神经网络,同时输入合成图像与身份参考图像B,使用同一网络结构、同一网络参数映射到嵌入向量空间并计算距离损失。身份判别器使用Proxy-NCA loss用训练集进行预训练,在GAN的训练过程中用contrastive loss微调身份判别器。预训练后的身份判别器将人脸中身份信息映射至嵌入向量空间,嵌入向量空间中将同类身份距离拉近、不同身份距离拉远。在GAN的对抗训练过程中真假图像输入带着不相同的身份标签输入至身份判别器,生成器力图混淆身份判别器,随着训练进行生成器合成的假图像成为针对身份判别器的困难样本,判别器用contrastive loss微调优化自身。

  注:深度度量学习中的损失函数 | 小毛驴 (yangxudong.github.io)。深度度量学习(deep metric learning)是度量学习的一种方法,它的目标是学习一个从原始特征到低维稠密的向量空间(称之为嵌入空间,embedding space)的映射,使得同类对象在嵌入空间上使用常用的距离函数(欧氏距离、cosine距离等)计算的距离比较近,而不同类的对象之间的距离则比较远。

  ·MLP 为反卷积网络,输入是一个one-hot向量,输出为高维向量,规格与生成器bottleneck层相同并进行拼接。(不是很理解为什么将one-hot表示输入MLP,MLP要训练吗?)

Result

  文章特地写了一段“Are we just doing face swapping?”。定性角度:给出一组合成图片表明与单纯换脸的区别;定量角度:使用人脸识别网络无法识别出合成图像的参考身份。

Personal Opinions

  文章做的人脸匿名个人认为是一种图像风格融合,能够控制模型的目标融合身份提升了对人脸匿名模型的控制力,但在融合结果的解释力上是不足的。正如文章中与“换脸”的辨析,合成人脸既不像原始图像A,也不像身份参考图像B。文中提到合成图像使用了身份参考图像B的高层次特征(race、sex),视觉效果上有合理性但缺乏定量的分析。总之文章的匿名方法说不清楚是如何融合图像A、B的,这造成了应用场景上的局限,可用性仍然停留在合成图像具有自然的人脸这一点上,但是CIAGAN避免了合成图像过拟合于训练集。

  

CIAGAN: Conditional Identity Anonymization Generative Adversarial Networks阅读笔记的更多相关文章

  1. StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks 论文笔记

    StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks  本文将利 ...

  2. Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 阅读笔记

    Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks (使用循环一致的对抗网络的非配对图像-图 ...

  3. 文献阅读报告 - Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks

    paper:Gupta A , Johnson J , Fei-Fei L , et al. Social GAN: Socially Acceptable Trajectories with Gen ...

  4. 语音合成论文翻译:2019_MelGAN: Generative Adversarial Networks for Conditional Waveform Synthesis

    论文地址:MelGAN:条件波形合成的生成对抗网络 代码地址:https://github.com/descriptinc/melgan-neurips 音频实例:https://melgan-neu ...

  5. 【文献阅读】Perceptual Generative Adversarial Networks for Small Object Detection –CVPR-2017

    Perceptual Generative Adversarial Networks for Small Object Detection 2017CVPR 新鲜出炉的paper,这是针对small ...

  6. 生成对抗网络(Generative Adversarial Networks,GAN)初探

    1. 从纳什均衡(Nash equilibrium)说起 我们先来看看纳什均衡的经济学定义: 所谓纳什均衡,指的是参与人的这样一种策略组合,在该策略组合上,任何参与人单独改变策略都不会得到好处.换句话 ...

  7. Paper Reading: Perceptual Generative Adversarial Networks for Small Object Detection

    Perceptual Generative Adversarial Networks for Small Object Detection 2017-07-11  19:47:46   CVPR 20 ...

  8. Generative Adversarial Networks overview(1)

    Libo1575899134@outlook.com Libo (原创文章,转发请注明作者) 本文章会先从Gan的简单应用示例讲起,从三个方面问题以及解决思路覆盖25篇GAN论文,第二个大部分会进一步 ...

  9. StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation - 1 - 多个域间的图像翻译论文学习

    Abstract 最近在两个领域上的图像翻译研究取得了显著的成果.但是在处理多于两个领域的问题上,现存的方法在尺度和鲁棒性上还是有所欠缺,因为需要为每个图像域对单独训练不同的模型.为了解决该问题,我们 ...

随机推荐

  1. Python函数-导入模块的顺序及原理

    引入 当python导入模块,执行import语句时,到底进行了什么操作?按照python的文档,她执行了如下的操作: 第一步,创建一个新的module对象(它可能包含多个module) 第二步,把这 ...

  2. 王下邀月熊_Chevalier的前端每周清单系列文章索引

    感谢 王下邀月熊_Chevalier 分享的前端每周清单,为方便大家阅读,特整理一份索引. 王下邀月熊大大也于 2018 年 3 月 31 日整理了自己的前端每周清单系列,并以年/月为单位进行分类,具 ...

  3. 如何在jsp界面进行判断再输出不同的值

    C标签的out <td> <c:if test="${nowtime eq returntime}"> <c:out value="逾期&q ...

  4. 利用css3渐变效果实现圆环旋转效果

    * { margin: 0; padding: 0; } .stage { width: 200px; height: 130px; margin: 100px auto; position: rel ...

  5. java生成多级菜单树

    使用java实现一个多级菜单树结构 先上数据库 ps_pid字段很重要,是父级菜单的id Menu类 Menu类要新增一个字段,用来存放子菜单 /** * 子菜单列表 */ private List& ...

  6. centOS一次性更新所有依赖库

    CentOS中使用yum一次性更新安装依赖库 [tom@localhost /]# sudo -s [root@localhost /]# LANG=C [root@localhost /]# yum ...

  7. IDEA小技巧:Debug条件断点

    今天给大家分享一个IDEA调试过程中的一个小技巧. 先来说说场景,你有没有碰到类似的情况,一个循环结构里,中间某一个情况可能会出错.比如下面的代码结果中,可能执行到第27次的时候,会出现问题. for ...

  8. python---二分查找的实现

    from cal_time import get_running_time @get_running_time def bin_search(li, val): """ ...

  9. SSM框架整合(Spring、SpringMVC、Mybatis)

    #毫无疑问我们肯定是使用Spring去整合SpringMVC和Mybatis,在整合过程中我们首先要让各自的模块实现,然后再去使用Spring整合:比如我先实现Mybatis框架的配置,然后再通过测试 ...

  10. [UE][虚幻]创建默认媒体打包资源路径

    **创建默认媒体打包资源路径** **个人笔记**   **翻阅官方资料,实践出来的!**   **转载,"借鉴",重写...其他行为必须标明出处!!!** UE 官方默认有一个专 ...