前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >生成模型学习的特征属性如何操作修改等介绍

生成模型学习的特征属性如何操作修改等介绍

作者头像
CreateAMind
发布2018-07-24 15:02:16
1K0
发布2018-07-24 15:02:16
举报
文章被收录于专栏:CreateAMind

https://devblogs.nvidia.com/parallelforall/photo-editing-generative-adversarial-networks-2/

为了修改属性,首先我需要找到一个表示每个属性的z向量。首先我用E来计算数据集中每个图像的z向量。然后我计算属性向量如下:例如,为了找到“年轻”的属性向量,我从所有图像的平均z向量中减去没有“年轻”属性的所有图像的平均z向量。最后我得到了一个40×100矩阵

的特征z向量,一个在CelebA中的40个属性中的每一个。

使用生成对抗网络的照片编辑(第2部分) 分享: 发表于2017年4月24日由Greg Heinrich发表2评论 标记深度学习,DIGITS,GAN,TensorFlow 在本系列的第1部分中,我介绍了生成对抗网络(GAN),并展示了如何使用GAN生成手写数字图像。在这篇文章中,我会做一些更令人兴奋的事情:使用生成对抗网络来生成名人脸的图像。 我将使用CelebA [1],这是一个20万对齐和裁剪名人的178×218像素RGB图像的数据集。每个图像都标有最多40个不同的属性,这些属性表示各种功能,如头发颜色,性别,年轻人或老年人,微笑或不喜欢,尖锐的鼻子等。请参见图1,预览数据集中的前10个样本, 1为一些示例属性。

图1:来自CelebA的前10个样品。

图像

属性

弯曲的眉毛,有吸引力,棕色的头发,沉重的化妆,高ek骨,嘴巴稍微开放,没有胡须,尖尖的鼻子,微笑,直发,戴耳环,戴口红,年轻。

图像

属性

5点钟的阴影,有吸引力,眼睛下的袋子,大嘴唇,大鼻子,黑发,浓密的眉毛,男性,没有胡须,尖尖的鼻子,直发,年轻。

表1:图1中两个图像的示例属性。

生成的对抗网络在除了小图像(这是开放研究的主题)之外是非常难以训练的,所以当在DIGITS中创建数据集时,我要求将图像的108像素中心作物调整为64×64像素,参见图2我没有将数据分解为训练和验证集,因为我对测量样本间性能不感兴趣。

图2:图1的图像裁剪并调整为64×64像素。

我使用的模型是直接从DCGAN [2]:鉴别器(D)类似于典型的图像分类网络,具有用于特征提取的四个卷积层和用于分类的一个完全连接的层。同样地,发电机(G)具有对称的拓扑结构(具有转置卷积而不是前向卷积)和相同数量的层和滤波器。注意,这个模型是一个无条件的GAN,并且在训练期间不使用图像属性,但是我们稍后会使用它们。有关网络拓扑的说明,请参见图3。

图3:Top:发电机(G)网络。底部:鉴别器(D)网络。在我的NVIDIA Titan X板上,花了8个小时来对DIGITS中的200k图像数据集进行了60个历元。然后我使用与第1部分所述相同的方法训练编码器E:E与D相同,除了最后一层,其具有100个输出神经元以匹配潜在矢量z的长度。 用生成对话网络进行图像重建 我使用我经过训练的模型来生成数据集中前25个图像的重建。图4显示了原始和重建的图像。让我们回顾一下在那里发生的事情:我将每个图像都输入到E中,以找到相应的z向量。然后我将z向量提供给G,以获得图像的重建。你可以看到,重建是相当不错的。有轻微的失败情况,但在大多数情况下,头发,皮肤和背景颜色,姿势和口腔形状都被正确地重建。您可以清楚地看到对女性的偏见,可能是因为它们代表了数据集的大部分。类似地,它看起来像重建最适合直视相机的面孔。

图4:每对图像在经过生成对抗网络E和G后,显示数据集中的图像及其重建。使用了来自数据集的25个图像。图像不是樱桃选择。 面部属性 CelebA中的图像具有40个二进制属性。我认为能够拍摄脸部的图像并进行修改,使其看起来更年轻或者改变头发的颜色是很好的。记住第1部分,GAN的一个承诺是你可以在潜在空间中执行反映在特征空间中的操作。 为了修改属性,首先我需要找到一个表示每个属性的z向量。首先我用E来计算数据集中每个图像的z向量。然后我计算属性向量如下:例如,为了找到“年轻”的属性向量,我从所有图像的平均z向量中减去没有“年轻”属性的所有图像的平均z向量。我得到了一个特征z向量的40×100矩阵Z_ {attr},其中一个用于CelebA中的40个属性。 下一步是创建一个DIGITS插件,让我选择要添加或删除的属性。要编辑脸部,我需要提供Z_ {attr},我想编辑的图像的z向量(z来自在输入图像上应用E)和一个加/减色属性表:每行代表图像生成。列是我要添加或删除的属性。请参见图5:第一行为空,因此第一个图像是输入图像。在第二排,我扣除了“金发”矢量,并添加了“黑发”矢量,把这个金发女郎变成一个黑发的女人。在第三行,我添加了“秃头”矢量,使女人看起来像一个老人。在第四排我从她的脸上删除了微笑。最后在最后一行我让女人看起来更年轻(“口红”效果在生成的图像上并不明显)。

图5:DIGITS可视化的照片编辑。左:属性选择表单。右图:生成的图像。每个框中的数字指定要添加的属性(正数)或删除(负数)的强度。 NVIDIA Titan X GPU每秒可以轻松生成数千张这些图像。这使得可以交互地启动属性向量并实时查看它们如何影响数百个面部图像,如下面的视频所示。

脸部属性的另一个有趣的用途是让模型告诉我们脸部的主要属性是什么。由于CelebA中的图像已经被标记,所以在数据集上尝试这一点是不公平的,但是我认为在现实世界中尝试它是有趣的。我再次使用E找到我的输入图像的z向量。然后,我计算出Z_ {attr}中z和每个归一化属性向量之间的内积,得到每个属性的得分:score_ {i} = z \ frac {Z ^ {i} _ {attr}} {| Z ^ {I} _ {ATTR} |}。然后我可以提取每个图像的前五个属性。图6显示了深度学习社区的一些着名成员在这个测试中的价值。还有一些轻微的失败案例,但预测整体看起来相当稳固。

图6:对于杰出人物肖像计算的前5个属性的DIGITS可视化。

类比 曾经听说过“王 - 男人+女人=女王”的比喻?我的GAN-Auto-Encoder框架允许我对图像执行相同的类比,在潜在空间中使用简单的算术。看看图7,看看你在实践中如何工作令人惊讶(从[3]中借来的方法)。表2引导您完成整个过程。花一些时间思考这个比喻的美丽。

图7:类比网格:左上角(TL),右上(TR)和左下(BL)图像作为输入。右下(BR)图像是计算结果:BR = BL + TR-TL。其他图像被内插。

男性 金发头发 深色头发 蓝眼睛 黑眼睛 微笑 向左看 眼尖的鼻子

右上角 + + + + +左下 + + +减去左上角 - - - 右下角 + + + + +

表2:从左上图像和左下图像的总和中减去左上图像。注意加法和减法特征如何最终反映在最后一行。

可视化潜在空间 潜在空间可视化的一种常见方法是使用主成分分析或t-SNE将高维潜在表示投影到2D或3D空间上。 Tensorboard内置了对此的支持,可以很容易地在一个球体上显示我们的图像的小缩略图,如下图所示。请注意图像是如何根据主要特征(如皮肤或头发的颜色)聚集的。记住,我训练了无条件的GAN,并且图像属性从未被给予网络。然而,这个模型学到了一个关于什么使图像相似的概念,以及如何使它们在潜在的空间中接近。这应该说服你无限制学习的力量:该模型能够学习数据集的区分特征,而不会被告知它们是什么。许多应用可能源自于潜在空间中相似样本靠近在一起的观念。这对于人脸识别,签名验证或指纹匹配可能是有用的。这也可能是监督学习流程中的一个有用的阶段:不是单独注释每个单独的图像,您可以注释潜在空间的整个区域。这样,您可以一次选择数百张图像来设置属性(戴眼镜的人等)。 OpenAI在[4]中显示,通过少量标签样本,可以通过无监督的学习来利用GAN获得的知识,并且匹配需要更多标签样本的完全监督模型的性能。 退化发电机

最后一件事我想展示一个实验的结果,我试图检查梯度是否在我的模型中流畅。经过几个时期的训练后,我停止了更新D.我想验证G的损失会立即下降。事实上,它确实和除了我注意到,G已经退化成一个总是会产生同样的面孔的状态:G已经学会了最大化D的一种模式。尽管结果的图像(图8)有点怪异,它们似乎捕获数据集的本质:面部皮肤苍白,嘴唇突出,凶猛的眼睛,斑马毛和模糊的背景!想象一下,退化G会在印象派艺术家的数据集上产生什么样的图像?

图8:由退化G产生的图像

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

本文分享自 CreateAMind 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档