Microsoft Cognitive - Face API - 人脸验证 - 工作原理
Microsoft Cognitive - Face API - Face verification - How it works
用例如下
- 我们的系统中有面孔列表
- 用户将上传一张图片
- 我们想要显示与上传图片匹配的面孔列表,置信度 >0.8
现看how to,理解如下
- 使用面部检测API,我们需要先上传所有图像,包括我们要验证的图像
- 我们可以将系统中的所有面孔添加到 PersonGroupId
之一
- 然后我们需要调用 Face-Verify API & 传递图像来验证 & PersonGroupId 开始比较
- 作为响应,我们将获得所有具有 isIdentical 和置信度数据的 faceId ??
这是正确的方法吗?
应用过滤器后,我们的系统可以处理大约 1000-3000 张图像。
顺便说一句,在给定的 link 中,提到 faceid 将在检测呼叫后 24 小时后过期:(
在这种情况下,我们还需要注意性能,因此我们正在考虑异步调用,然后 return 结果会出现在我们系统中的某个位置,稍后可以检索到。
最好的方法是什么?
定价
- 我可以看到前 30,000 笔交易是免费的(限制为 20/m)
- 1000 张图像的人脸存储成本为 16.53/m,这是否意味着 Face-Detect API 将存储在 Azure Blob 存储中?如果是,24 小时后仍然会删除 faceId?
- 面部存储 - 每张图像最多可存储 4 MB - 而面部检测表示,最多可存储 6 MB
我可能遗漏了一些东西,如果有人能点亮它就太好了
让我们看看您需要实施的过程。
在文档中 here 它说;
Face APIs cover the following categories:
...
- FaceList: Used to manage a FaceList for Find Similar.
- (Large)PersonGroup: Used to manage a (Large)PersonGroup dataset for Identification.
- (Large)PersonGroup Person: Used to manage (Large)PersonGroup Person Faces for Identification.
在您的情况下,您似乎想要识别人脸,因此您将使用 PersonGroup
和 PersonGroup Person
项。
第 1 步 - 生成已知面孔列表
详情
因此,首先您需要将已知面孔存储在一个组中(根据您必须存储的项数,称为 PersonGroup
或 LargePersonGroup
),以便使用图像查询这些项由您的用户上传。它会保留项目,这些组没有“24 小时限制”。
如果您想了解“正常”和“大规模”组之间的差异,请参阅参考资料here:您必须考虑一些差异,尤其是在训练过程方面。
所以让我们使用正常的 PersonGroup
,不要大。请注意,物品数量取决于您的订阅:
- Free-tier subscription quota: 1,000 person groups. Each holds up to 1,000 persons.
- S0-tier subscription quota: 1,000,000 person groups. Each holds up to 10,000 persons.
操作
另请注意,我在这里指的是 API 操作,但所有这些操作都可以通过那些 API 调用以任何语言执行,但也可以直接使用为某些语言提供的 SDK(参见列表 here)
- 用
PersonGroup - Create
operation 创建一个 PersonGroup。您将在请求中指定一个 personGroupId
,您将在下面使用
然后对于您已知面孔中的每个人:
用PersonGroup Person - Create
operation创建一个人,在请求中给出之前的personGroupId
。结果你会得到一个 personId
guid 值,比如“25985303-c537-4467-b41d-bdb45cd95ca1”
通过调用 PersonGroup Person - Add Face
operation 并提供 personGroupId
,将此用户的 Faces 添加到其新创建的 Person, personId
,请求中的其他可选信息和正文中的图像 url。
请注意,对于此操作:
Valid image size is from 1KB to 4MB. Only one face is allowed per
image.
最后,一旦你添加了你的人和他们的脸:
那么你就可以根据这个群体来识别人了!
第 2 步 - 在您已知的面孔中搜索此 FaceId
简单,只需 2 个操作:
调用 Face - Detect
operation 在图像中查找面孔。结果将是一个包含 faceId
和其他属性
的项目数组
如果检测到人脸,请使用以下参数调用 Face - Identify
operation:
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
}
其他问题
Face Storage cost is 16.53/m for 1000 images, does it means that
Face-Detect API will store in Azure Blob storage? If yes and still
faceId will be deleted after 24 hours ?
面部检测 API 未存储图像。存储成本大约是使用 PersonGroup 或 FaceLists
Face Storage - Stores images sized up to 4 MB each - whereas
Face-Detect says, can store up to 6 MB
如前所述,存储是关于持久化面孔,就像您使用 PersonGroup Person - Add Face
时一样,其中限制是 4MB,而不是 6
用例如下
- 我们的系统中有面孔列表
- 用户将上传一张图片
- 我们想要显示与上传图片匹配的面孔列表,置信度 >0.8
现看how to,理解如下
- 使用面部检测API,我们需要先上传所有图像,包括我们要验证的图像
- 我们可以将系统中的所有面孔添加到 PersonGroupId 之一
- 然后我们需要调用 Face-Verify API & 传递图像来验证 & PersonGroupId 开始比较
- 作为响应,我们将获得所有具有 isIdentical 和置信度数据的 faceId ??
这是正确的方法吗?
应用过滤器后,我们的系统可以处理大约 1000-3000 张图像。
顺便说一句,在给定的 link 中,提到 faceid 将在检测呼叫后 24 小时后过期:(
在这种情况下,我们还需要注意性能,因此我们正在考虑异步调用,然后 return 结果会出现在我们系统中的某个位置,稍后可以检索到。
最好的方法是什么?
定价
- 我可以看到前 30,000 笔交易是免费的(限制为 20/m)
- 1000 张图像的人脸存储成本为 16.53/m,这是否意味着 Face-Detect API 将存储在 Azure Blob 存储中?如果是,24 小时后仍然会删除 faceId?
- 面部存储 - 每张图像最多可存储 4 MB - 而面部检测表示,最多可存储 6 MB
我可能遗漏了一些东西,如果有人能点亮它就太好了
让我们看看您需要实施的过程。
在文档中 here 它说;
Face APIs cover the following categories:
...
- FaceList: Used to manage a FaceList for Find Similar.
- (Large)PersonGroup: Used to manage a (Large)PersonGroup dataset for Identification.
- (Large)PersonGroup Person: Used to manage (Large)PersonGroup Person Faces for Identification.
在您的情况下,您似乎想要识别人脸,因此您将使用 PersonGroup
和 PersonGroup Person
项。
第 1 步 - 生成已知面孔列表
详情
因此,首先您需要将已知面孔存储在一个组中(根据您必须存储的项数,称为 PersonGroup
或 LargePersonGroup
),以便使用图像查询这些项由您的用户上传。它会保留项目,这些组没有“24 小时限制”。
如果您想了解“正常”和“大规模”组之间的差异,请参阅参考资料here:您必须考虑一些差异,尤其是在训练过程方面。
所以让我们使用正常的 PersonGroup
,不要大。请注意,物品数量取决于您的订阅:
- Free-tier subscription quota: 1,000 person groups. Each holds up to 1,000 persons.
- S0-tier subscription quota: 1,000,000 person groups. Each holds up to 10,000 persons.
操作
另请注意,我在这里指的是 API 操作,但所有这些操作都可以通过那些 API 调用以任何语言执行,但也可以直接使用为某些语言提供的 SDK(参见列表 here)
- 用
PersonGroup - Create
operation 创建一个 PersonGroup。您将在请求中指定一个personGroupId
,您将在下面使用
然后对于您已知面孔中的每个人:
用
PersonGroup Person - Create
operation创建一个人,在请求中给出之前的personGroupId
。结果你会得到一个personId
guid 值,比如“25985303-c537-4467-b41d-bdb45cd95ca1”通过调用
PersonGroup Person - Add Face
operation 并提供personGroupId
,将此用户的 Faces 添加到其新创建的 Person,personId
,请求中的其他可选信息和正文中的图像 url。
请注意,对于此操作:
Valid image size is from 1KB to 4MB. Only one face is allowed per image.
最后,一旦你添加了你的人和他们的脸:
那么你就可以根据这个群体来识别人了!
第 2 步 - 在您已知的面孔中搜索此 FaceId
简单,只需 2 个操作:
调用
的项目数组Face - Detect
operation 在图像中查找面孔。结果将是一个包含faceId
和其他属性如果检测到人脸,请使用以下参数调用
Face - Identify
operation:faceId
,这是检测操作的值personGroupId
: 您在步骤1中创建的组的IdconfidenceThreshold
:你的置信度阈值,比如 0.8maxNumOfCandidatesReturned
:返回的候选人数(1到100之间,默认为10)
申请样品:
{
"personGroupId": "sample_group",
"faceIds": [
"c5c24a82-6845-4031-9d5d-978df9175426",
"65d083d4-9447-47d1-af30-b626144bf0fb"
],
"maxNumOfCandidatesReturned": 1,
"confidenceThreshold": 0.8
}
其他问题
Face Storage cost is 16.53/m for 1000 images, does it means that Face-Detect API will store in Azure Blob storage? If yes and still faceId will be deleted after 24 hours ?
面部检测 API 未存储图像。存储成本大约是使用 PersonGroup 或 FaceLists
Face Storage - Stores images sized up to 4 MB each - whereas Face-Detect says, can store up to 6 MB
如前所述,存储是关于持久化面孔,就像您使用 PersonGroup Person - Add Face
时一样,其中限制是 4MB,而不是 6