验证向人员组添加面部

时间:2018-02-13 07:04:57

标签: c# .net microsoft-cognitive face-api

如何检查这个检测到的面部是否存在于面部API存储中,否则将检测到的面部添加到人物组的特定personId?

人员组中的列表人员示例(JSON格式):

[{
  "personId": "1234",
  "persistedFaceIds": ["0987"],
  "name": "Mary",
  "userData": null
}, {
  "personId": "5678",
  "persistedFaceIds": ["6543", "2109"],
  "name": "John",
  "userData": null
}]

我先尝试检测脸部,然后使用验证。但是,它仅验证检测到的人脸ID和人员组中的personId。有没有办法验证检测到的面部ID与每个持久面部id驻留在personId中,所以置信度得分为1?否则,根据名称将检测到的面部添加到人员组。

1 个答案:

答案 0 :(得分:0)

我认为您应该查看Find similar的{​​{1}}方法。此方法执行以下操作:

  

给定查询面部的faceId,从a中搜索相似的面部   faceId数组或faceListId。 faceId数组包含创建的面   by Face - Detect,将在创建后24小时到期。而   “faceListId”由面部列表创建 - 创建一个包含的面部列表   persistedFaceIds不会过期。根据输入而定   返回的相似面部列表包含faceIds或persistedFaceIds   按相似性排列。

在你的情况下,我会做以下事情:

  • 使用Face API方法查找图片中的面孔
  • 使用Detect方法查找检测到的面孔是否与您的人员组中的某人匹配
  • 然后使用Identify:使用来自此人的“persistedFaceIds”值设置参数Find similar

使用最后一种方法,您将获得具有以下格式的结果:

faceId

因此,如果您想要将面部添加到此人的面部列表中,则可以轻松检查置信度是否为1或更低。

API管理中[ { "persistedFaceId" : "015839fb-fbd9-4f79-ace9-7675fc2f1dd9", "confidence" : 0.82 }, ... ] 的官方文档可用here