欢迎访问宙启技术站
智能推送

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()函数在输入图片中检测和绘制面部特征点。你可以使用这些面部特征点进行人脸分析、情绪检测、面部表情识别等任务。