使用dlib提取人脸特征需要以下几个步骤。
1.使用人脸检测器检测人脸来获得人脸框。可采用任何人脸检测方法,但需要符合dlib所要求的格式(本文采用之前使用的MTCNN方法)。
face_detector = dlib.get_frontal_face_detector()
boxs = face_detector(img,1)
2.定义dlib的特征点预测器shape_predector。dlib提供了两种特征点的预测器,即shape_predector_5_face_landmarks.dat和shape_predector_68_face_landmarks.dat,分别能够得到人脸的5个和68个特征点。下载链接:http://dlib.net/files/。
shape_predictor_5_face_landmarks = "./shape_predictor_5_face_landmarks.dat"
shape_predictor_68_face_landmarks = "./shape_predictor_68_face_landmarks.dat"
3.将原始图像和检测到的每个人脸框传给预测器,得到每个人脸的多个关键点,需要注意的是在没有使用dlib人脸检测方法时传给dlib的人脸框rect需符合dlib的要求。
shape_5 = face_5_landmarks(img, rects)
shape_68 = face_68_landmarks(img, rects)