分享

How-old.net 网站是如何运作的?

 weijianian 2016-08-07


【伯乐在线导读】:最近微软的How-old.net网站非常火热,用户在该站上传照片后,它可以测算出照片中人物的性别和年龄。


有国外网友在Quora上问了How-old.net的工作原理。下面是参与了该项目的微软项目经理EasonWang的回复。



EasonWangBing的资深项目经理,此回答获得了三千三百个点赞)

我本人就直接参与了这个项目。说实话,这个小网站的走红大大出乎了我的意料。我事后进行了一些为什么会走红的分析并且在Medium写了一篇文章


回到主题吧,我的回答分成两个部分。第一个部分会讲讲如何快速地在任意的软件中实现一模一样的功能,第二个部分我会深入一些描述这项技术本身。


在过去的几年和微软研发部门的合作中,就Bing的图像搜索技术而言,我们达到了最好的工业图像理解能力,这项技术迅速延伸到微软的其他产品。目前在微软牛津项目主页上,这项技术对所有的开发者开放。想要在自己的软件中实现一样的功能,你只需要简单地调用一下我们的webAPI,就可以以JSON格式获取所需的一切信息。你可以尝试着在www.projectoxford.ai的这个页面上传一幅图像,它将在数秒内给你结果,脸部坐标、性别和年龄信息都在里面。FaceAPI只是我们在牛津项目上做的特性的其中一项。还有很多其他的核心功能来帮助打造创新性的应用。微软内部的API向大众开放让我感到很兴奋,我知道这会对开发社区起到深远的影响。这让之前看起来不可能的事情变得只用简单地调用一下webAPI就能做到了。#HowOldRobot只是这些能力的小小展示,Azure机器学习团队的一个开发人员只用了一天就把它开发出来了。


(译者注:以下是API示例,为JSON格式)


JSON:
[
{
'faceId': '5af35e84-ec20-4897-9795-8b3d4512a1f9',
'faceRectangle': {
'width': 60,
'height': 60,
'left': 276,
'top': 43
},
'faceLandmarks': {
'pupilLeft': {
'x': '295.1',
'y': '56.8'
},
'pupilRight': {
'x': '317.9',
'y': '59.6'
},
'noseTip': {
'x': '311.6',
'y': '74.7'
},
'mouthLeft': {
'x': '291.0',
'y': '86.3'
},
'mouthRight': {
'x': '311.6',
'y': '88.6'
},
'eyebrowLeftOuter': {
'x': '281.6',
'y': '50.1'
},
'eyebrowLeftInner': {
'x': '304.2',
'y': '51.6'
},
'eyeLeftOuter': {
'x': '289.1',
'y': '57.1'
},
'eyeLeftTop': {
'x': '294.0',
'y': '54.5'
},
'eyeLeftBottom': {
'x': '293.0',
'y': '61.0'
},
'eyeLeftInner': {
'x': '297.8',
'y': '58.7'
},
'eyebrowRightInner': {
'x': '316.0',
'y': '54.2'
},
'eyebrowRightOuter': {
'x': '324.7',
'y': '54.2'
},
'eyeRightInner': {
'x': '312.9',
'y': '60.9'
},
'eyeRightTop': {
'x': '317.8',
'y': '57.7'
},
'eyeRightBottom': {
'x': '317.9',
'y': '63.7'
},
'eyeRightOuter': {
'x': '322.8',
'y': '60.8'
},
'noseRootLeft': {
'x': '304.0',
'y': '60.2'
},
'noseRootRight': {
'x': '312.2',
'y': '61.2'
},
'noseLeftAlarTop': {
'x': '302.6',
'y': '70.2'
},
'noseRightAlarTop': {
'x': '313.0',
'y': '70.0'
},
'noseLeftAlarOutTip': {
'x': '298.8',
'y': '76.2'
},
'noseRightAlarOutTip': {
'x': '315.2',
'y': '76.6'
},
'upperLipTop': {
'x': '307.3',
'y': '84.0'
},
'upperLipBottom': {
'x': '306.6',
'y': '86.4'
},
'underLipTop': {
'x': '305.5',
'y': '89.6'
},
'underLipBottom': {
'x': '304.1',
'y': '94.0'
}
},
'attributes': {
'age': 24,
'gender': 'female',
'headPose': {
'roll': '4.0',
'yaw': '31.3',
'pitch': '0.0'
}
}
}
]


How-old.net这个网站主要依赖于三个关键的技术:面部检测、性别分类和年龄检测。面部检测是另外两个的基础。对于年龄检测和性别检测来说,只是机器学习中很典型的回归和分类问题,涉及到了面部特征的表示、训练数据的采集、回归和分类模型的构建以及模型的优化。这方面有很多的已经发表的论文。如果你有兴趣想进一步了解就告诉我。


另一方面,深度学习和对大规模数据的理解推动了图像理解的突破,为更加智能的系统和程序端口打开了一扇门。你可以看看我最新的关于图像图表如何应用于更进阶场景的博客:http://blogs.bing.com/search-qua…


原文来源:Quora

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多