0

我正在尝试使用 python 创建基于 MS API 的图像分类器。

起初,我想通过 MSDN 的指令“如何识别人脸”这个指令是基于 C#,但我想参考并转换成 python

https://msdn.microsoft.com/en-us/library/mt605327.aspx

根据我的分析,为了识别人脸,过程是这样的。

2. 人物组 - 创建人物组 API

人员 - 创建人员 API

Person – 添加人脸 3. 训练人员组 Person Group – 训练人员组 API。人员组 - 获取人员组培训状态

  1. 确认

    面子——识别。

Q1。如何创建子组,例如示例?下面的代码基本上创建了人员组 ID,我不确定在这种情况下如何添加子组,例如“Anna”、“Bill”、“Claire”。

#Person Group - Create a Person Group API
group_id = 'myfriend'
params = urllib.urlencode({ 'personGroupId': group_id})

body = '{"name": "myfriend1","userData": "user_profivde_data"}'
print(body)

try:
conn = httplib.HTTPSConnection('api.projectoxford.ai')
conn.request("PUT", "/face/v1.0/persongroups/{personGroupId}?%s" % params, body, headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))

Q2。如何添加多个用户面部数据而不是 url?似乎它需要 url 的主体,它只能数据一个。我想通过我的磁盘上传几个数据。

# Person - Add a Person Face

params = urllib.urlencode({
# Request parameters
'personGroupId': 'myfriend1',
'personId': "f50119eb-5a61-479f-9c57-d2af4eb99c48",
'userData': '{r/media/ryan/Windows_D/xx/xx.jpg}',
#'targetFace': '{string}',
})

body = '{ "url": "" }'

try:
conn = httplib.HTTPSConnection('api.projectoxford.ai')
conn.request("POST", "/face/v1.0/persongroups/{personGroupId}/persons/{personId}/persistedFaces?%s" % params, body, headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))

如果有人有用于通过 ms api 进行图像分组的 python 代码,那就太好了。

感谢您的帮助,我真的很感激。

4

1 回答 1

0

Q1:一旦您成功创建了 PersonGroup,您就可以使用 Create Person POST 调用API 参考|创建 Person 对象作为该组的一部分。操作方法文档。您可以有多个人员组,每个人员组可以有多个人员对象。人员对象必须存在于人员组中。

Q2:每次添加人脸只需要一张人脸,所以如果你有 5 张人脸要添加到 Person 对象,则需要 5 次调用添加人脸。虽然它在 C# 中,但在这个How-To 文档中有一个遍历文件夹的示例

还有一个 python 笔记本显示如何在这里使用 Face API 的检测,这可能很有趣:https ://github.com/Microsoft/ProjectOxford-ClientSDK/blob/master/Face/Python/Jupyter%20Notebook/Face%20Detection%20Example .ipynb

我们一直在寻求扩展示例,如果您想使用示例来扩展此 Python 示例以进行识别,我们会很乐意查看拉取请求 :-)

于 2016-06-24T17:10:28.563 回答