分享

通过分析照片判断人的年龄,是什么原理?

 pgl147258 2015-05-05

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

以下是翻译

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

作者:Eason Wang

必应 高级项目经理

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

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

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

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

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

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

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

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

上传张图片试试看。几秒内就能返回面部坐标、性别、年龄的数据。而面部识别 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:///

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

另一方面,图像理解已经被深度学习和大数据认识引向了一个全新的突破点,对于将来更多的智能系统和 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 的优质内容

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多