专栏首页CSDN技术头条How-Old.net背后的那些事

How-Old.net背后的那些事

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

网站建成后,我们给数百名微软员工发了邮件,邀请他们体验这个网站并给出反馈。当时想着若有几十个人来这个网站、为测试提供有用的数据就算不错了。但三个小时后,我们的后台分析图表呈现出下图态势:

几个小时里,How-Old.net收到了全球3万5千用户(其中大约2万9千人来自土耳其,下图显示,推特上有大量来自土耳其的用户提到了这个网页)上传的21万多张相片。

这个网页展示了用户使用的实时信息。比如,我们曾预测用户会用已经存在于网络的照片,或是使用页面上的必应图片搜索栏;然而网站分析的照片中,超过一半的是用户上传的自己的照片。这些信息帮助我们改善用户体验,还有助于我们额外测试手机上传照片。

那么这些是怎么实现的呢?

尽管难以置信,但两位工程师只需几个小时便把整套解决方案(从网页到机器学习API到实时数据流分析再到实时BI)整合在一起。这很好地展示了Azure开发者的灵敏和创造力。这款应用的关键功能在于以下三点:

  • 识别图片中人物性别及年龄
  • 获取上述数据的实时信息
  • 生成实时分析图表来显示上述结果

识别性别及年龄

我们想用智能有趣的体验吸引全球用户。于是我们浏览了微软Azure机器学习展示厅。这个网页里有个新套装Project Oxford,由必应和微软研究院打造,内含大量面部、语言和视觉方面的服务。我们用到的脸部识别API有个样品页,该页面可以检测到脸部并提取出相关信息。我们觉得这个API的年龄及性别识别功能很有趣,所以选了这个方面作为我们的项目。为了让用户体验更加有意思,我们还加上了Azure市场里的必应搜索API,最终建成了http://how-old.net。

除了年龄和性别,我们还用上了其他普通浏览器提供的信息,比如伴随着每个标准HTTP呼叫而来的用户代理字符串,以及照片上传地的经纬度。这些信息可用来计算很多网站使用数据,比如通过iPhone、Windows或安卓登录的数量,How-old.net最受欢迎的地区。这点体现在下列JSON文件中:

实时信息

为了知晓How-Old.net实时数据的模式,我们引入了一套新的微软Azure数据流服务。

我们用Azure事件中心导入数据。用户上传照片时,事件中心API会从网页生成ASON文件。注意,在此过程中,我们不会保留照片及任何指向用户的信息(用户无需电邮,不用登录,也没有用户名)。只有JSON文件流向Azure事件中心。

然后,我们需要数据流服务来实时整合处理用户们上传的上万张照片。这里我们用到了高吞吐低延迟的全托管解决方案Azure流分析(ASA)。ASA让用户能用类似SQL的语言,轻松处理数据流。

比如,只用输入下列命令,你就能从一个十秒窗口得出“性别”的计数,而且结果每秒都会更新。

在上图的查询中,我们选取了显示结果的时间,性别和性别的计数。StreamInput指流动记录数据流向的事件中心。这个过程是在一个忙碌的十秒窗口中完成,只用了一秒钟。这个查询提供了上传照片中男性和女性的总数。这些信息能被展示在一个分析图表里。你可对来自同一事件中心的数据进行多种查询。

实时分析图表

我们用PowerBI在一个实时分析图表中展示结果。我们只是选择了PowerBI来呈现数据流分析结果,然后在http://www.powerbi.com选择ASA创建的数据集和表格,无需进行其他代码方面的工作。

上图的两项数据流分析查询,一个是整合照片中提取的年龄再以PowerBI中其他标准(比如区域)进行分类,另一个是上面提到的查询。PoweBI能制作各种图表,你甚至可以直接用自然语言发布命令(比如“各性别各年龄IOS用户的总数是多少?”)。

总之,大家在http://how-old.net上玩得开心,也期待更多人用Azure机器学习打造自己的应用。

Via:译言网

本文分享自微信公众号 - CSDN技术头条(CSDN_Tech)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-05-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ASM翻译系列第三弹:ASM disk的基础知识

    ASM翻译系列导读: ASM翻译系列第三弹:ASM disk的基础知识:http://geek.csdn.net/news/detail/80926 ASM 翻...

    CSDN技术头条
  • Instagram 的持续部署实践

    在Instagram,我们每日部署后端代码的次数达30-50次,只要有工程师将修改内容提交到主服务器,部署就会进行,而且在大多情况下无需人工介入。这听起来也许很...

    CSDN技术头条
  • 谷歌云推送服务(GCM)半年内增一倍,日处理1500亿条消息

    GCM是一种向设备发送简单、可靠信息的技术服务。在过去的半年中,GCM所处理的消息数量增加了一倍有余,每天需要处理1500亿条消息,同时使用该服务的应用增加了四...

    CSDN技术头条
  • 自适应参数化ReLU激活函数:一种注意力机制下的激活函数

    本文在综述传统激活函数和注意力机制的基础上,解读了一种注意力机制下的激活函数,即自适应参数化修正线性单元(Adaptively Parametric Recti...

    用户7107719
  • ReLU激活函数+注意力机制=自适应参数化ReLU激活函数

    本文首先简介了一些传统的激活函数和注意力机制,然后重点解读了一种“注意力机制下的新型激活函数”,即自适应参数化修正线性单元(Adaptively Paramet...

    用户7096272
  • 注意力机制下的激活函数:自适应参数化ReLU

    本文在综述传统激活函数和注意力机制的基础上,解读了一种注意力机制下的激活函数,即自适应参数化修正线性单元(Adaptively Parametric Recti...

    用户6831054
  • 瞎谈 Python 中那些隐藏至深的“蛇蛋”

    Hello world 这个词相信大家都很熟了,当年毛都不会的我跑出来的第一个程序就是 Hello world,那天阳光明媚,那天万里无云,那天我喜极而泣......

    Rocky0429
  • 驱动开发中的常用操作

    这篇文章会持续更新,由于在驱动中,有许多常用的操作代码几乎不变,而我自己有时候长时间不用经常忘记,所以希望在这把一些常用的操作记录下来,当自己遗忘的时候,有个参...

    Masimaro
  • 诺基亚推出OZO Player SDK,支持任何设备拍摄的360°视频文件

    近日,诺基亚正式推出OZO播放器SDK,该软件支持2D以及3D的360°以及180°视频制作成适应Gear VR、Steam、Oculus、谷歌Daydream...

    BestSDK
  • MySQL中IS NULL、IS NOT NULL、!=不能用索引?胡扯!

    这种说法愈演愈烈,甚至被很多同学奉为真理。咱啥话也不说,举个例子。假如我们有个表s1,结构如下:

    帅地

扫码关注云+社区

领取腾讯云代金券