介绍
在本文中,我们将讨论在 OpenCV python 中使用 Haar Cascade(级联)实现人脸检测器。
识别图像中的给定对象称为对象检测。可以使用多种技术来完成此任务,但在本文中,我们将使用带有预训练 XML 文件的 haar 级联。这是执行对象检测的最简单方法。
Haar 级联已用于低边缘设备上的对象检测,它是 OpenCV 中最流行的对象检测算法之一。
Haar 级联计算量不大;因此它适用于计算能力较小的小型设备。
Haar 级联
什么是 Haar 级联,它是如何工作的?
Haar 级联 是一种基于特征的对象检测算法,用于从图像中检测对象。Cascade 函数在大量正负图像上进行训练以进行检测。
该算法不需要大量计算并且可以实时运行。我们可以为动物、汽车、自行车等自定义对象训练自己的级联函数。
Haar 级联 不能用于人脸识别,因为它只能识别匹配的形状和大小。
Haar 级联使用 Cascade 函数和 Cascade 窗口。它尝试计算每个窗口的特征并进行正负分类。如果窗口可以是对象的一部分,则为正,否则为负。
Haar 级联可以理解为二进制分类器。它为那些可以成为我们对象一部分的级联窗口指定正值,为那些不能成为我们对象的一部分的窗口指定负值。
Haar 级联可以实时工作。
与现代对象检测算法相比,Haar 级联并不准确。
它检测到许多误报。这可以在一定程度上进行调整,但不能完全删除。
实现起来非常简单。
Haar 级联最大的缺点是它的误报检测。
预训练的 Haar 级联
有许多预训练的 haar 级联文件使实施变得超级容易。我们也可以训练自己的 haar 级联,但这需要大数据进行训练。
OpenCV 库在 GitHub 上管理所有流行的 haar 级联预训练文件的存储库
链接地址:https://github.com/opencv/opencv/tree/master/data/haarcascades
这些文件可用于各种对象检测任务,例如:
人脸检测
眼睛检测
车辆检测
鼻子/嘴巴检测
身体检测
车牌检测