Skip to main content

加载预训练的 Haar Cascade 分类器用于面部检测

note

本文档由 AI 翻译。如您发现内容有误或有改进建议,欢迎通过页面下方的评论区,或在以下 Issue 页面中告诉我们:https://github.com/Seeed-Studio/wiki-documents/issues

简介

使用 Haar Cascade 方法 进行人脸检测是计算机视觉中的一项关键技术,它利用机器学习模型来识别面部特征。该方法依赖于基于 Haar 特征训练的级联分类器,从而能够快速准确地识别图像和视频流中的人脸。其广泛应用涵盖了多个领域,包括 用于安全和身份验证的人脸识别技术、视频监控系统,甚至摄影软件中基于检测到的人脸进行自动标记和分类。Haar Cascade 方法因其计算效率高而备受青睐,非常适合在各种场景中进行实时人脸检测,为面部分析和识别技术的进步做出了重要贡献。

开始准备

在开始这个项目之前,您需要按照以下说明提前准备好硬件和软件。

硬件准备

软件准备

我们推荐从官方网站安装 Raspberry Pi 64 位操作系统的 BullesyeBullseye 版本。如果您希望安装新的 Raspbian 操作系统,请按照此 指南 中的步骤操作。

note

我们强烈建议您先查看我们之前的教程 OpenCV 入门,因为本教程是我们系列教程的延续。

什么是 Haar Cascade 方法?

在 OpenCV 中,Haar Cascade 方法是一种基于机器学习的面部检测算法。它通过在正样本和负样本图像上训练一个级联分类器,使其能够识别面部的特征和模式。级联由多个阶段组成,每个阶段包含一组弱分类器,这些分类器逐步排除非面部区域,从而使检测过程更加高效。Haar-like 特征类似于深浅区域的矩形模式,是识别对象(如面部)的基础。一旦训练完成,该级联可以快速应用于图像或视频帧进行面部检测。由于其准确性和速度,该方法被广泛应用于各种场景,包括实时面部检测和识别。

如果您想了解更多,请参考此 文档

让我们运行代码

确保您处于正确的文件夹中。如果不是,请执行以下命令:

cd Seeed_Python_ReTerminal/samples/Opencv_and_piCam

或者,您也可以使用 Thonny IDE 来运行 Python 脚本。

python facedetection_pi.py

以下是完整的代码片段供您参考:

import cv2
from picamera2 import Picamera2

face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

picam2 = Picamera2()
picam2.preview_configuration.main.size = (1280, 720)
picam2.preview_configuration.main.format = "RGB888"
picam2.preview_configuration.align()
picam2.configure("preview")
picam2.start()

try:
while True:
im = picam2.capture_array()
cv2.imshow("Camera", im)

# 将图像转换为灰度图以进行面部检测
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)

# 执行面部检测
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5, minSize=(30, 30))

# 在检测到的面部周围绘制矩形
for (x, y, w, h) in faces:
cv2.rectangle(im, (x, y), (x+w, y+h), (255, 0, 0), 2)

# 显示带有面部检测的图像
cv2.imshow("Face Detection", im)

# 按下 'q' 键时退出循环
if cv2.waitKey(1) == ord('q'):
break

finally:
# 释放资源
cv2.destroyAllWindows()
picam2.stop()
picam2.close()

如果您想找到更多的 Haar Cascade XML 文件进行尝试,请参考此 链接

应用

Haarcascade 最初设计用于实时面部检测,经过改进后能够应对现代挑战。创新者已将其功能扩展到包括 口罩检测,这对于公共卫生措施至关重要。此外,该技术已被优化用于 车牌检测,特别是在硬件资源有限的环境中,这种功能尤为重要。这些改进展示了 Haarcascade 在满足计算机视觉应用中多样化需求方面的灵活性和高效性。

技术支持

感谢您选择我们的产品!我们致力于为您提供多种支持,以确保您使用我们的产品时尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...