B 站 Up 主自制秃头生成器,圆你秃头梦想可好?

2020 年 7 月 7 日 CSDN



要说最近哪部剧最红,我说是《隐秘的角落》没人有意见吧?
 
看了这部片子,全国观众除了被男主张东升提醒爬山有风险之外,片中的另一个场景也颇让人印象深刻,容易让人产生共鸣,那就是张东升看到自己二十年后的样子。
这华丽丽的地中海造型,感觉秦昊老师帅气的脸吼起来也有点吃力了......作为一名脑力劳动者,张东升年纪轻轻就秃了头。生活中,普通人在残酷的现实中,由于压力、焦虑问题,秃头也绝对可以在困扰现当代中青年人的难题中名列前茅,尤其是对于熬夜是家常便饭的程序员小哥哥、小姐姐们。
 
这个难题是如此容易引发共鸣,以至于 B 站 著名 Up 主 MarsLUL 也注意到了这点,并自制了一个秃头生成器,想要一睹二十年后,或许用不了二十年后自己的发型稍有变化的样子,大可以动手试试。
 
首先,来看一下 MarsLUL 制作的秃头生成器效果:
惊!除了发型变了,怎么还有点面目可憎的感觉呢?
 
效果还是挺神奇的。话不多说,还是那句话,我们更关心效果实现背后的技术原理。
 
MarsLUL 提到,该生成器的思路和代码大部分来源于一篇 Medium 教程《Hairstyle Transfer — Semantic Editing GAN Latent Code》( https://medium.com/swlh/hairstyle-transfer-semantic-editing-gan-latent-code-b3a6ccf91e82 )。
 
那我们就先来看看,这篇文里提到的 Hairstyle Transfer 是怎么实现的。简单来说,这篇文章里,作者探索了使用隐式空间(latent space),改变输入图像发型的方法。
      
当然,这个项目也是基于 GAN。大家都知道,GAN 的基本原理是通过对抗训练学习从潜在分布到真实数据的非线性映射。
 
但问题是,通常隐式空间和语义属性之间的关系是未知的。例如,隐式代码如何确定生成的发型,比如说刘海、颜色等。另外,很难判断这些属性之间彼此是否有关联。
 
在这篇文章中,作者提出的关键方法是探索如何在经过训练的 GAN 模型(例如 PG GAN 和StyleGAN)的隐式空间中编码单个或多个发型的语义。
 
他们借用了 InterFaceGAN 论文中提出的概念:对于任何二进制语义,在潜在空间中都存在一个超平面作为分隔边界。基于这个想法,他们设法通过线性变换来解码属性表示。
 
文中,作者对每个属性使用线性超平面,将其法线向量作为输出面相对于目标属性连续变化的方向。在 StyleGAN 空间中,他们找到了莱昂纳多 · 迪卡普里奥年轻时的图像隐代码,绘制了与刘海超平面正交的方向,将隐代码的位置沿该方向移动,创建男神不同刘海状态图片。
 
               
停!Stop!我不看!只要我暂停按得快,男神就永远是我心中的男神......
 
类似地,MarsLUL 在视频里中也简单介绍了秃头生成器的制作方法。
 
他说到,市面上大部分生成器都是由GAN 的神经网络来实现的,简单来说,拿图片生成来做例子,你可以理解成它有两个互相对抗的部分,一部分生成图片,一部分分辨图片的真假,不断训练,一直训练到辨别不出生成的图片是真是假,目标也就实现了。
 
StyleGAN 就是一个用来生成图片的 GAN 的实现,输入一个隐式向量,它可以凭空生成一张人物照片。
 
具体怎么实现的呢?
 
第一步,就是想办法找到可以生成输入照片的隐式向量,这可以通过训练一个残差网络来实现。直接使用 StyleGAN-Encoder 将照片转化成一个隐式向量,从而生成一个 StyleGAN 版本。这样生成的图像与源图像会有细微的差别,但是八九不离十。
 
第二步,招待控制秃顶这个变量的方法,这里用到的是训练一个 SVM 二分器,以喂给  StyleGAN 的隐式向量为输入,以这个隐式向量生成的图片是否秃顶为输出,训练模型。找到这个二分器之后,只需要根据对应方向现行微调隐式向量,就可以控制生成图片的秃顶程度了。使用名人图片数据集 CelebA 作为训练数据,它已经很友好地将秃顶名人做好分类。经过 5 小时左右的训练,模型终于训练好了!
 
最后一步,拍一张帅帅的照片,生成对应的隐式向量,按对应方向移动就可以生成图像了。
 
向生发的方向移动,生成的视频中头发开始旺盛生长:
 
             
 
话说生发后的秦昊老师,貌似真有那么一丢丢像张杰?!
 
向脱发的方向移动,生成视频中头发开始逐渐稀疏......

             
 
秃了头后的秦昊老师长这样......
 
其实这也提醒了大家熬夜的危害,为了自己的头发,没事别熬夜玩手机......
 
最后,指路 B 站视频,看 UP 主亲自示范:
https://www.bilibili.com/video/BV1ot4y197MG?from=search&seid=2383888781525915306

更多精彩推荐

☞干货!如何用 Python+KNN 算法实现城市空气质量分析与预测?

放弃美帝 80 万年薪,回国找工作时竟遇到这个难题...

马斯克身家超马云,网友:看完他的履历后一点也不惊讶

阿里巴巴副总裁司罗:达摩院如何搭建NLP技术体系?

数说DApp:DeFi和DEX迅猛增长或令以太坊超越比特币

数据库怎么选择?终于有人讲明白了

点分享
点点赞
点在看
登录查看更多
0

相关内容

生成器是一次生成一个值的特殊类型函数。可以将其视为可恢复函数。调用该函数将返回一个可用于生成连续 x 值的生成【Generator】,简单的说就是在函数的执行过程中,yield语句会把你需要的值返回给调用生成器的地方,然后退出函数,下一次调用生成器函数的时候又从上次中断的地方开始执行,而生成器内的所有变量参数都会被保存下来供下一次使用。
最新《因果推断导论: 从机器学习视角》新书稿,132页pdf
专知会员服务
274+阅读 · 2020年8月25日
【知识图谱@ACL2020】Knowledge Graphs in Natural Language Processing
专知会员服务
65+阅读 · 2020年7月12日
必读的10篇 CVPR 2019【生成对抗网络】相关论文和代码
专知会员服务
32+阅读 · 2020年1月10日
GANs最新综述论文: 生成式对抗网络及其变种如何有用
专知会员服务
70+阅读 · 2019年10月19日
生成式对抗网络GAN异常检测
专知会员服务
116+阅读 · 2019年10月13日
GAN新书《生成式深度学习》,Generative Deep Learning,379页pdf
专知会员服务
202+阅读 · 2019年9月30日
能生成逼真图像的不只有 GAN
机器学习算法与Python学习
8+阅读 · 2019年6月6日
降维打击:这款GAN可以让真人「二次元化」
机器之心
6+阅读 · 2018年12月11日
DeOldify:用GAN为黑白照片重新着色
论智
33+阅读 · 2018年11月2日
一文详解生成对抗网络(GAN)的原理,通俗易懂
人工智能头条
6+阅读 · 2018年5月6日
StarGAN-多领域图像翻译
CreateAMind
4+阅读 · 2017年12月26日
【原理】学懂GAN的数学原理,让它不再神秘
GAN生成式对抗网络
3+阅读 · 2017年11月26日
GAN的数学原理
算法与数学之美
14+阅读 · 2017年9月2日
【原理】GAN的数学原理
GAN生成式对抗网络
8+阅读 · 2017年8月30日
GAN | GAN介绍(1)
KingsGarden
78+阅读 · 2017年3月13日
Revisiting CycleGAN for semi-supervised segmentation
Arxiv
3+阅读 · 2019年8月30日
Arxiv
5+阅读 · 2018年5月21日
Arxiv
10+阅读 · 2018年2月17日
Arxiv
7+阅读 · 2018年1月21日
VIP会员
相关资讯
能生成逼真图像的不只有 GAN
机器学习算法与Python学习
8+阅读 · 2019年6月6日
降维打击:这款GAN可以让真人「二次元化」
机器之心
6+阅读 · 2018年12月11日
DeOldify:用GAN为黑白照片重新着色
论智
33+阅读 · 2018年11月2日
一文详解生成对抗网络(GAN)的原理,通俗易懂
人工智能头条
6+阅读 · 2018年5月6日
StarGAN-多领域图像翻译
CreateAMind
4+阅读 · 2017年12月26日
【原理】学懂GAN的数学原理,让它不再神秘
GAN生成式对抗网络
3+阅读 · 2017年11月26日
GAN的数学原理
算法与数学之美
14+阅读 · 2017年9月2日
【原理】GAN的数学原理
GAN生成式对抗网络
8+阅读 · 2017年8月30日
GAN | GAN介绍(1)
KingsGarden
78+阅读 · 2017年3月13日
Top
微信扫码咨询专知VIP会员