PersonID 计算(Azure 人脸 API)
Posted
技术标签:
【中文标题】PersonID 计算(Azure 人脸 API)【英文标题】:PersonID computation (Azure Face API) 【发布时间】:2020-03-28 06:14:43 【问题描述】:我想知道如何计算 PersonID 字符串(在调用 PersonGroup Person – Face API 的 Create 方法后获得)。特别想知道是否可以在不调用特定API函数Person Group Person – Get的情况下从中恢复任何信息(例如“name”和“userData”字段)。
提前致谢。
【问题讨论】:
您好,您还有什么顾虑吗? 感谢您的回答!我想知道输出 PersonID 字符串的显式计算是什么(例如哈希的输出)。 【参考方案1】:如果您的意思是取回您放入create()
方法参数的信息,是的,您可以从client.person_group_person.create()
结果中获得该信息。
PersonGroupPerson 的create()
方法具有以下字段作为参数:person_group_id
、name
、user_data
、custom_headers
、raw
和operation_config
。因此,您可以在创建新的 PersonGroupPerson 时为其添加值。调用此方法后,将返回具有以下属性的 Person 对象:name
、user_data
、person_id
、persisted_face_ids
。例如,您可以这样做:
# Create a new Person object and add that image to it.
new_person = client.person_group_person.create(person_group_id, name)
img = open(image_name, 'rb')
# Add the new person to your Person object and your person group
face_client.person_group_person.add_face_from_stream(person_group_id, new_person.person_id, img)
print('New Person Created:', new_person.name)
在上面的示例中,您从create()
调用的结果中获得了person_id
和name
。因此,您在create()
中添加的任何参数都可以从结果中检索到。
但是,这只是一般的 Person 信息,您尚未将此人的图像(面孔)添加到此 Person 对象,除非您调用 add_face_from_stream()
或 add_face_from_url()
。
如果您想知道如何创建人员 ID,Microsoft 在 Github 中提供了一些源代码。
人员组人员操作:https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/cognitiveservices/azure-cognitiveservices-vision-face/azure/cognitiveservices/vision/face/operations/_person_group_person_operations.py
Person 类(第 1213 行):https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/cognitiveservices/azure-cognitiveservices-vision-face/azure/cognitiveservices/vision/face/models/_models.py
【讨论】:
【参考方案2】:PersonID 字符串在这里只是一个GUID。如果你创建了一个人,Azure 人脸服务将为你提供一个 GUID 作为该人的 ID。作为标识符,PersonID 与“姓名”和“用户数据”等个人详细信息无关。
如果你想得到一个人的一些信息,恐怕使用API function Person Group Person – Get是唯一的方法。
【讨论】:
以上是关于PersonID 计算(Azure 人脸 API)的主要内容,如果未能解决你的问题,请参考以下文章
用Azure上Cognitive Service的Face API识别人脸