dlib.shape_predictor()关键点检测器

dlib.shape_predictor(args[‘shape_predictor’])
args[‘shape_predictor‘] 位置信息
返回训练好的人脸68特征点检测器

predictor(gray, rect)
gray 输入的8位灰度或RGB图像
rect 开始内部人脸检测的边界框的位置信息
返回68个特征点的位置

import dlib
import cv2

img = cv2.imread("image.jpg")

gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

detector = dlib.get_frontal_face_detector() 

dets = detector(gray_img, 1)

# 使用模型构建特征提取器
predictor = dlib.shape_predictor('data/data_dlib/shape_predictor_68_face_landmarks.dat/shape_predictor_68_face_landmarks.dat')

for i, d in enumerate(dets):
 # 使用predictor进行人脸关键点检测 shape为返回的结果
    shape = predictor(gray_img, d)
    
    for index, pt in enumerate(shape.parts()):
        print('Part {}: {}'.format(index, pt))
        pt_pos = (pt.x, pt.y)
        cv2.circle(img, pt_pos, 1, (255, 0, 0), 2)
        #利用cv2.putText标注序号
        font = cv2.FONT_HERSHEY_SIMPLEX
        cv2.putText(img, str(index+1),pt_pos,font, 0.3, (0, 0, 255), 1, cv2.LINE_AA)
 
cv2.imshow('img', img)
k = cv2.waitKey()
cv2.destroyAllWindows()

你可能感兴趣的:(人脸识别,python)