python的人脸识别库face_recognition

发布时间 2023-03-22 21:09:34作者: 河北大学-徐小波

代码:

import cv2
import numpy as np
import face_recognition

img_train = face_recognition.load_image_file('query/1679370481783.jpg')
img_train = cv2.cvtColor(img_train, cv2.COLOR_BGR2RGB)

img_test = face_recognition.load_image_file('query/14.jpg')
img_test = cv2.cvtColor(img_test, cv2.COLOR_BGR2RGB)

train_faces = face_recognition.face_locations(img_train)
test_faces = face_recognition.face_locations(img_test)

train_encodes = face_recognition.face_encodings(img_train, train_faces)
test_encode = face_recognition.face_encodings(img_test, test_faces)[0]

copy1 = img_train.copy()
copy2 = img_test.copy()

print('共检测到第%s张人脸' % len(train_faces))
for i,face in enumerate(train_faces):
    train_encode = train_encodes[i]
    flag = face_recognition.compare_faces([train_encode], test_encode, tolerance=0.5)[0]
    if flag:
        print('第%s张:匹配' % str(i+1))
        cv2.rectangle(copy1, (face[3], face[0]),(face[1], face[2]), (0,255,0), 1)
    else:
        print('第%s张:不匹配' % str(i+1))
        pass


cv2.imshow('base-img', copy1)
cv2.imshow('search-img', copy2)
cv2.waitKey(delay=0)

 

效果: