Haar-like算法原理解析

Haar-like是一种非常经典的特征提取算法,尤其是它与AdaBoost组合使用时对人脸检测有着不错的效果,虽然只是在当时而言。OpenCV也对AdaBoost与Haar-like组成的级联人脸检测做了封装,所以一般提及Haar-like的时候,一般都会和AdaBoost,级联分类器,人脸检测,积分图等等一同出现。但是Haar-like本质上只是一种特征提取算法,下面我们只从特征提取的角度聊一聊Haar-like。它一共涉及到3篇经典的论文。

基本haar特征
最原始的Haar-like特征在2002年的《A general framework for object detection》提出,它定义了四个基本特征结构,如下A,B,C,D所示,可以将它们理解成为一个窗口,这个窗口将在图像中做步长为1的滑动,最终遍历整个图像。 

扩展haar特征


在基本的四个haar特征基础上,文章《An extended set of Haar-like features for rapid object detection》对其做了扩展,将原来的4个扩展为14个。这些扩展特征主要增加了旋转性,能够提取到更丰富的边缘信息。

积分图计算


Haar的第三个经常提及的概念,就是积分图了,首先积分图这个东西和Haar一点关系都没有,它们是两个独立的概念。 
之所以积分图与Haar联系到一起是因为一篇文章《Rapid object detection using a boosted cascade of simple features》,它使用积分图的方法快速计算Haar特征。下面我们先看一下什么时候积分图: 
积分图是(Integral Image)类似动态规划的方法,主要的思想是将图像从起点开始到各个点所形成的矩形区域像素之存在数组中,当要计算某个区域的像素和时可以直接从数组中索引,不需要重新计算这个区域的像素和,从而加快了计算。
 

维度计算


我们知道了Harr特征的计算过程,它的维度就很好计算出来了。 
Haar的总维度应该是每一种窗口产生的维度的和; 
而每一种窗口产生的维度又是它遍历所有比例之后的维度和; 
一个窗口固定一个比例时的维度就是滑动遍历整个图像所产生的维度和。 
【图像处理】计算Haar特征个数这篇博客中给出了详细的计算过程,在这里就不做重复了。
 

猜你喜欢

转载自blog.csdn.net/qq_35860352/article/details/83827716