只要一天就可以搭建测年龄网站How-Old.net?内容详解
近日微软推出了一个神奇的页面——how-old.net,通过传照片猜年龄迅速刷爆朋友圈。上线几个小时,已经测试了超21万张图片,由于推测存在不小误差,不少名人都被“玩坏了”,微软认为同年的林志颖和郭德纲年龄差了一个吴奇隆。那么当科技大佬们遇到“how-old” 会如何呢?
参考 fun with ml, stream analytics and powerbi,内有详细说明。
这个 demo 是我们 imml 部门(information management and machine learning)做的,主要组件是:
1. azure machine learning 平台以及其 gallery 中的 face api。microsoft azure machine learning gallery
2. 实时统计用的是 azure event hub 和 azure stream analytics,后者可以在前者的事件流上使用类 sql 的语句来执行一个 near realtime 的统计,比如每 10 秒内的访问次数和结果分布。
其实本 demo 主要目的是展现 asa 以及 powerbi 的实时统计展现能力,其中 asa 刚刚 ga(general availability),machine learning 和 face detection api 是之前就已经有的东西了,没想到大家都关注人脸识别去了。
程序员们,你们只需要 1 天时间就可以建立类似的网站。利用微软发布的 face detection api,只要几下 rest api 调用就可以得到结果了。这里有很详细的 how to 来教你如何调用这些 api:microsoft project oxford how-to detect faces from an image。而且,识别年龄和性别只是一个小功能,这套 api 还包括识别两张照片是不是同一个人,以及识别出某个具体的人等高级功能。
age estimation via face.
1. face detect,检测图片中人脸的位置,cascade adaboost 是最常用的方法。
2. face alignment,图像对准,确定一些关键的点的位置,比如眉毛,眼睛,鼻子,嘴角等,确定这些点之后可以确定人脸区域,倾斜的也可以。
3. feature extract,有了 face region 之后,开始提取 feature,形状 shape,纹理 texture,几何 geometry 信息是最关键的 feature 了。
4. train,有了大量 feature 数据以及对应的年龄数据,建立一个 model 开始训练。svm, linear regression 等等。
5. age estimation,新来一张图片,获取 feature,根据 4 获取的训练参数,估计年龄。
目前看到一些 paper 给出的 mae(mean absolute error)可以到 4-5 岁,但都是基于实验室数据,微软的也试了一下,variance 有点大。
微软本来是为了宣传云计算,估计年龄应该只是一个噱头。