在集合中搜索人脸 - Amazon Rekognition

在集合中搜索人脸

Amazon Rekognition 可让您使用输入人脸在存储人脸集合中搜索匹配的人脸。首先,将检测到的人脸信息存储在称为“集合”的服务器端容器中。集合存储单张人脸和单个用户(同一个人有几张人脸)。单张人脸以人脸向量的形式存储,人脸向量是人脸的数学表示(不是人脸的实际图像)。同一个人的不同图像可用于创建多个人脸向量并存储在同一集合中。然后,您可以汇总同一个人的多个人脸向量来创建用户向量。用户向量可以提供更高的人脸搜索精确度,并提供更可靠的描绘,包括不同程度的光照、锐度、姿势、外观等。

创建集合后,您可以使用输入面容在集合中搜索匹配的用户向量或人脸向量。与针对单个人脸向量进行搜索相比,根据用户向量进行搜索可以显著提高准确性。您可以使用在图像、存储视频和流视频中检测到的人脸来搜索存储的人脸向量。您可以使用在图像中检测到的人脸来搜索存储的用户向量。

要存储人脸信息,您需要执行以下操作:

  1. 创建集合 – 要存储人脸信息,您必须先在您账户的其中一个 AWS 区域创建 (CreateCollection) 人脸集合。在调用 IndexFaces 操作时指定此人脸集合。

  2. 索引人脸 – IndexFaces 操作可检测图像中的人脸,提取人脸向量并将其存储在集合中。您可使用此操作检测图像中的人脸,并将有关检测到的人脸特征的信息保存到集合中。这是基于存储的 API 操作示例,因为服务会将人脸向量信息存储在服务器上。

要创建用户并将多个人脸向量与用户关联,您需要执行以下操作:

  1. 创建用户 – 必须先使用 CreateUser 创建用户。您可以通过将同一个人的多个人脸向量汇总到一个用户向量中来提高人脸匹配的准确性。您最多可以将 100 个人脸向量与一个用户向量相关联。

  2. 关联人脸 – 创建用户后,您可以使用 AssociateFaces 操作向该用户添加现有人脸向量。人脸向量必须与用户向量位于同一个集合中,才能与该用户向量相关联。

创建集合并存储人脸和用户向量后,您可以使用以下操作来搜索匹配的人脸:

注意

集合存储人脸向量,这些向量是人脸的数学表示。集合不存储人脸图像。

下图根据您使用集合的目标显示了调用操作的顺序:

为了更大限度地提高与用户向量匹配的精度:

该图描绘了在集合中存储和搜索用户人脸向量,列出了诸如 CreateCollection、IndexFaces、CreateUser、AssociateFaces、SearchUsersByImage 和 SearchUsers 之类的操作。

为了与单个人脸向量进行高精度匹配:

该图描绘了在集合中存储和搜索人脸,列出了诸如 CreateCollection、IndexFaces、StartFaceSearch、CreateStreamProcessor、SearchFacesByImage 和 SearchFaces 之类的操作。

在许多情况下都可以使用集合。例如,您可以使用 IndexFacesAssociateFaces 操作创建一个人脸集合,用于存储从扫描的员工徽章图像和政府颁发的 ID 中检测到的人脸。当员工进入大楼时,将捕获员工的人脸图像,并将此图像发送到 SearchUsersByImage 操作。如果人脸匹配得到了足够高的相似度得分(例如 99%),则可对员工进行身份验证。