级联分类器包括两个:训练和检测;
这里主要是介绍检测部分;
关于CascadeClassifier的简介:
CascadeClassifier是opencv下objdetect模块中用来做目标检测的级联分类器的一个类;简而言之是滑动窗口机制+级联分类器的方式;早期opencv版本仅支持haar特征的目标检测,分别在opencv2.2和2.4之后开始支持LBP和HOG特征的目标检测。
Haar特征:
类Haar-like特征描述如下图:
在所有缩放尺度下,这些特征组成了boosting分类器使用的全部“原材料”。他们从原始灰度图像的积分图中快速计算得出。
LBP特征:
LBP是一种描述图像局部纹理特征的算子,被用于Viola-Jones检测器,回想Haar小波,它是在一小块邻域上通过小波变换的特征向量,而LBP在构造特征向量与此不同,在一个长宽都为3的倍数的矩形上,将它分割成不相重叠的3*3的小块,在每一个小块上,用积分图计算像素和,然后将中心点像素与周围8个像素点比较得到一个8位的特征值,用来描述相应矩形的特征。
HOG特征:
局部归一化的梯度方向直方图,是一种对图像局部重叠区域的密集型描述符, 它通过计算局部区域的梯度方向直方图来构成特征。
本质:统计图像局部区域的梯度方向信息来作为该局部图像区域的表征。
解读CascadeClassifier源代码:
打开:opencvXXX/include/opencv2/objdetect.hpp: