比较两个人脸嵌入

问题描述 投票:0回答:2

我浏览了Pyimagesearch人脸识别教程, 但我的应用程序只需要比较两张脸, 我嵌入了两个面孔,如何使用 opencv 比较它们? 链接中提到了有关用于从面部提取嵌入的训练模型, 我想知道我应该尝试什么方法来比较两个人脸嵌入。

python-3.x opencv face-recognition
2个回答
5
投票

首先,您的情况与给定的教程类似,而不是多个图像,而是需要与测试图像进行比较的单个图像,

所以你真的不需要这里的训练步骤。

你可以做

# read 1st image and store encodings
image = cv2.imread(args["image"])
rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

boxes = face_recognition.face_locations(rgb, model=args["detection_method"])
encodings1 = face_recognition.face_encodings(rgb, boxes)

# read 2nd image and store encodings
image = cv2.imread(args["image"])
rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

boxes = face_recognition.face_locations(rgb, model=args["detection_method"])
encodings2 = face_recognition.face_encodings(rgb, boxes)


# now you can compare two encodings
# optionally you can pass threshold, by default it is 0.6
matches = face_recognition.compare_faces(encoding1, encoding2)

matches
将根据您的图像为您提供
True
False


2
投票

根据您提到的文章,您实际上可以仅使用face_recognition库来比较两张脸是否相同。

您可以使用比较脸部来确定两张图片是否具有相同的脸部

import face_recognition
known_image = face_recognition.load_image_file("biden.jpg")
unknown_image = face_recognition.load_image_file("unknown.jpg")

biden_encoding = face_recognition.face_encodings(known_image)[0]
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]

results = face_recognition.compare_faces([biden_encoding], unknown_encoding)
© www.soinside.com 2019 - 2024. All rights reserved.