原创 Synced 机器之心
机器之心报道
参与:蛋酱、泽南
头可断,发型不能乱。
在看完《隐秘的角落》以后,你会不会突然脑洞大开,思考秃顶后的自己是什么样子呢?
结果就是这么巧,几天前,一位 UP 主隆重推出了自制的秃头生成器,不管你现在有多年轻,头发有多么浓密,这个生成器都能让你一眼望穿二十年后的自己。
不掏一分钱,也不用出门,在家编程就能实现自己秃顶的梦想。这可不就是程序员们常说的「代码改变世界」?
即使这样你也要尝试?UP 主暂时没有分享出全部代码,但你也可以如法炮制,预知一下自己未来秃头后的颜值(误)。
MarsLUL 提到,该生成器的思路和代码大部分来源于一篇 Medium 教程《Hairstyle Transfer — Semantic Editing GAN Latent Code》。
教程地址;https://medium.com/swlh/hairstyle-transfer-semantic-editing-gan-latent-code-b3a6ccf91e82
第一步:潜码估计
首先,我们将输入图像发送到预训练的残差网络中,以便在 StyleGAN 中进行初始潜码估计。然后把这个估计值发送给生成器,这让我们对原始输入图像有一个初步的猜测。对此图像我们可以将预训练的图像分类器应用于特征提取。同时,我们将对输入图像也进行同样的特征提取。
然后在特征空间中,我们执行梯度下降,将特征向量的 L2 损失最小化并更新潜码估计(红色箭头部分)。
带边界语义编辑
在进行编辑之前,我们需要寻找可以在潜在空间中分离二元属性的特定边界。每个边界对应一个头发属性。比如:
发型:波浪 / 直发、刘海;
颜色:黑色 / 棕色 / 金色 / 灰色;
发际线:后退发际线;
面部毛发:胡子、鬓角。
但是如何找到边界?首先要做潜在空间分离,
最终使用 10 个分别于属性匹配的分类器来生成 2 万个潜码和 score pairs。我们在头发属性上训练独立线性 SVM,然后在验证集上进行评估,最终准确性可以达到 80%。
作者介绍
MarsLUL 本科毕业于同济大学土木工程系,是一名头发很多的年轻人。
在以往的视频作品中,他也分享了自己转专业和求职的诸多经验。
首先就是,转行计算机一定要以兴趣为先,不能单纯因为「待遇好」、「容易找工作」等因素,就扎进一个自己并不喜欢的专业,如此是得不偿失的。
他会将一门学科分为三条路线进行学习:基础知识、专业知识和兴趣知识。
基础知识相当于建筑的地基,也是另外两条路线的先决条件,比如计算机专业的基础知识就是算法、数据结构、操作系统等等。这些知识都可以在 Coursera 等课程网站上获得。
然后是专业知识,在没有从业经验的时候,你可以尝试参加一些培训项目(比如 Udemy),来了解在真正的工作岗位上,一个程序员到底需要掌握什么技能。
另外一方面,可以通过读书和专业知识的论坛,进行兴趣知识的补充。比如 Hacker News,简直是程序员摄取相关知识的福地。书籍方面,MarsLUL 推荐了《免费的编程中文书籍索引》这个 GitHub 项目,分门别类地整理了多本书籍资源,学习者可以根据自己的兴趣来挑选。
项目地址:https://github.com/justjavac/free-programming-books-zh_CN
在另一期视频中,MarsLUL 也细致地分享了作为一名转专业人员,如何闯过简历这一关。
最后的最后,关于制作秃头生成器的初衷,UP 主也说了:「其实是为了告诉大家熬夜的危害,为了自己的头发,能早点睡就早点睡吧。」
编程不易,且编且珍惜。
原标题:《谷歌程序员自制秃头生成器:一键get张东升同款发型,今天你脱发了吗?》