看脸测年龄网站火了,技术很简单,微软很开心

2015年5月6日 | By News | Filed in: News.

Source: http://daily.zhihu.com/story/4711761

微软推出的年龄测试网站 How-Old.net 具体是怎样实现识别年龄的?

Tim Chen,Windows Azure产品组

参考 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 秒内的访问次数和结果分布。

3. 最后结果由 http://powerbi.com 来展现。

其实本 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 还包括识别两张照片是不是同一个人,以及识别出某个具体的人等高级功能。

清风,多看Paper多写代码

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 岁,但都是基于实验室数据,微软的http://How-Old.net 也试了一下,variance 有点大。

微软本来是为了宣传云计算,估计年龄应该只是一个噱头。

Reference: Age Synthesis and Estimation via Faces: A Survey


发表评论

电子邮件地址不会被公开。 必填项已用*标注