我想用dlib录入两张不同的人脸,生成两个不同的csv文件,并识别出来,应该怎么做?
可以参考一下 觉得有帮助可以采纳一下
导入dlib和numpy库:
python
import dlib
import numpy as np
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat')
csv_file1 = open('face_data1.csv', 'w')
csv_file2 = open('face_data2.csv', 'w')
img1 = dlib.load_rgb_image('face1.jpg')
dets1 = detector(img1, 1)
for k, d in enumerate(dets1):
shape1 = predictor(img1, d)
face_descriptor1 = face_recognizer.compute_face_descriptor(img1, shape1)
np.savetxt(csv_file1, face_descriptor1)
img2 = dlib.load_rgb_image('face2.jpg')
dets2 = detector(img2, 1)
for k, d in enumerate(dets2):
shape2 = predictor(img2, d)
face_descriptor2 = face_recognizer.compute_face_descriptor(img2, shape2)
np.savetxt(csv_file2, face_descriptor2)
test_img = dlib.load_rgb_image('test_face.jpg')
dets = detector(test_img, 1)
for k, d in enumerate(dets):
shape = predictor(test_img, d)
face_descriptor = face_recognizer.compute_face_descriptor(test_img, shape)
face_data1 = np.loadtxt('face_data1.csv')
face_data2 = np.loadtxt('face_data2.csv')
dist1 = np.linalg.norm(face_data1 - face_descriptor, axis=1)
dist2 = np.linalg.norm(face_data2 - face_descriptor, axis=1)
if min(dist1) < min(dist2):
print('Face 1')
else:
print('Face 2')