天天看点

图像特征— —Haar特征概念Haar特征数量计算Haar特征计算—积分图参考

概念

Haar特征分为:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征能由矩形特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。但矩形特征只对一些简单的图形结构,如边缘、线段较敏感,所以只能描述特定走向(水平、垂直、对角)的结构。

图像特征— —Haar特征概念Haar特征数量计算Haar特征计算—积分图参考

通过改变特征模板的大小和位置,可在图像子窗口中穷举出大量的特征。上图的特征模板称为“特征原型”;特征原型在图像子窗口中扩展(平移伸缩)得到的特征称为“矩形特征”;矩形特征的值称为“特征值”。

矩形特征可位于图像任意位置,大小也可以任意改变,所以矩形特征值是矩形模版类别、矩形位置和矩形大小这三个因素的函数。故类别、大小和位置的变化,使得很小的检测窗口含有非常多的矩形特征。对于一个给定的24X24的窗口,根据不同的位置,以及不同的缩放,可以产生超过160,000个特征。

Haar特征数量计算

如图所示的一个m*m大小的子窗口,可以计算在这么大的子窗口内存在多少个矩形特征。

图像特征— —Haar特征概念Haar特征数量计算Haar特征计算—积分图参考

以 m×m 像素分辨率的检测器为例,其内部存在的满足特定条件的所有矩形的总数可以这样计算:

对于 m×m 子窗口,我们只需要确定了矩形左上顶点A(x1,y1)和右下顶点B(x2,y2) ,即可以确定一个矩形;如果这个矩形还必须满足下面两个条件(称为(s, t)条件,满足(s, t)条件的矩形称为条件矩形):

1) x 方向边长必须能被自然数s 整除(能均等分成s 段)

2) y 方向边长必须能被自然数t 整除(能均等分成t 段)

则这个矩形的最小尺寸为s×t 或t×s, 最大尺寸为[m/s]×s×[m/t]×t 或[m/t]×t×[m/s]×s;其中[ ]为取整运算符。

我们通过下面两步就可以定位一个满足条件的矩形:

图像特征— —Haar特征概念Haar特征数量计算Haar特征计算—积分图参考

由上分析可知,在m×m 子窗口中,满足(s, t)条件的所有矩形的数量为:

图像特征— —Haar特征概念Haar特征数量计算Haar特征计算—积分图参考

实际上,(s, t)条件描述了矩形特征的特征,下面列出了不同矩形特征对应的(s, t)条件:

图像特征— —Haar特征概念Haar特征数量计算Haar特征计算—积分图参考
图像特征— —Haar特征概念Haar特征数量计算Haar特征计算—积分图参考

下面以 24×24 子窗口为例,具体计算其特征总数量:

图像特征— —Haar特征概念Haar特征数量计算Haar特征计算—积分图参考

下面列出了,在不同子窗口大小内,特征的总数量:

图像特征— —Haar特征概念Haar特征数量计算Haar特征计算—积分图参考

Haar特征计算—积分图

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

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

积分图是一种能够描述全局信息的矩阵表示方法。积分图的构造方式是位置(x,y)处的值ii(x,y)是原图像(x,y)左上角方向所有像素的和:

图像特征— —Haar特征概念Haar特征数量计算Haar特征计算—积分图参考

积分图构建算法:

图像特征— —Haar特征概念Haar特征数量计算Haar特征计算—积分图参考

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

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

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

s(x,y)=s(x,y-1)+i(x,y)

ii(x,y)=ii(x-1,y)+s(x,y)

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

图像特征— —Haar特征概念Haar特征数量计算Haar特征计算—积分图参考

积分图构造好之后,图像中任何矩阵区域的像素累加和都可以通过简单运算得到如图所示。

图像特征— —Haar特征概念Haar特征数量计算Haar特征计算—积分图参考

Haar特征值无非就是两个矩阵像素和的差,同样可以在常数时间内完成。所以矩形特征的特征值计算,只与此特征矩形的端点的积分图有关,所以不管此特征矩形的尺度变换如何,特征值的计算所消耗的时间都是常量。这样只要遍历图像一次,就可以求得所有子窗口的特征值。

参考

http://blog.csdn.net/zouxy09/article/details/7929570

继续阅读