要索引属于同一人脸的多张图片,您可以使用AWS Rekognition的人脸集合(Face Collection)功能。以下是一个解决方法的代码示例:
首先,您需要创建一个人脸集合:
import boto3
# 创建Rekognition客户端
rekognition_client = boto3.client('rekognition')
# 创建人脸集合
rekognition_client.create_collection(CollectionId='my-face-collection')
接下来,您可以使用IndexFaces API将图片添加到人脸集合中,并获取每个人脸的FaceId:
# 将图片添加到人脸集合中
response = rekognition_client.index_faces(
CollectionId='my-face-collection',
Image={
'S3Object': {
'Bucket': 'my-bucket',
'Name': 'image1.jpg'
}
}
)
# 获取FaceId
face_id = response['FaceRecords'][0]['Face']['FaceId']
然后,您可以使用获取的FaceId来进行搜索,以查找属于同一人脸的其他图片:
# 搜索人脸集合
response = rekognition_client.search_faces(
CollectionId='my-face-collection',
FaceId=face_id
)
# 获取匹配的人脸
matched_faces = response['FaceMatches']
for match in matched_faces:
print('相似度:', match['Similarity'])
print('匹配的FaceId:', match['Face']['FaceId'])
print('匹配的图片:', match['Face']['ExternalImageId'])
这样,您就可以通过索引属于同一人脸的多张图片了。
请注意,这只是一个基本的示例,您可能需要根据自己的需求进行适当的调整和扩展。另外,您需要确保您的AWS凭证正确配置,并具有适当的权限来访问Rekognition服务。