1

用例如下

  • 我们的系统中有面孔列表
  • 用户将上传一张图片
  • 我们希望以 >0.8 的置信度显示与上传的图像匹配的人脸列表

现在看怎么做,我理解如下

  • 使用 Face Detect API,我们需要首先上传所有图像,包括我们要验证的图像
  • 我们可以将系统中的所有面孔添加到 PersonGroupId 之一中
  • 然后我们需要调用 Face-Verify API & pass image to verify & PersonGroupId 开始比较
  • 作为回应,我们将获得所有带有 isIdentical 和置信度数据的 faceId ??

这是正确的方法吗?

应用过滤器后,我们的系统可以说大约 1000-3000 张图像。

顺便说一句,在给定的链接中,提到 faceid 将在检测呼叫后 24 小时后过期:(

在这种情况下,我们还需要注意性能,因此我们正在考虑异步调用,然后将结果返回系统中的某个位置,以便稍后检索。

什么是最好的方法?

价钱

  • 我可以看到第 30,000 笔交易是免费的(限制为 20/m)
  • 1000 张图像的人脸存储成本为 16.53/m,是否意味着人脸检测 API 将存储在 Azure Blob 存储中?如果是并且仍然 faceId 将在 24 小时后被删除?
  • 人脸存储 - 可存储每张最大 4 MB 的图像 - 而 Face-Detect 表示,最多可存储 6 MB

我可能在这里遗漏了一些东西,如果有人可以在上面放灯就好了

4

1 回答 1

3

让我们看看您需要实施的过程。

在这里的文档中说;

人脸 API 涵盖以下类别:

...

  • FaceList:用于管理查找相似的 FaceList 。
  • (Large)PersonGroup:用于管理 (Large)PersonGroup 数据集以进行标识
  • (Large)PersonGroup Person:用于管理 (Large)PersonGroup Person Faces 以进行识别

在您的情况下,您似乎想要识别人脸,因此您将使用里面PersonGroupPersonGroup Person物品。

第 1 步 - 生成已知面孔列表

细节

因此,首先您需要将您已知的面孔存储在一个组中(称为PersonGroupLargePersonGroup给定您必须存储的项目数量),以便使用用户上传的图像查询这些项目。它将保留这些项目,这些组没有“24 小时限制”。

如果您想了解“正常”组和“大规模”组之间的差异,请参阅此处的参考:您必须考虑一些差异,特别是在训练过程方面。

所以让我们使用一个普通的PersonGroup,而不是大的。请注意,项目数量取决于您的订阅:

  • 免费层订阅配额:1,000 人组。每个最多可容纳 1,000 人。
  • S0 层订阅配额:1,000,000 人组。每个最多可容纳 10,000 人。

行动

另请注意,这里我指的是 API 操作,但所有这些操作都可以通过这些 API 调用以任何语言执行,也可以直接使用为某些语言提供的 SDK(参见此处的列表)

  • 使用PersonGroup - Create operation创建一个 PersonGrouppersonGroupId您将在您的请求中指定一个,您将在下面使用

然后对于您已知面孔的每个人:

  • 创建一个带有PersonGroup Person - Create operationpersonGroupId的 Person ,在请求中给出前面的。结果,您将获得一个personId指导值,例如“25985303-c537-4467-b41d-bdb45cd95ca1”

  • 通过调用PersonGroup Person - Add Face operation并在请求中提供personGroupId额外personId的可选信息以及在正文中提供您的图像 url,将此用户的面孔添加到其新创建的 Person 中。

请注意,对于此操作:

有效图像大小为 1KB 到 4MB。每张图片只允许一张脸。

最后,一旦你添加了你的人的面孔:

  • 调用PersonGroup - Train 操作
  • 通过操作检查训练状态PersonGroup - Get Training Status

然后你就可以根据这个组来识别人了!

第 2 步 - 在已知面孔中搜索此 FaceId

很简单,这里只有 2 个操作:

  • 调用Face - Detect 操作以在图像中查找人脸。结果将是一个包含项目faceId和其他属性的数组

  • 如果您检测到人脸,请使用以下参数调用Face - Identify 操作:

  • faceId,这是检测操作的值

  • personGroupId:您在第 1 步中创建的组的 ID

  • confidenceThreshold:你的置信度阈值,比如 0.8

  • maxNumOfCandidatesReturned: 返回的候选人数(1 到 100 之间,默认为 10)

索取样品:

{
    "personGroupId": "sample_group",
    "faceIds": [
        "c5c24a82-6845-4031-9d5d-978df9175426",
        "65d083d4-9447-47d1-af30-b626144bf0fb"
    ],
    "maxNumOfCandidatesReturned": 1,
    "confidenceThreshold": 0.8
}

其他问题

1000 张图像的人脸存储成本为 16.53/m,是否意味着人脸检测 API 将存储在 Azure Blob 存储中?如果是并且仍然 faceId 将在 24 小时后被删除?

Face-Detect API 不存储图像。存储成本是关于使用 PersonGroup 或 FaceLists

人脸存储 - 可存储每张最大 4 MB 的图像 - 而 Face-Detect 表示,最多可存储 6 MB

如前所述,存储是关于像使用时那样持久化的面孔PersonGroup Person - Add Face,其中限制是 4MB,而不是 6

于 2018-07-05T09:01:28.757 回答