DLib人脸识别素材脸

1、加载正脸检测器,使用dlib detector = dlib.get_frontal_face_detector()

2、加载人脸关键点检测器 sp = dlib.shape_predictor(predictor_path)

3、加载人脸识别模型 facerec = dlib.face_recognition_model_v1(face_rec_model_path)

4、保存候选人的人脸描述子

4.1、先通过候选人图像检测到候选人脸矩形框

 image = cv2.imread(faces_folder_path+'/'+filename)

gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

dets = detector(gray_image, 1)

dets保存的是图像中人脸的矩形框,可以有多个

4.2、通过人脸矩形框获取人脸的关键点(68个关键点)

 shape = sp(image, d)

4.3、人脸识别模型通过关键点获取人脸描述子

 face_descriptor = facerec.compute_face_descriptor(image, shape)

 4.4、把人脸描述子与人脸姓名分别一一对应保存在两个列表list中

candidate.append(filename.split('.')[0])

5   描述子转型为数组

d_test = numpy.array(face_descriptor)

5.1、被检测图像人脸描述子与候选人脸描述子之间计算欧氏距离

d for i in descriptors:

dist_ = numpy.linalg.norm(i - d_test)

dist.append(dist_)

5.2、保存欧式距离d,将d与候选人姓名组合成字典,对字典进行排序

.5.3、对距离进行阈值判断,并取距离最小的那个候选人姓名

你可能感兴趣的:(DLib人脸识别素材脸)