中年|B站Up主自制秃头生成器,一键get张东升同款发型


最近《隐秘的角落》可谓火爆全网 , 剧中秦昊扮演的张东升一角更是深入人心 。 如果盘点张东升的名场面 , 肯定少不了这一幕:“想看看二十年后的自己吗?
中年|B站Up主自制秃头生成器,一键get张东升同款发型
本文插图

两边蜘蛛网 , 中间溜冰场 , 作为一名数学老师 , 张东升年级轻轻已经秃成这样 。 虽然剧中是化妆特效 , 不过脱发已经成为年轻人的普遍焦虑 , 尤其是从事科研、程序员等高压行业的年轻人 , 好像秃顶已成为注定的宿命 , 有多少人曾想象过自己二十年后会秃成什么样?
在看完《隐秘的角落》后 , B站Up主MarsLUL决定用代码来实现自己的“梦想” 。 MarsLUL是谷歌的一名在职程序员 , 曾在加利福尼亚大学学习计算机相关专业 。
在最近上传的一则视频中 , 他利用StyleGAN自制了一款秃顶生成器 , 可以从发量浓密的现在分分钟看到二十年后发量稀疏的自己 。 先来看一下效果如何?
先来还原东升哥秃顶的全过程 , 发际线后移的速度着实让人觉得恐怖 。
中年|B站Up主自制秃头生成器,一键get张东升同款发型
本文插图

从生成效果来看 , 除了面部有些区别外 , 最终发型还是非常一致的 。
再来看MarsLUL的 , 这画面简直无法接受 。
【中年|B站Up主自制秃头生成器,一键get张东升同款发型】中年|B站Up主自制秃头生成器,一键get张东升同款发型
本文插图


网友们的评论更是扎心:仿佛看到了我的未来 。
如果你也有脱发焦虑 , 想看看二十年后的自己 , 不妨来如法炮制一下 。 接下来我们来详细说说秃顶生成器是如何实现的 。
基于StyleGAN的生成器原理
B站视频中 , MarsLUL没有详细呈现代码的实现过程 , 但所用到的核心技术和详细参考资料均已给出 。 这款秃顶生成器所用到的技术 , 如市面上普遍的图片生成器一样 , 都是英伟达开源的StyleGAN , StyleGAN在图像合成的质量和分辨率方面具备出色的性能 , 通常我们看到的逼真的人脸交换都是基于它实现的 。
基于StyleGAN技术 , 《Hairstyle Transfer-Semantic Editing GAN Latent Code》 , 这篇详细讲述了如何在保持人脸不变的情况下 , 改变发型的全过程 。
中年|B站Up主自制秃头生成器,一键get张东升同款发型
本文插图

GAN的基本原理是通过对抗式训练学习从潜在空间分布到真实数据的非线性映射 。 通常情况下 , 潜在空间和语义属性之间的关系是未知的 。 比如潜在代码如何确定生成的发型属性?又如何区别目标属性与非目标属性?
因此 , 潜码估计和语义编辑是解决潜在空间与语义属性的未知关系的关键 。 在这里 , 研究人员对两个模块的原理进行了详细说明 。
潜在代码估计:

首先 , 将输入图像发送至预训练的残差网络进行潜在代码估计 , 然后将生成的估计值发送给生成器 。 此时已经完成了对原始输入图像的初步猜想 。 对于此图像 , 我们可以将预训练图像分类器应用于特征提取 , 同时 , 对输入图像进行相同的特征提取 。
接下来 , 在特征空间中执行梯度下降 , 将特征向量L2损失最小化并更新潜码估计 。 相比于在像素损失上采用梯度下降的方法 , 这种在语义特征向量执行梯度下降更具有优势 , 因为直接在像素空间中使用L2优化会陷入不良的局部最优 。
生成潜在代码估计
带边界的语义编辑
所谓语义编辑是指在保留所有其他信息的同时编辑具有目标属性的图像 , 在这里我们的目标属性就是头发 。
在编辑之前 , 我们需要在潜在空间中找到能够分隔二进制属性的特定边界 , 其中每个边界将对应一个头发属性 。 如发型、颜色、发际线高低、面部毛发等;


推荐阅读