How-Old.net背后的技术

How-Old.net是一个基于Azure Machine Learning的演示项目,利用人脸识别API分析照片中人物的性别和年龄。该服务依托微软的Project Oxford,包括Face、Speech、Vision等API。Azure ML提供了一个直观的Web界面,便于数据科学家进行机器学习实验。How-Old.net的实现涉及人脸检测、特征提取和年龄估计,通过上传照片,经过Azure ML的处理,快速得出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

How-Old.net背后的技术

引言

为了展现开发者在Azure的帮助下能轻松迅速地打造智能应用,我们在Azure上用新发布的人脸识别APIs为2015年微软开发者大会的第二天展示搭建了How-Old.net。借助人脸识别API这个网站可以分析用户上传的照片中人物的性别和年龄。这个API的人脸定位功能及性别识别功能大致准确,然而年龄预测结果并不是非常准确,但How-Old.net依旧能博得用户一笑,制造诸多欢乐。当然,同大部分网站一样,我们不会保留用户上传的照片,也不会分享这些照片,我们只会分析照片里人物的年龄和性别。

事实上,How-Old.net 是微软 Build 2015 大会所发布“Project Oxford”的延伸项目。Project Oxford 是一系列机器学习(Machine Learning)的 APIs 测试版,包括 Face、Speech、Vision 以及 LUIS(Language Understanding Intelligent Service)APIs。例如 Face API 允许开发者将人脸侦测与识别的功能加入到他们的应用程序,提供实用的用户资讯给开发者。

一、微软的Azure机器学习服务

微软于近期发布了 Azure ML 。这是一个基于云的机器学习平台,旨在帮助基于过去的行为对未来事件进行预测。微软已经将机器学习应用于Bing、Xbox和其他产品多年。但是,这是微软首次将内部技术以云服务的方式提供给外界使用。

Azure ML带来了一个直观的、对用户友好的Web界面。它支持 R语言 输入,并包含了350多个供数据科学家使用的R语言包。Azure ML支持丰富的数据源,包括微软的Hadoop服务 HDInsight 、SQL数据源、Azure存储甚至是Azure虚拟机。

Azure ML面向的是数据科学家,而不是软件工程师。Azure ML用户能通过拖放可视化组件来创建数据流,运行他们的实验。 ML studio 已经预定义了一些实验和算法。这些实验和算法都是久经微软的Xbox、Bing和研究部门考验的。

正如之前InfoQ所报道的,机器学习是一个热门领域,各大科技公司都投入了大量资源。不像 Google的Prediction API 那样提供单纯的API,Azure ML和其他工作正致力于让数据科学家能够导入数据、分析数据并定义API的原型。

坐落在旧金山的创业公司 Ersatz Labs 也在尝试从数据科学家的角度解决机器学习问题。他们的基于Web的机器学习平台可进行数据加工,并提供了预定义的机器学习算法,以帮助数据科学家达成目标。通过使用基于GPU的硬件,他们声称获得了更快的执行速度。他们专注于让用户能够相对容易地使用他们的API开发应用。

目前Azure ML还处于预览阶段,所以没有提供 SLA ,而且其定价是有折扣的。机器学习即服务正在不断地变得大众化。这将有助于数据分析员更容易地开发服务,并在短时间内将服务投入市场。

二、How-Old.net是怎样实现识别年龄


这个 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 有点大。


三、 利用Microsoft Azure Machine Learning Studio创建机器学习实例 


Microsoft Azure云服务推出机器学习的模块,用户只需上传数据,利用机器学习模块提供的一些算法接口和R语言或别的语言接口,就能利用Microsoft Azure强大的云计算能力来实现自己的机器学习的任务。

本文浅尝了该机器学习模块,参照官方 实例 和帮助文档,完成了一个简单的应用实例,具体步骤如下。

1、新建workspace

注意,在填写workspace owner,一定要填写一个有效的windows live 账号


进入创建的workspace,界面如下图所示


2、上传数据

数据源: http://archive.ics.uci.edu/ml/datasets/Statlog+(German+Credit+Data)

下载名为 german.data ,该数据用于信用风险的机器学习算法,数据包括 20 个变量, 1000 条信用记录,其中 700 条问低风险, 300 条为高风险。注意,由于 Azure Machine Learning stidio 只支持 csv 文件,所以需要把 german.data 转化为 csv 文件。

点击 ML studio 下方的" +new "链接,按下图所示将数据已建立好 workspace 中



3、新建Azure ML的实验

点击 ML studio 下方的" +new "链接,选择 Experiment 选项,打开如下界面后


第一步,可以给这个实验添加一个标题,本文命名为"Experiment by Jiahua"

第二步,在左侧找到上传的数据,名字为上传数据是给定的数据名字,本文为"UCI German Credit Card Data",将数据拖到中间的工作区,然后右侧会给出数据的描述信息。数据进入工作区之后,用一个圆角的矩形表示,矩形下有一个圆圈,称为"output port",将鼠标放在上面并点击右键后,可以进行数据可视化等操作。拖动圆圈,可以指向下一个数据处理操作。

第三步,添加完数据集之后,就需要对数据集进行相应的处理,包括数据预处理,训练样本和测试样本划分,选择机器学习算法等等,详细操作课参加官方实例。完成上述操作后,一个可视化的机器学习过程就完成,如下图所示:


第四步,模型运行。完成上述操作后,就就可以运行程序了,点击下方的"Run",模型就会运行,每个模块运行完成之后会在右上方标示一个绿色小勾,如果每个模块或步骤出错了,会在同样的地方出现一个红色的  ,鼠标放上去之后就会提示错误的类型。

第五步,查看结果,在"Evaluate Model"方框下的圆点处点击右键,选择"Visualize"即可查看模型运行结果,部分结果如下图所示:


5、小结

这样一个利用 Azure 云服务的机器学习实例就完成了,当然如果必要的的话还可以将完成模型发布到 web 服务器上,这里就不细述,可以参考帮助文档。

利用 Azure 云服务做机器学习研究,给我最大的体会是可视化的操作步骤使得算法的运行过程更加清晰明聊,将算法拆分为数据准备、数据预处理、训练数据和测试数据分割、模型选择、模型参数调整、模型评价等环节,每个环节以处理框的形式出现,通过带箭头的连线,可以清晰的看出每个环节的输入和输出关系,从而研究者能更容易的抓住和控制算法的要点。

初步的尝试就到此结束,由于时间和能力的关系,本文只做了最简单的尝试,叙述过程省略了很多细节,尤其是在新建实验部分,如果感兴趣可以详细查阅官方帮助文档。

四、通过Amazon Machine Learning建立一个数值回归模型

实际生产中,业务经常会碰到预测未来值的情况。预测可以帮助进行更好的资源规划及业务决策制定。通常情况下,鉴于无法承受如数值回归等复杂模型所带来的开销,机构安于使用过去一阶段平均值并附加一些假想变化这种廉价的模式。

以自行车租赁程序为例,预测一个特定城市每个小时的自行车需求。在这个情景中,你需要机器学习模型来基于一组特征(或者predictor)来预测一个值。在这里,你将基于 Kaggle上开放的一些数据来建立一个回归模型。通过学习建立这个模型,你可以在自己的场景中应用自己的机器学习。

具体可以查看:http://www.tuicool.com/articles/niuEFrz


来自:http://bbs.mysipo.com/thread-112267-1-1.html

         http://www.cbdio.com/BigData/2015-05/06/content_3015863.htm

         http://www.tuicool.com/articles/AnQRRzf


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值