Python中的face_landmarks()函数用于面部识别
发布时间:2023-12-27 07:44:23
Python中的face_landmarks()函数是dlib库中的一个函数,用于识别面部特征点。该函数使用dlib库中的形状预测器,并且可以用于检测面部的68个关键点,包括眼睛、眉毛、鼻子、嘴巴、下巴等。
使用face_landmarks()函数的示例代码如下:
import dlib
import cv2
# 加载训练好的面部特征预测器
predictor = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat')
# 加载输入图片
image = cv2.imread('input.jpg')
# 将输入图片转换成灰度图片
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 使用dlib的人脸检测器检测输入图片中的人脸
detector = dlib.get_frontal_face_detector()
faces = detector(gray)
# 遍历检测到的人脸
for face in faces:
# 使用面部特征预测器找到人脸关键点
landmarks = predictor(gray, face)
# 遍历关键点并绘制在输入图片上
for point in landmarks.parts():
cv2.circle(image, (point.x, point.y), 2, (0, 255, 0), -1)
# 显示输出图片
cv2.imshow("Output", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上述代码中,首先加载了训练好的面部特征预测模型'shape_predictor_68_face_landmarks.dat',然后读取输入图片并将其转换为灰度图像。
接下来,使用dlib的人脸检测器检测输入图片中的人脸,得到一个人脸的列表。然后,遍历每个人脸,使用face_landmarks()函数找到该人脸的关键点。
最后,遍历关键点,并在输入图片上绘制出它们。在这个例子中,我们使用绿色的圆圈绘制每个关键点。
最后,显示输出的图片,并等待用户按下任意键关闭窗口。
这个示例演示了如何使用face_landmarks()函数在输入图片中检测和绘制面部特征点。你可以使用这些面部特征点进行人脸分析、情绪检测、面部表情识别等任务。
