二元函数图像生成器_谷歌程序员自制秃头生成器:一键get张东升同款发型,今天你脱发了吗?...

3e55bafa8dd84865a6d56b9d577a2f2d.png

文章来源于微信公众号:机器之心

作者 |Synced

原文链接:请点击

文章仅用于学习交流,如有侵权请联系删除

头可断,发型不能乱。

4556615842da879753602f603a9b5897.png

最近有一个男人的名字实在太火了,他叫「张东升」;比他本人更出名的,是他突然摘下假发后露出的发际线。

在看完《隐秘的角落》以后,你会不会突然脑洞大开,思考秃顶后的自己是什么样子呢?

结果就是这么巧,几天前,一位 UP 主隆重推出了自制的秃头生成器,不管你现在有多年轻,头发有多么浓密,这个生成器都能让你一眼望穿二十年后的自己。

8ed268cf5ae8971b70e8f458e2e5b482.png

众所周知,目前机器学习领域大部分的图片生成工具都是基于 GAN(生成对抗网络)来实现的。英伟达在 2018 年推出了 StyleGAN 之后,AI 生成的人脸已经极其逼真,很难用肉眼来分辨。随后,英伟达也开源了 StyleGAN 的代码,从此,越来越多的假脸就这样被创造了出来,并且发型、皮肤、五官等特征都可以随心变化。

不掏一分钱,也不用出门,在家编程就能实现自己秃顶的梦想。这可不就是程序员们常说的「代码改变世界」?

81c2a791ac489b5afa46e59835aa9d3e.png

直到看见了生成结果,这发际线后移的速度太过恐怖:

49fad2d8ea637f18fe77746c3b85c88b.png

望着秃头的自己,一瞬间,心就凉了:

3dca19fa98902ea7e8cb7ceeb35ad7d1.png

虽然也知道自己终将会有这么一天,但还是想逃避:

a5da0f2e5e233aa9ca9ece9ffa2a3f39.png

可点击观看视频

https://www.bilibili.com/video/BV1ot4y197MG?from=search&seid=10618162089187235689​www.bilibili.com

发量日渐稀疏的程序员看完之后表示:「技术不错,但有被冒犯到。」

a9a3dc2f0396f36fce7b6f114776fdc6.png

详细教程

即使这样你也要尝试?UP 主暂时没有分享出全部代码,但你也可以如法炮制,预知一下自己未来秃头后的颜值(误)。

MarsLUL 提到,该生成器的思路和代码大部分来源于一篇 Medium 教程《Hairstyle Transfer — Semantic Editing GAN Latent Code》。

教程地址;https://medium.com/swlh/hairstyle-transfer-semantic-editing-gan-latent-code-b3a6ccf91e82

2731568bccbb50ad99b6a89f776a96e7.png

这里借用了汤晓鸥、周博磊等人在论文《Interpreting the Latent Space of GANs for Semantic Face Editing》提出的「InterfaceGAN」。

第一步:潜码估计

首先,我们将输入图像发送到预训练的残差网络中,以便在 StyleGAN 中进行初始潜码估计。然后把这个估计值发送给生成器,这让我们对原始输入图像有一个初步的猜测。对此图像我们可以将预训练的图像分类器应用于特征提取。同时,我们将对输入图像也进行同样的特征提取。

然后在特征空间中,我们执行梯度下降,将特征向量的 L2 损失最小化并更新潜码估计(红色箭头部分)。

5ec4f0d89ae631bf3c8248c4d4355a82.png

现在,我们就可以在 StyleGAN 潜在空间内查找任何图像。

带边界语义编辑

在进行编辑之前,我们需要寻找可以在潜在空间中分离二元属性的特定边界。每个边界对应一个头发属性。比如:

  • 发型:波浪 / 直发、刘海;
  • 颜色:黑色 / 棕色 / 金色 / 灰色;
  • 发际线:后退发际线;
  • 面部毛发:胡子、鬓角。

但是如何找到边界?首先要做潜在空间分离,

最终使用 10 个分别于属性匹配的分类器来生成 2 万个潜码和 score pairs。我们在头发属性上训练独立线性 SVM,然后在验证集上进行评估,最终准确性可以达到 80%。

a2e17cc1694e284a3d477d7f8a6f5862.png

把它们放在一起,对于每个输入图像,我们先在 StyleGAN 潜在空间中找到其特定位置,然后将其按照特定方向移动,以进行语义编辑。

ea694a181b924a3410b2591c82f4a207.png

我们对每个属性使用线性超平面,将其法线向量作为输出面相对于目标属性连续变化的方向。例如在上图中,我们在 StyleGAN 空间中找到了年轻的莱昂纳多 · 迪卡普里奥的图像隐代码,绘制了与刘海超平面正交的方向,将隐代码的位置沿该方向移动。这样我们就可以创建不同刘海状态的,迪卡普里奥的图片了。

2e02445a719e06c1e120b9e4c0a01889.png

最后,说到条件边界(Conditional Boundary),它也在 InterfaceGAN 中被引入。通常,许多属性会相互耦合,比如发际线与人的年龄相关,长发更多出现在女性照片中,胡须仅出现在男性面部。但是把不同属性区分开非常重要。

作者介绍

MarsLUL 本科毕业于同济大学土木工程系,是一名头发很多的年轻人。

803c20a452c3175db80217f3717cbd2a.png

最后的最后,关于制作秃头生成器的初衷,UP 主也说了:「其实是为了告诉大家熬夜的危害,为了自己的头发,能早点睡就早点睡吧。」

编程不易,且编且珍惜。


320e9dc70bb21d3559f144fa222ea9e8.png

「华来知识」成立于2017年,孵化于清华大学智能技术与系统国家重点实验室,是一家技术领先的人工智能企业。公司专注于提供新一代人工智能人机交互解决方案,利用自身技术为企业打造由人工智能驱动的知识体系,借此改善人类生活。「华来知识」将持续为企业客户提供优质服务,助力企业在专业领域的人工智能应用,提供完善可靠高效的产品解决方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值