Haar分类器采用的是Viola-Jones人脸检测算法
该算法需要用到大量的积极图片(包含人脸的图片)和消极图片(不包含人脸的图片),从中提取类Haar特征( Haar-like features),经过反复训练,最终得出一个级联检测器,以此来检测人脸。
Haar分类器使用Haar-like小波特征和积分图方法进行人脸检测,并与AdaBoost训练出的强分类器进行级联,增强了人脸检测的准确率。
Haar(哈尔)特征分为三类:边缘特征、线性特征、中心特征和对角线特征。
OpenCV中进行基于 Haar 的人脸检测使用detectMultiScale()函数
格式:cv2.CascadeClassifier.detectMultiScale(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize]]]]])
参数说明:
image : 表示的是要检测的输入图像
scaleFactor : 表示每次图像尺寸减小的比例
minNeighbors:表示每一个目标至少要被检测到几次才算是真的目标(因为周围的像素和不同的窗口大小都可以检测到人脸)?
flags:可以取如下这些值:
CASCADE_DO_CANNY_PRUNING=1, 利用canny边缘检测来排除一些边缘很少或者很多的图像区域
CASCADE_SCALE_IMAGE=2, 正常比例检测
CASCADE_FIND_BIGGEST_OBJECT=4, 只检测最大的物体
CASCADE_DO_ROUGH_SEARCH=8 初略的检测
minSize:为目标的最小尺寸
maxSize:为目标的最大尺寸?