资源技术动态基于生成对抗网络(GAN)的“换脸”工程

基于生成对抗网络(GAN)的“换脸”工程

2020-03-06 | |  120 |   0

原标题: 基于生成对抗网络(GAN)的“换脸”工程

来源:AI研习社    链接:https://www.yanxishe.com/TextTranslation/2241


1583476313958622.png

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

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

    我遇到了一个精巧的YoutTube频道,名为Arxiv Insights(简称AI,是巧合吗?我想不是),在这个频道上,我发现其中一个视频非常有趣,它学习如何通过生成对抗网络来变脸 ! 这个故事是对我从上述视频中学到的知识的一个总结,我希望到此结束时您对这个想法有一个很好的了解,并且可能想尝试一下。

1583476464274858.png

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

()

第1部分, GAN:是什么?

GAN要做的任务很简单,就是从头开始生成数据,而这种数据甚至可以欺骗人类。
该模型由Ian Goodfellow及其同事于2014年发明,由两个神经网络组成(生成器和鉴别器),它们相互竞争,从而产生了一些真实的内容。
两个网络的目的可以概括为尽可能多地学习输入数据库的基础结构,并使用该知识来创建相似的内容,该内容适合所有参数以适合同一类别。
如上所示,输入的是人脸,它准确地了解了使人脸是的人的本质。根据这种理解,它会生成随机的人脸,否则这些人脸也可能是真实的。

让我们详细了解一下:

03.png
GAN的基本架构

该图像是GAN的过于简化的体系结构,但它捕获了该概念的完整本质。

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

一,生成器:

生成器获取随机噪声矢量作为输入

通过生成器后,该生成器执行多次转置卷积以对噪声进行上采样以生成图像。

二。鉴别器:

它从实词样本(真实样本)或生成的图像(假样本)中获取随机输入。

顾名思义,无论输入是来自“真实样本”还是“假样本”,它只有一项工作。

作为用户,我们知道它是来自真实样本还是虚假样本,并且利用此知识,我们可以反向传播训练损失,以使鉴别器更好地完成其工作。

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

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

对GAN工作的技术了解:

生成器和鉴别器处于极小化极大算法的游戏中。

生成器试图最小化真实图像与伪图像之间的差距,以欺骗鉴别器。

鉴别器试图最大化对真实图像的理解,以便区分假样本。

1583476512602559.png

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


1583476545346579.png


这里有另一个函数G(z),除了生成器的输出z是随机潜在输入之外,什么也没有。生成图像的概率来自“真实样本”,由鉴别器计算为D(G(z))

对于鉴别器,我们想要:

正确识别真实样本图像,因此D(x)必须接近1

同时,要正确识别假样本图像,因此D(G(z))必须接近1

对于生成器:

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

1583476595629019.png
GAN的目标功能

只有在两个网络之间取得良好的平衡,这种损失函数才是GAN架构的基础,我们才能获得高性能的生成器和鉴别器。

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

这是Ian Goodfellow的原始论文链接

这里是“ GAN-GAN系列(从开始到结束)”的链接,这是深入了解GAN及其应用的最佳资料之一和应用者Jonathan Hui

第二部分,有趣的部分

该模型背后的原理:

训练Generatie模型后,其潜在空间已充分了解了数据集的底层结构

在我们的示例中,我们将使用的模型已经了解了人脸的结构。 该模型是由NVIDIA研究人员开发的StyleGAN。

我们的目标是利用这种结构并为操纵它找点乐趣。

你应该知道,在像素域中处理图像非常繁琐且困难,因此,我们将在潜在空间中处理图像。

然后,我们的第一个障碍来到了,是什么? 对于任何给定的图像,我们能否找到将始终在图像中的潜矢量? 那是:

流程:

<spanmicrosoft yahei',="" 微软雅黑,="" 宋体,="" 'malgun="" gothic',="" meiryo,="" sans-serif;="" font-size:="" 14px;="" font-style:="" normal;="" font-variant:="" font-weight:="" letter-spacing:="" line-height:="" 18px;="" orphans:="" auto;="" text-align:="" start;="" text-indent:="" 0px;="" text-transform:="" none;="" white-space:="" widows:="" word-spacing:="" -webkit-text-stroke-width:="" background-color:="" rgb(255,="" 255,="" 255);="" display:="" inline="" !important;="" float:="" none;"="">对于我们的第一个障碍,下面的解决方案效果最好:  

  • 通过生成器生成随机面孔

  • 使用这些图像作为数据集,训练ResNet从源图像到其潜在的矢量(粗略的初始估计)

  • 我们将使用经过预训练的ResNet,可以找到查询图像的隐形分类码(粗略估算)

  • 然后,以该图像为起点,计算相对于“原始图像”的L2损失,并相应地更新潜矢量代码(同时固定发生器本身的权重)

07.png

这是第二部分的视频-更新 隐形分类码  估算:

  

在视频的后半部分,由于 隐形分类码  估算值已收敛到查询图像的码,因此更改几乎看不到。

第3部分。变身时间到了!

  
好吧,也许不是这个。

设定:


我们需要另一个数据集,然后再次生成随机面孔数据库

我们应用预训练的属性分类器来获取诸如“性别”,“年龄”,“微笑”等属性。

这样做是为了使我们可以将潜在代码映射到图像属性以找到模式。

我们需要了解,StyleGAN的潜在空间是一个高度复杂的512维空间。

1583476674575229.png
GAN的潜在空间

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

1583476694445542.png
可以观察到,在此潜在空间中,这些属性可以很容易地通过“线性超平面”来分离。

沿该平面取法线将为我们提供改变该属性的方向。


1583476716831613.png

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

  

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

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

继续,自己动手尝试一下。

发起:唐里 校对:唐里 审核:邓普斯•杰弗

参与翻译(2人):

lakeZhang、卡萝•亚当斯

英文原文:Face-Morphing using Generative Adversarial Network(GAN)

THE END

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:如何用 tf.estimators 进行文本分类?

下一篇:南京大学提出基于关键帧移动点法实现行为动作流管检测

用户评价
全部评价

热门资源

  • 应用笔画宽度变换...

    应用背景:是盲人辅助系统,城市环境中的机器导航...

  • GAN之根据文本描述...

    一些比较好玩的任务也就应运而生,比如图像修复、...

  • 端到端语音识别时...

    从上世纪 50 年代诞生到 2012 年引入 DNN 后识别效...

  • 人体姿态估计的过...

    人体姿态估计是计算机视觉中一个很基础的问题。从...

  • 谷歌发布TyDi QA语...

    为了鼓励对多语言问答技术的研究,谷歌发布了 TyDi...