通过分析照片判断人的年龄,是什么原理?如何让自己测出来显得年轻?

最开始是吃饭时看到一款小x相机带这个功能,然后桌上大家都试了一圈

然后发现 微软 www.how-old.net 这个网站也有分析照片判断年龄的功能

这有可能是什么原理?是否有一些容易想到的指标? 还是给软件足够的照片(同时输入真实年龄)后机器能够自动学习?

推荐  (0) | 12人关注关注
8个答案
21 0

Cast机械专业,DIY爱好者

2015-05-05 12:23

这个在quora上已经好几千的赞了,来源→http://www.quora.com/How-does-how-old-net-work

以下是翻译,感谢 Eason Wang

————————————————

作者:Eason Wang

必应 高级项目经理

我直接参与了这个项目,后端代码是我们必应的团队和微软学术一起合作完成的。说实话,这么个小应用,得到了病毒式的传播,对我来说还挺惊讶的。关于「how-old.net/ 为啥能病毒式传播?」我在 Medium 上发了篇文章做了些分析,有兴趣请戳→https://medium.com/@yushunwang/10-reasons-why-howoldrobot-gets-viral-1a0eb5cb0d96

回正题,分两部分回答这个问题。

1,我说下如何在其他 App 中快速实现相同的功能;

2,我来深入讲下这个技术本身。

一,从微软开源项目 Oxford 说起

过去几年,必应图片搜索中的图像理解能力应该是行业内最好的。 Microsoft Project Oxford Home(https://www.projectoxford.ai/

这个项目原本是被用在必应的,后来很快就扩展到其他的微软产品,现在又开放给了所有的开发者。

想要在你的 App 中实现相同的功能,简单地调用 API 后获得你要的信息后返回到 JSON 格式就可以了。你可以在这个页面(www.projectoxford.ai

上传张图片试试看。几秒内就能返回面部坐标、性别、年龄的数据。而面部识别 API 调用只是我们在 Oxford 项目中开放的众多功能之一,在调用的API 接口中还有很多其他的核心功能能够驱动创新。

一想到微软内部的 API 接口能开放给所有的开发者我还是很激动的!这对开发者们来说肯定是有深远影响的,这要是在以前是难以想象的,现在却只需要一个简单的Web API调用。

#How Old Robot 真的只是特别小的一个 Demo 用来展示我上面说的这些功能——Azure ML团队的一个开发者一天内就把它弄出来了。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

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 Do I Look?」这个技术本身

http://how-old.net/

实现起来主要靠三个关键技术(面部识别、性别分类和年龄检测)。首先面部识别是其他两种技术的基础;而对年龄检测和性别分类来说,他们就是机器学习中经典的回归分析和统计分类的问题,涉及到人脸特征表示、训练数据收集、回归/分类模型的建立和模型优化。这方面已经有很多出版书籍了,如果你有足够的兴趣去了解更多,站内联系我也行。

另一方面,图像理解已经被深度学习和大数据认识引向了一个全新的突破点,对于将来更多的智能系统和 API 来说,无疑打开了一扇新的大门。可以看看我最近的博客,了解下图像图形是怎么用更先进的运行方法工作的。

http://blogs.bing.com/search-quality-insights/2015/04/22/the-image-graph-powering-the-next-generation-of-bing-image-search/

补充或改进这个答案请留下你的评论,谢谢!

————————————————————

来自微信号:Quora中字

基于兴趣翻译知识菜市场 Quora.com 的优质内容

再次感谢 Eason Wang !

17 0

微软做的那个网站,据说会测量到以上这些位点。

The system works by analysing 27 points on the face (right)

Called face landmarks, they are a series of specifically detailed points on a face; typically points of face components like the pupils, canthus or nose.

'These attributes are predicted by using statistical algorithms and may not always be 100% precise.

'However, they are still helpful when you want to classify faces by these attributes.Face landmarks are a series of specifically detailed points on a face; typically points of face components like the pupils, canthus or nose.

http://www.dailymail.co.uk/sciencetech/article-3063092/Microsoft-reveals-web-site-claims-able-tell-people-REALLY-picture.html#ixzz3ZEFd22EB





类似的技术倒是已经应用挺多的了。

12 0

PuNaDSmile果壳“万有青年”品牌负责人

2015-05-05 12:03

感觉光线作用很大,我自己的照片,只是调整一下亮度,亮的就比暗的年纪小。

所以过曝是王道2333

4 0
支持者: liula 袁景 柯北 小青

长篇大论的就不讲了。最简单的测试,你在同一环境中换光线角度连拍几张照片做测试,反正我的结果是22到43不等,只能说这样的结果比随机猜好不到哪里去。

当然我相信微软在这里面是用了很先进的算法的。我先说说算法是怎么回事,再说说为什么微软失败了。

算法说起来就是两部分。一个是人脸识别和定位(也就是说不仅要识别出人脸还要找到人脸的位置),这方面很多年前那些“微笑对焦”相机就已经用得很成熟了。另一个是年龄的预测,就用之前找到的人脸的patch,然后用一个手动标注过实际年龄的样本库做训练(一个人脸加上其对应的实际年龄就是一个样本),现在的深度学习算法肯定是能做到一定程度的成功预测,毕竟模型的capability摆在那里,用一些小技巧应该就能得到不错的结果。

但就如我开头说的,微软做的实在不算成功,而最主要的原因我估计是样本数量不够。深度神经网络是复杂度非常高的模型,也就需要大量样本去喂它,不然就没有办法处理和样本差别比较大的图片。

很遗憾的是这次微软保证不会在服务器端保留图片,也没有问参与游戏者的实际年龄,也就是说这么多人上传的这么多照片并没有被用来提高预测的质量,可以说数据驱动的人工智能和保护隐私本身就是一对矛盾,真的是两难。

2 0
支持者: GraveDiggaz fekn

我个人经验是摘掉眼镜后,判断结果能年轻至少10岁!

看来微软的detect facial feature代码对眼镜框的过滤能力很弱。

我戴的是细半框眼镜,我猜想镜框和镜片边缘可能被识别成了皱纹和眼袋,而且近视镜片会使眼部显得比整个脸部更暗些,也会被归类到更老的一类脸

2 1

其实并不准,我拿我老婆的照片,从13-58、、、

0 0

美图前57岁,雄性

美图后19岁,雌性

图像亮度和相干性都会影响吧感觉。。。同学磨皮磨磨磨磨磨到了六岁。。。

0 1

是否过曝,可能因人而异吧。本鱼用过自己的一张原图,与另一张过曝的图片试过,结果还是一样:一个十四岁的女孩子。23333

查看更多

添加回答

登录 后回答问题,你也可以用以下帐号直接登录

相关问答

关于我们 加入果壳 媒体报道 帮助中心 果壳活动 家长监控 免责声明 联系我们 移动版 移动应用

©果壳网    京ICP证100430号    京网文[2018] 6282-492号    新出发京零字东150005号     京公网安备11010502007133号

违法和不良信息举报邮箱:jubao@guokr.com    举报电话:18612934101    网上有害信息举报专区    儿童色情信息举报专区