OpenCV 中的人脸检测与识别技术详解
1. 计算机视觉与 Haar 级联
计算机视觉让许多听起来很未来感的任务成为现实,人脸检测(在图像中定位人脸)和人脸识别(将人脸识别为特定的人)就是其中两项。OpenCV 实现了多种用于人脸检测和识别的算法,这些算法在从安全到娱乐的各种现实场景中都有应用。
在对物体进行分类和跟踪其位置时,我们需要抽象出图像细节以获得稳定的分类和跟踪结果,这些抽象被称为特征。Haar 类特征常用于实时人脸检测,每个 Haar 类特征描述了相邻图像区域之间的对比度模式,如边缘、顶点和细线等都会产生特定的特征。一些特征具有独特性,通常出现在某类物体(如人脸)中,而不出现在其他物体中,这些独特特征可以组织成一个级联结构,最高层包含最具独特性的特征,使分类器能够快速排除不具备这些特征的对象。
为了使 Haar 级联分类器具有尺度不变性,会保持窗口大小不变,对图像进行多次缩放,原始图像和缩放后的图像构成图像金字塔。不过,OpenCV 实现的 Haar 级联对旋转或透视变化的鲁棒性较差。
2. 获取 Haar 级联数据
OpenCV 4 源代码或预打包版本中应包含 data/haarcascades 子文件夹。若找不到该文件夹,可参考相关安装说明获取 OpenCV 4 源代码。
该文件夹包含可由 cv2.CascadeClassifier 加载的 XML 文件,该类的实例将 XML 文件解释为 Haar 级联,为特定类型的对象(如人脸)提供检测模型。找到 data/haarcascades 后,需为项目创建一个目录,
OpenCV人脸检测与识别详解
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



