程序猿是如何算出你的“颜值”的?

某日偶遇同窗好友在用某款测颜值的APP 。 问他得了几分, 他微微一笑, “必须是9分男神 。 ”诧异间我又随手搜了张凤姐的照片一试, 竟然得了9.4分 。 这次轮到我大笑了 。 “哈哈, 男神女神果真般配啊 。 ”

后来笔者听闻好友玩的那款测颜值APP竟然也风靡一时 。 我一时好奇间就先拿两款APP做了测试 。 第一组测试对象是高圆圆和凤姐 。 结果嘛, 呵呵 。 凤姐以9.4的高分力压女神高圆圆呢!第二组测试对象是我家沙发 。 这些APP再次显示了自己的无能为力 。 同一个沙发得分基本上均匀的分布在1-10分之间 。 没错, 一张沙发的照片有时候都能得到9分以上 。 这种简单的颜值APP甚至都不太能进行面孔识别 。 还要它们来进行标准化打分, 实在是为难了 。

程序猿是如何算出你的“颜值”的?

文章插图

程序猿是如何算出你的“颜值”的?

文章插图

话说回来, 即使人工来打分, 大家也口味各异, 御姐萝莉各有所爱 。 一款APP又岂能判断美丑呢?所以用APP测了颜值的大家, 高分玩家勿要得意, 低分玩家也不用暗自神伤, 当成饭后娱乐笑笑便好了 。

虽说这些APP性能还不够强大, 但是实际上的确有科学家研究过人脸的美丽程度, 并试图以此为依据开发“颜值算法” 。 这里就简单介绍一下吧 。 那就是广为流传的“平均脸”效应了 。 科学家曾做过这样的实验, 找来志愿者看大量的人脸照片, 给照片打分 。 实验结果表明, 人们更喜欢对称的脸 。 另外研究表明, 将大量人脸取平均得到“标准脸”, 脸的指标和这种“标准脸”越接近, 越是让人觉得好看 。

韩国仁济大学整形外科教授李承哲在2010于国际美容整形外科学会(ISAPS)下属刊物《美容整形外科》中发表一篇论文, 发布了使用全球多名最漂亮女艺人的照片合成的五张平均脸 。 即使是跨人种, 我们也依然能发现美貌的一致性 。 其中中国人的面孔是不是很像某位明星?
程序猿是如何算出你的“颜值”的?

文章插图

大概就是“丑人多作怪, 美人一个胚”的感觉吧 。 而正是这种“美人一个胚”的现象让颜值算法有了可行性 。 至于为什么APP表现不太好, 请吐槽不靠谱的码农吧 。

从进化角度来看, “美人都似一个模子里出来的”也并不让人意外 。 进化是经过漫长自然选择的结果, 拥有平均性状的个体也更容易幸存 。
最后再Geek地介绍一下“颜值算法” 。

刚才我们说了, 长得对称又标准, 是基因正常、健康状态良好的体现和保证, 从进化的角度来看是很合理的 。 因此, 如果得到了这些人脸的数据, 我们可以通过计算人脸的对称性和与“标准脸”的差距, 定性计算“颜值” 。
程序猿是如何算出你的“颜值”的?

文章插图

接下来的问题是, 怎么用软件得到这些测量指标呢?或者说, 怎么让软件“认出”人的脸呢?其实, 人脸检测是计算机科学领域一个重要方向, 已经有了诸多发展 。 在人脸检测算法中, 按发展顺序有基于知识的模板匹配, 纹理特征, 颜色特征, 基于统计的PCA特征脸, 支持向量机, AdaBoost方法等等 。

想想看我们自己是怎么识别出人脸的呢?很多时候我们看到一些石头或云, 也会觉得像人的脸, 不论总体上有多么大差距, 那往往是因为恰好有什么东西构成了眼睛、鼻子和嘴 。 再想一想我们怎么堆雪人的?最后是不是往往要弄个眼睛鼻子嘴什么的才有“人”的感觉?没错了!其实眼睛、鼻子和嘴对我们识别人脸有非常重要的作用 。 我们对人的脸有一些先验知识, 知道眼睛鼻子嘴等等的形状、特征, 知道它们之间相互位置, 和这些先验知识符合程度高的, 我们的大脑就会判断为是人脸 。

推荐阅读