【问题标题】:Find match face from the list of faces in local storage using Azure Face API使用 Azure 人脸 API 从本地存储中的人脸列表中查找匹配人脸
【发布时间】:2019-07-11 00:35:45
【问题描述】:

我正在阅读 Azure 页面中的文档和 API,但我仍然不确定我的内容是否正确。

场景

我们的本地存储中有大约 100 万张证件照片。每个 ID 只包含一个人。

我们希望在拍摄证件照片时实现基本验证.. 然后小应用程序将使用 Azure Face API 来查看我们拥有的那 1M 证件照片并返回匹配的照片,如果我们有相同的照片则返回是否在我们的 ID 存储中。

要做上面的事情,相信我们需要编写软件来做下面的事情

  1. 将所有照片上传到 Azure
  2. 创建大型人脸列表?
  3. 训练模型
  4. 然后我们可以进行人脸识别或人脸相似

以上步骤正确吗?

如果我使用上述方法,那意味着我需要使用“人脸存储”来保存人脸 ID 对吗?

1.有没有办法避免这个人脸存储成本?因为保存 100 万张图片会花费很多

  1. 当我确认有多少交易将被计算在内?算不算1?

我也在考虑使用 Container Cognitive,以便它可以在本地运行并使用本地存储。

这会帮助我节省人脸存储成本吗?当我运行容器时,不需要支付存储费用。我只需要支付检测、验证等交易费用。

欢迎任何在这个领域很新的 cmets 请指导我。

【问题讨论】:

  • 我已经实现了与您的步骤顺序相似的类似操作......而且我使用的是“matchFaces”模式而不是“matchPerson”。我希望得到相似的面孔,但不是来自同一个用户……你也得到相同的用户面孔吗?

标签: c# face-recognition azure-cognitive-services face face-api


【解决方案1】:

您的工作流程总体上是正确的:

  • 创建大型人员组
  • 将每个照片 ID 作为一个人添加到有面孔的组中(这是两个 API 调用:创建人物 + 添加人物面孔)
  • 培训人员组(并不时检查培训状态,因为它会很长)
  • 使用识别进行搜索

您唯一应该考虑的是大人物组的架构。当您需要添加/删除/更新组时,为 100 万人使用单个整体 LPG 将是一个杀手。每次更改的培训时间都会很长。一种策略(用于添加新人员)是添加“交易”液化石油气 - 一种较小的液化石油气,其中包括所有每小时/每天/每周(任何适合您的)添加,以便您可以快速训练更改。您将在“主要”和“交易”LPG 上运行搜索(识别),然后在其中一次将交易“提交”到主要 LPG 中。 see here in the Face API docs

关于您的其他问题:

  • 无法避免派生人脸数据的存储成本
  • 每个 API 调用都是一个事务:创建 LPG、创建人员、添加人脸、火车、获取火车状态等
  • 我没有使用认知容器功能的经验,但我相信 API 调用的定价完全相同。

【讨论】:

  • 谢谢 Shai - 所以以某种方式整体实现它 - 我需要为每个照片 ID 添加“一个人脸检测”,对吗? + 创建人员 + 添加人脸 + 训练人员组(最后) + 将搜索标识为容器 - 因为我们似乎可以在本地容器上运行实例,所以我真的怀疑微软是否会收取存储空间来存储在这种情况下面对:)
  • 请明确一点,将人物和面孔添加到您的大型人物组中,您无需调用人脸检测 API。但是,作为人脸识别的先决条件,您必须调用 Detect as identify 需要人脸 ID 作为输入。
  • 只是补充一下,在您的情况下,人脸图像数据库在每个图像中都包含一个人脸(对吗?)。如果您的源图像每张图像包含多于 1 个人脸,那么您需要调用人脸检测来告诉添加人脸您对哪个人脸感兴趣
  • 知道了 - 我的图片每个只包含 1 个人。所以我只需要添加到这里的人。然后,当我验证结果时,我可以在源照片上使用检测来与目标进行比较。感谢 Shai 的帮助!
猜你喜欢
  • 2011-12-14
  • 1970-01-01
  • 2021-03-16
  • 2020-09-03
  • 2018-12-31
  • 1970-01-01
  • 1970-01-01
  • 2019-08-11
  • 2020-03-19
相关资源
最近更新 更多