人脸关键点检测
人脸关键点检测是给定人脸图像,定位出人脸面部的关键区域,包括眉毛、眼睛、鼻子、嘴巴、脸部轮廓等。
在face_predict下新建face-feature.py文件,读取照片并标记特征点。
加载被比较的图像
frame = face_recognition.load_image_file("Face_database/hyz/hyz.png")
查找图像中的所有面部特征
face_landmarks_list = face_recognition.face_landmarks(frame, face_locations = None, model ='large')
查找图像中的鼻子、左眼、右眼面部特征
face_landmarks_list = face_recognition.face_landmarks(frame, face_locations=
None, model='small')
print("该张图像中有 {} 张人脸。".format(len(face_landmarks_list)))
for face_landmarks in face_landmarks_list:
# 打印此图像中每个面部特征的位置
# 查找图像中所有面部特征的列表
facial_features = [
'chin',
'left_eyebrow',
'right_eyebrow',
'nose_bridge',
'nose_tip',
'left_eye',
'right_eye',
'top_lip',
'bottom_lip'
]
# 查找图像中鼻子、左眼、右眼面部特征的列表
# facial_features = [
# 'nose_tip',
# 'left_eye',
# 'right_eye',
# ]
# 在图像中描绘出人脸特征
for facial_feature in facial_features:
# 数据类型必须是int32
pts = np.array(face_landmarks[facial_feature], np.int32)
pts = pts.reshape((-1, 1, 2))
# 图像,点集,是否闭合,颜色,线条粗细
cv2.polylines(frame, [pts], False, (0, 0, 0), 2)
显示得到人脸后的图像
frame = frame[:, :, ::-1]
cv2.imshow("image", frame)
cv2.waitKey(0)