2025年3月25日 星期二 甲辰(龙)年 月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

【dlib库】进行人脸检测+人脸关键点检测+人脸对齐

时间:04-13来源:作者:点击数:40

原图像:

在这里插入图片描述

1. 人脸检测

  • import cv2
  • import dlib
  • import matplotlib.pyplot as plt
  • # 获取图片
  • my_img = cv2.imread('my_img.jpg')
  • # BGR to RGB
  • my_img = cv2.cvtColor(my_img, cv2.COLOR_BGR2RGB)
  • # 使用特征提取器get_frontal_face_detector
  • detector = dlib.get_frontal_face_detector()
  • dets = detector(my_img, 1)
  • for det in dets:
  • # 将框画在原图上
  • # cv2.rectangle 参数1:图片, 参数2:左上角坐标, 参数2:左上角坐标, 参数3:右下角坐标, 参数4:颜色(R,G,B), 参数5:粗细
  • my_img = cv2.rectangle(my_img, (det.left(),det.top()), (det.right(),det.bottom()), (0,255,0), 5)
  • # plt.figure(figsize=(5,5))
  • plt.imshow(my_img)
  • plt.show()
在这里插入图片描述

2. 人脸关键点检测

使用关键点模型需要提前下载此模型,并解压得到shape_predictor_68_face_landmarks.dat

下载地址:http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2

  • # 人脸检测器
  • predictor = dlib.shape_predictor(r'./shape_predictor_68_face_landmarks.dat')
  • for det in dets:
  • shape = predictor(my_img, det)
  • # 将关键点绘制到人脸上
  • for i in range(68):
  • cv2.putText(my_img, str(i), (shape.part(i).x, shape.part(i).y), cv2.FONT_HERSHEY_DUPLEX, 0.3, (0, 255, 255), 2, cv2.LINE_AA)
  • cv2.circle(my_img, (shape.part(i).x, shape.part(i).y), 1, (0, 0, 255))
  • plt.imshow(my_img)
  • plt.show()
在这里插入图片描述

3. 第三步、人脸对齐

  • # 人脸对齐
  • my_img = dlib.get_face_chip(my_img, shape, size = 150)
  • plt.imshow(my_img)
  • plt.show()
在这里插入图片描述
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门