最近微软Web开发出来的how-old.net盛行整个网络世界,娱乐明星(Entertainment Stars)已经被彻底玩坏了,短短上线几个小时,用户就已经测试了超几十万张照片。
- 不过由于人脸、皮肤是测试年龄的最重要的辨别依据,除了脸部皮肤,暴露每个人的年龄,当然还有眼部皮肤和颈部皮肤。另外,如果是有意将眼睛睁大点,这样的效果也可能会帮你年轻好几岁。当然了,既然大家拼照片猜年龄的时候,拍照时,灯光也是很重要,因此这样推测或多或少存在误差的,因此网络上更有郭德纲和林志颖之间相差一个吴奇隆的段子,让人喷饭的同时,又不禁好奇,how old robot怎么玩?how-old.net怎么测年龄的呢?下面我们可以大致了解一下:
- 对于这类的网站开发,其实我们只需要 1 天时间就可以搭建起来。通过用微软发布的 face detection api,只要几下 rest api 调用就可以得到想要的结果了。此外,年龄和性别的鉴定只是一个小功能,这个API还包括识别两张图片是不是同一个人,并确定一个特定的人等高级功能。参考 Fun with ML, Stream Analytics and PowerBI,里面有详细说明。
Web开发主要组件是:
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 是之前就已经有的东西了,没想到大家都关注人脸识别去了。
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 获取的训练参数,估计年龄。
虽然说微软此次巧妙的利用网站开发的how-old.net的测龄风潮仅仅是微软的一个小小噱头,但测龄网站之所以如此吸引人们的眼球了,各路大神都为之疯狂,这也是值得我们去思考的,说实在的它正是很好地利用了用户猎奇的心理,以此达到其想要的效果。想要了解学习更多关于网站开发的资讯和技术的小伙伴,可以来看看课课家学习IT培训的!