先安装依赖库dlib、face_recognition、cv2
下载wheel文件:
python3.6:
dlib-19.7.0-cp36-cp36m-win_amd64.whl: https://drfs.ctcontents.com/file/1445568/768652503/68cb5d/Python/dlib-19.7.0-cp36-cp36m-win_amd64.whl
python3.7:
dlib-19.17.99-cp37-cp37m-win_amd64.whl: https://drfs.ctcontents.com/file/1445568/768652504/b726a5/Python/dlib-19.17.99-cp37-cp37m-win_amd64.whl
python3.8:
dlib-19.19.0-cp38-cp38-win_amd64.whl.whl: https://drfs.ctcontents.com/file/1445568/768652508/77e657/Python/dlib-19.19.0-cp38-cp38-win_amd64.whl.whl
再使用pip安装face_recognition、cv2
-
pip install opencv-python
-
pip install face-recognition
比较两张图片
-
import cv2
-
import face_recognition
-
-
def find_face_encodings(image_path):
-
# reading image
-
image = cv2.imread(image_path)
-
-
# get face encodings from the image
-
face_enc = face_recognition.face_encodings(image)
-
-
# return face encodings
-
return face_enc[0]
-
-
# getting face encodings for first image
-
image_1 = find_face_encodings("image_1.png")
-
-
# getting face encodings for second image
-
image_2 = find_face_encodings("image_2.png")
-
-
# checking both images are same
-
is_same = face_recognition.compare_faces([image_1], image_2)[0]
-
print(f"Is Same: {is_same}")
-
if is_same:
-
# finding the distance level between images
-
distance = face_recognition.face_distance([image_1], image_2)
-
distance = round(distance[0] * 100)
-
-
# calcuating accuracy level between images
-
accuracy = 100 - round(distance)
-
-
print("The images are same")
-
print(f"Accuracy Level: {accuracy}%")
-
else:
-
print("The images are not same")
输出:
Is Same: True
The images are same
Accuracy Level: 70%
转载:https://blog.csdn.net/qq_38316655/article/details/128730999
查看评论