目标检测的图像特征提取之二Haar特征

  • Post author:
  • Post category:其他

Haar-like特征

       分为三类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。haar特征反映的是图像的灰度变化情况。如脸部的一些特征能由矩形特征简单描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深。矩形特征只对一些简单的图形结构,如边缘、线段较敏感,所以只能描述特定走向(水平、垂直、对角)的结构。(见矩形模板图.jpg)对于图中A、B、D这类特征,特征数值计算公式为:v=Sum白-Sum黑,而对于C来说,计算公式为:v=sum白-2*sum黑(矩形区域中像素数目要一致)

       矩形特征可以位于图像任意位置,大小也可以任意改变,所以矩形特征值是矩形特征模板类别、矩形位置、矩形大小这三个因素的函数。故类别、大小和位置的变化使得很小的检测窗口含有非常多的矩形特征。如在24*24像素大小的检测窗口内矩形特征可以达到16万个。这样就有两个问题需要解决了:1)如何计算那么多特征—积分图;2)哪些矩形特征才是对分类器分类最有效的?—如通过AdaBoost算法来训练。

Haar-like特征的计算–积分图

        积分图就是只遍历一次图像就可以求出图像中所有区域像素和的快速算法,大大提高了图像特征值计算效率。

       积分图的主要思想是将图像从起点开始到各个点所形成的矩形区域像素之和作为一个数组的元素保存在内存中,当要计算某个区域的像素和时可以直接索引数组的元素,不用重新计算这个区域的像素和,从而加快计算。积分图能够在多种尺度下,使用相同的时间(常数时间)来计算不同的特征,因此大大提高了检测速度。

        积分图的构造方式是位置(i,j)处的值ii(i,j)(ii(i,j)是原图像(i,j)左上角方向所有像素的和)。

 

 积分图的构建算法:

1)用s(i,j)表示行方向的累加和,初始化s(i,-1)=0;

2)用ii(i,j)表示一个积分图像,初始化ii(-1,i)=0;

3)逐行扫描图像,递归计算每个像素(i,j)行方向的累加和s(i,j)和积分图像ii(i,j)的值

      s(i,j)=s(i,j-1)+f(i,j)

      ii(i,j)=ii(i-1,j)+s(i,j)

4)扫描图像一遍,当达到图像右下角像素时,积分图像ii就构造好了

       积分图构造好之后,图像中任何矩阵区域的像素累加和都可以通过简单运算得到。Haar-like特征值无非就是两个矩阵像素和的差,同样可以在常数时间内完成。所以矩形特征的特征值计算,只与此特征矩形的端点的积分图有关,所以不管此特征矩形的尺度变换如何,特征值的计算所消耗的时间都是常量。这样只要遍历图像一次,就可以求得所有子窗口的特征值。

 

 

 

 

 

 

 

 

 


版权声明:本文为lilixiang14原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。