【问题标题】:Validation of adding face to person group验证将人脸添加到人员组
【发布时间】:2023-04-06 16:14:01
【问题描述】:

我应该如何检查这个检测到的人脸是否存在于人脸 API 存储中,否则将检测到的人脸添加到人员组的特定 personId 中?

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

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

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

【问题讨论】:

  • 你可以参考下面的答案吗? stackoverflow.com/a/31926367/4222487
  • 查看了您提供的链接,但我认为我无法使用它。它不适用于此问题,因为persistedfaceid 包含每个唯一的面部标志并加密为字节(?)。

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


【解决方案1】:

我认为你应该看看Face APIFind similar 方法。此方法执行以下操作:

给定查询人脸的 faceId,从一个 faceId 数组或 faceListId。 faceId 数组包含创建的面 通过人脸 - 检测,将在创建后 24 小时过期。尽管 “faceListId”由人脸列表创建 - 创建一个包含人脸列表 不会过期的persistedFaceIds。根据输入 返回的相似面孔列表包含 faceIds 或 persistedFaceIds 按相似度排序。

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

  • 使用Detect方法在图片中查找人脸
  • 使用Identify 方法判断检测到的人脸是否与您的人组中的某个人匹配
  • 然后使用Find similar:将参数faceId设置为来自人员的“persistedFaceIds”的值

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

[
    {
        "persistedFaceId" : "015839fb-fbd9-4f79-ace9-7675fc2f1dd9",    
        "confidence" : 0.82
    },
    ...
]

因此,很容易检查置信度是否为 1 或更小,以了解您是否要将面部添加到该人的面部列表中。

API 管理中Find Similar 的官方文档可在here 获得

【讨论】:

    猜你喜欢
    • 2016-11-26
    • 2019-08-11
    • 2018-12-13
    • 2021-10-04
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    相关资源
    最近更新 更多