Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >独家 | 基于生成对抗网络(GAN)的人脸变形(附链接)

独家 | 基于生成对抗网络(GAN)的人脸变形(附链接)

作者头像
数据派THU
发布于 2019-11-23 16:32:09
发布于 2019-11-23 16:32:09
8170
举报
文章被收录于专栏:数据派THU数据派THU

作者:Rudra Raina

翻译:张一豪

校对:吴金笛

本文约2100字,建议阅读10分钟。

本文详细介绍了生成对抗网络(GAN)的知识,并用其变换人脸,并探寻如何利用StyleGAN生成不同属性(如年龄、微笑等)的人脸。

概述

直到最近,我才开始探索深度学习的全部内容,并在计算机视觉中遇到了这些有趣的想法和项目。

即使我的知识和经验有限,我也希望这可以帮助其他一些初学者对该领域产生兴趣并尝试一些令人兴奋的新事物。

我找到一个非常棒的YouTube频道,叫做Arxiv Insights(或者简称AI,这是个巧合吗?我看不是)。在这个频道,我发现其中一个视频是相当有趣的:如何使用生成对抗网络对人脸变形!本文是对我从上述视频中学到的知识的总结,我希望到结束时您对这个想法有一个很好的了解,并且可能想自己尝试一下。

上图中的人在现实生活中并不存在,他们是计算机生成的。朋友们,那就是GAN的力量。果这引起了您的注意,请继续阅读以了解更多信息。

第一部分:GAN是什么

GAN有一个非常简单的任务要做,就是从头开始生成数据,而这种数据甚至可以欺骗人类。

该模型由Ian Goodfellow及其同事于2014年发明,由两个神经网络组成(生成器和判别器),它们相互竞争,从而产生了一些真实的内容。

使用两个网络的目的可以概括为尽可能多地学习输入数据的基础结构,并利用该知识来创建相似的内容,该内容拟合了所有参数以适应同一类别。

如上所示,输入的是人脸,GAN准确地学习到怎样生成人脸或人。利用这种理解,它会生成随机的人脸,这些人脸也可能是真实的。

让我们详细了解一下:

GAN的基本结构

这张图是简化后的GAN模型结构,但它捕获了该概念的完整本质。

这是在GAN的一次迭代中发生的情况:

1. 生成器

  • 生成器将随机噪声矢量作为输入;
  • 生成器将执行多次转置卷积,以对噪声进行上采样,最终生成图像。

2. 判别器

  • 它从现实世界样本(真实样本)或生成的图像样本(假样本)中获取随机输入;
  • 顾名思义,判别器只干一件事:判别输入的“真是样本”还是“假样本”。

作为用户,我们知道它是来自真实样本还是伪造样本,并利用此知识使用反向传播(BP)训练损失,以使判别器更好地完成其工作。

但是众所周知,生成器也是神经网络,因此我们可以一直传播到随机样本噪声,从而帮助生成器生成更好的图像。这样,判别器和生成器都可以使用相同的损失函数。

诀窍在于在训练过程中平衡这两个网络。如果做得正确,判别器将学会区分即使是很小的异常,同时发生器将学会产生最真实的输出。

对GAN工作原理的技术理解:

生成器和判别器处于最小-最大博弈中。

  • 生成器试图最小化真实图像和伪图像之间的差距,以欺骗判别器;
  • 判别器试图最大化对真实图像的理解,以便区分假样本。

在上面的图像中,D(x)只是图像为“真实样本”的概率。

这里有另一个函数G(z)是生成器的输出,z是随机隐变量输入。生成“真实样本”的概率由判别器D(G(z))计算得。

对于判别器,我们希望:

  • 正确识别实样本图像,因此D(x)必须接近1;
  • 同时,同样正确识别假图像,因此D(G(Z))必须接近1。

对于生成器:

  • 生成器与D(x)的准确度无关,只有D(G(z))必须被标识为真实样本,因此其必须尽可能接近1。

GAN的目标函数

只有当两个网络之间取得很好的平衡,这种损失函数才是GAN体系结构的基础,我们才能获得高性能的生成器和判别器。

对于那些对详细了解GAN感兴趣的人:

  • 这是Ian Goodfellow的原始论文链接。

https://papers.nips.cc/paper/5423-generative-adversarial-nets.pdf

  • 这是“GAN-GAN系列(从开始到结束)”—— 由Jonathan Hui撰写可以深入了解GAN及其应用的最佳资料之一。

https://medium.com/@jonathan_hui/gan-gan-series-2d279f906e7b

第二部分:有趣部分

该模型背后的原理:

  • 训练完生成器后,其隐变量已充分了解了数据集的底层结构。
  • 在我们的示例中,我们将使用的模型已经了解了人脸的结构。该模型是由NVIDIA研究人员开发的StyleGAN。

https://en.wikipedia.org/wiki/StyleGAN

  • 我们的目标是利用这种结构并操纵它生成有趣的东西。

您应该知道,在像素域中处理图像非常繁琐且困难,因此,我们将在隐向量中处理图像。

然后,我们的第一个障碍来到了,怎么做?对于任何给定的图像,我们能否始终找到该图像对应的潜向量?正如下图所示:

流程:

对于我们的第一个障碍,以下解决方案最有效:

  • 通过生成器生成随机面孔;
  • 使用这些图像作为数据集,训练ResNet从源图像到其潜在的矢量代码(初步估计值);
  • 我们将使用经过预训练的ResNet,可以找到查询图像的潜代码(粗略估算);
  • 然后,以该图像为起点,计算与“原始图像”的L2损失,并相应地更新隐矢量代码(同时固定发生器本身的权重)。

这是第二部分的视频——更新估计的隐代码

在视频的后半部分,由于隐代码估计收敛到查询的真实图像的代码,因此更新很难观察到。

第三部分. 时间变形

好吧,也许不是这个。

计划:

  • 我们需要另一个数据集,然后再次生成随机面孔数据库
  • 我们应用预训练的属性分类器来获取诸如“性别”,“年龄”,“微笑”等属性。
  • 这样做是为了让我们可以将潜在代码映射到图像属性以找到相应的模式。
  • 我们需要了解,StyleGAN的潜在空间是一个高度复杂的512维空间。

StyleGAN的隐空间

在这里,每个点都代表一张图片,我们需要在该空间中找到一个图案。例如,在该空间中沿某个方向移动将如何更改生成的图像?

  • 可以观察到,在隐空间中,这些属性可以很容易地通过“线性超平面”来分离。
  • 沿该平面取法线将为我们提供改变该属性的方向。

最后,我想展示另一个示例,我更改了Emma Watson图像的“ age”属性。

这是我尝试过的GitHub存储库的链接,视频是其实际输出。

https://github.com/rudraina/Face-Morph

再次感谢Arxiv Insight涵盖了如此有趣的话题。

https://github.com/rudraina/Face-Morph

加油,大家可以自己尝试一下。

原文标题:

Face-Morphing using Generative Adversarial Network(GAN)

原文链接:

https://medium.com/swlh/face-morphing-using-generative-adversarial-network-gan-c751bba45095

编辑:王菁

校对:林亦霖

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:datapi),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据派THU 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
万字综述之生成对抗网络(GAN)
前阵子学习 GAN 的过程发现现在的 GAN 综述文章大都是 2016 年 Ian Goodfellow 或者自动化所王飞跃老师那篇。可是在深度学习,GAN 领域,其进展都是以月来计算的,感觉那两篇综述有些老了。
机器之心
2019/04/29
3.4K0
万字综述之生成对抗网络(GAN)
生成对抗网络(GAN)的应用与发展
近年来,生成对抗网络(GAN)得到广泛的研究,已经在一些特定应用上与其它机器学习算法相结合,针对有监督学习、半监督学习、无监督学习任务都有许多新型算法涌现出来。同时,由于 GAN 无需显式建模任何数据分布就可生成Real-like的样本,因此已经广泛应用到了诸如计算机视觉、自然语言处理等领域中。
灯塔大数据
2020/12/14
4K0
生成对抗网络(GAN)的应用与发展
深度学习500问——Chapter07:生成对抗网络(GAN)(2)
最常见的评价GAN的方法就是主观评价。主观评价需要花费大量人力物力,且存在以下问题:
JOYCE_Leo16
2024/04/16
3420
深度学习500问——Chapter07:生成对抗网络(GAN)(2)
一文看尽深度学习中的生成对抗网络 | CVHub带你看一看GANs架构发展的8年
生成对抗网络 (Generative Adversarial Networks, GANs) 在过去几年中被广泛地研究,其在图像生成、图像转换和超分辨率等领域取得了显著的进步。到目前为止,已经提出了大量基于GANs的相关工作和综述。本文基于柏林圣三一大学计算机科学与统计学院的王正蔚博士与字节跳动AI实验室联合发表的一篇综述[1]为基础,详细的解读GANs的来龙去脉,同时为大家介绍近期一些相关工作,中间也会穿插一些笔者的见解。最后,本文也将列出一些可探索的未来研究方向,希望能给予读者一些启发。
AIWalker
2021/07/05
1.6K0
一文看尽深度学习中的生成对抗网络 | CVHub带你看一看GANs架构发展的8年
深度学习中的生成对抗网络(GAN)原理与应用
文章链接:https://cloud.tencent.com/developer/article/2474045
远方2.0
2024/12/07
4940
深度学习中的生成对抗网络(GAN)原理与应用
白话生成对抗网络 GAN,50 行代码玩转 GAN 模型!【附源码】
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/red_stone1/article/details/81180331
红色石头
2019/05/25
6340
走进深度生成模型:变分自动编码器(VAE)和生成对抗网络(GAN)
【导读】近日,深度学习爱好者Prakash Pandey发布一篇博文介绍深度生成模型。我们知道,有监督学习在很多方面都达到了很好的效果,但是,由于有监督学习由于数据集太少等缺点,研究者逐渐偏向于探索无
WZEARW
2018/04/13
5.1K0
走进深度生成模型:变分自动编码器(VAE)和生成对抗网络(GAN)
【AI前沿】深度学习基础:生成对抗网络(GAN)
生成对抗网络(GAN)是一种深度学习模型,通过两个神经网络的对抗训练来生成新的、与训练数据类似的数据。GAN由一个生成器和一个判别器组成。生成器的目标是生成看似真实的样本,而判别器的目标是区分真实样本和生成样本。
屿小夏
2024/07/13
5.8K0
【AI前沿】深度学习基础:生成对抗网络(GAN)
深度学习研究总结:生成对抗网络(附 3 篇 arXiv 最火论文)
【新智元导读】Yann LeCun曾说:“对抗训练是切片面包发明以来最令人激动的事情”。这篇文章中,作者回顾基于 Ian Goodfellow 在2014 年的开创性工作的 3篇论文。这3篇论文都是过去一年来在arXiv.org上讨论十分热烈的论文,包括Twitter Cortex团队几周前发表的论文。 生成对抗网络概述 我在此前的一篇博文(9 Deep Learning Papers You Should Know About)中简要地提到过Ian Goodfellow有关生成式对抗网络的论文。这些网络的
新智元
2018/03/23
1.2K0
深度学习研究总结:生成对抗网络(附 3 篇 arXiv 最火论文)
探秘生成对抗网络(GAN):原理、应用与代码全知道
生成对抗网络(GAN)自提出以来在深度学习领域备受关注。其独特的对抗训练机制使其在图像生成、数据增强、风格迁移等众多领域展现强大能力。
羑悻的小杀马特.
2025/03/27
5010
综述 | 生成对抗网络(GAN)在图网络中的应用
导语: 生成对抗网络(Generative Adversarial Network,简称GAN)是非监督式学习的一种方法,通过让两个神经网络相互博弈的方式进行学习。自2014年GAN网络提出以来,其在Computer Vision(计算机视觉)领域获得了广泛的关注,但GAN网络在其他领域的应用相对较少。将GAN网络的思想应用在图网络(network)特征表达是近一年新兴的课题,本文综述GAN模型在图网络表征学习方面的研究。 背景介绍 网络表征学习(Graph Representation Learni
腾讯技术工程官方号
2019/07/21
2.4K0
综述 | 生成对抗网络(GAN)在图网络中的应用
历时 6 年发展, GAN 领域当下最热门的“弄潮儿”都有哪些?
生成式对抗网络(Generative Adversarial Networks, GAN)诞生于2014年,它的作者Ian Goodfellow 因它而声名大噪,被誉为“GAN 之父”。
AI科技评论
2020/06/17
7630
历时 6 年发展, GAN 领域当下最热门的“弄潮儿”都有哪些?
GAN生成图像综述
生成对抗网络(Generative adversarial network, GAN)[1]自2014年由Ian Goodfellow等人提出后,就越来越受到学术界和工业界的重视。而随着GAN在理论与模型上的高速发展,它在计算机视觉、自然语言处理、人机交互等领域有着越来越深入的应用,并不断向着其它领域继续延伸。其中,GAN在图像生成上取得了巨大的成功,这取决于GAN在博弈下不断提高建模能力,最终实现以假乱真的图像生成。
SIGAI学习与实践平台
2019/05/07
2.1K0
GAN生成图像综述
Tensorflow入门教程(二十四)——生成对抗网络(GAN)
目前在深度学习领域中,生成对抗网络是非常热门,能给我们带来不可思议的一个领域方向。今天我将分享一下如何用生成对抗网络来做生成图像(Mnist和卡通人物脸)。
医学处理分析专家
2020/06/29
1.5K0
Tensorflow入门教程(二十四)——生成对抗网络(GAN)
深度学习进阶篇[9]:对抗生成网络GANs综述、代表变体模型、训练策略、GAN在计算机视觉应用和常见数据集介绍,以及前沿问题解决
生成模型:p(x) 即观测x出现的概率。如果有标签则表示为: p(x|y) 指定标签y生成x的概率。
汀丶人工智能
2023/06/01
2.9K0
深度学习进阶篇[9]:对抗生成网络GANs综述、代表变体模型、训练策略、GAN在计算机视觉应用和常见数据集介绍,以及前沿问题解决
生成对抗网络(GAN)算法原理简述
2014年Ian Goodfellow在研究使用生成模型自动生成图片的过程中,发现传统神经网络方法效果并不理想,随后缘于一个偶然的灵感,发明了生成对抗网络(GAN),在其实验数据的图片生成上取得了非常理想的效果。从此,这种全新的技术作为训练生成模型的新框架,迅速风靡人工智能各个领域并取得不少突破。
灯塔大数据
2020/09/15
6.9K0
生成对抗网络(GAN)算法原理简述
通俗理解生成对抗网络(GANs)【下载PDF | 长文】
GAN网络是近两年深度学习领域的新秀,火的不行,本文旨在浅显理解传统GAN,分享学习心得。现有GAN网络大多数代码实现使用Python、torch等语言,这里,后面用matlab搭建一个简单的GAN网络,便于理解GAN原理。
智能算法
2018/07/30
9500
通俗理解生成对抗网络(GANs)【下载PDF | 长文】
图像生成:GAN
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
chaibubble
2019/09/18
9810
图像生成:GAN
生成对抗网络(GAN)
生成对抗网络(Generative Adversarial Network,简称GAN),主要结构包括一个生成器G(Generator)和一个判别器D(Discriminator)。
Lansonli
2021/10/09
9590
GAN生成对抗网络入门介绍
GAN(Generative Adversarial Network)生成对抗网络,由Ian Goodfellow在2014年提出。
Minerva
2020/06/16
2.6K0
GAN生成对抗网络入门介绍
推荐阅读
相关推荐
万字综述之生成对抗网络(GAN)
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档