目录
一、dilb-models下载方法
先进入到davisking/dlib-models:dlib 示例程序的训练模型文件。 (github.com)
(如果进去github卡顿,建议使用watt toolkit加速,免费的)
这里我们下载三个模型bat(其他模型可以自行尝试)
二、代码实现
1、导入库
import cv2
import dlib
import numpy as np
2、数据
‘img_1.png’
3、主要代码
(注意:这里使用了生成的模型更小、更快、更平滑、更准确的模型)
shape_predictor_68_face_landmarks_GTX .dat
import cv2
import dlib
import numpy as np
# 读取图像
img = cv2.imread("img_1.png")
# 使用dlib检测人脸
detector = dlib.get_frontal_face_detector()
faces = detector(img, 0)
# 加载面部关键点预测器
predictor = dlib.shape_predictor(r'shape_predictor_68_face_landmarks_GTX .dat')
# 遍历检测到的每张脸
for face in faces:
# 预测面部关键点
shape = predictor(img, face)
# 创建包含面部关键点坐标的矩阵
lanmarks = np.matrix([[p.x, p.y] for p in shape.parts()])
# 遍历关键点并在图像上绘制圆圈和标签
for idx, point in enumerate(lanmarks):
pos = (point[0, 0], point[0, 1])
cv2.circle(img, pos, 2, (0, 255, 0))
cv2.putText(img, str(idx), pos, cv2.FONT_HERSHEY_SIMPLEX, 0.4, (255, 255, 255), 1)
# 显示包含绘制的面部关键点的图像
cv2.imshow("img", img)
cv2.waitKey(0)
cv2.destroyAllWindows()