Bootstrap

【进阶OpenCV】 (17)-- Dlib库 --实现人脸检测

Dlib库

Dlib提供了丰富的图像处理计算机视觉工具,如面部特征检测、物体检测、图像变换等,这些工具使得开发者能够轻松地进行各种图像处理任务。

一、Dlib库安装

  1. pip install dlib –i 镜像地址

  2. 找到dlib库的whl文件进行安装

二、实现人脸检测

  • 图片

在这里插入图片描述

1. 生成人脸检测器

使用get_frontal_face_detector()函数方法生成人脸检测器:

该函数方法使用HOG算法、线性分类器、金字塔图像结构和滑动窗口检测等技术,比opencv提供的harr级联分类器效果更好。

import cv2
import dlib
detector = dlib.get_frontal_face_detector() # 构造脸部位置检测器HOG
img = cv2.imread('pic.jpg')

2. 检测人脸

  • 函数
faces = detector(img,n)使用人脸检测器返回检测到的人脸框
  • 参数
-- img:待检测的可能含有人脸的图像
-- n:表示采样上采样的次数。上采样会让图像变大,能够检测到更多的人脸,提高小人脸的检测效果
     通常建议设置为01.较大的值会增加检测的准确性,但会降低处理速度
-- 返回值faces:返回检测图像中的所有人脸框
  • 代码
faces = detector(img,1)
for face in faces: # 对每个人脸框进行逐个处理
    # 获取人脸框的坐标
    x1 = face.left()
    y1 = face.top()
    x2 = face.right()
    y2 = face.bottom()
    # 绘制人脸框
    cv2.rectangle(img,(x1,y1),(x2,y2),(0,255,0),2)

3. 显示人脸

# 显示捕获到的各个人脸框
cv2.imshow('result',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

总结

本篇介绍了如何通过Dlib库提供的get_frontal_face_detector()函数方法进行人脸检测。

;