图像特征(三) Haar-Like特征
Haar-like特征
Haar-like特征最早应用于人脸表示,Haar特征分为三类:边缘特征、线性特征和对角特征,组合成特征模板。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征能由矩形特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧要比鼻梁颜色要深,嘴巴比周围颜色要深等。但矩形特征只对一些简单的图形结构,如如边缘,线段较敏感,所以只能描述特定走向(水平、垂直、对角)的结构。
对于图中的A、B和D这类特征,特征数值计算公式为:v=sum白-sum黑,而对于C来说,计算公式如下:v=sum白-2×sum黑,之所以将黑色区域像素和乘以2,是为了使两种矩形区域中像素数目一致。
通过改变特征模板的大小和位置,可在图像子窗口中穷举出大量的特征。上图的特征模板称为特征原型;特征原型在图像子窗口中扩展(平移伸缩)得到的特征称为矩形特征;矩形特征的值称为特征值。
矩阵特征可位于图像任意位置,大小也可以任意改变,所以矩形特征值是矩形模板类别,矩形位置和矩形大小这三个因素的函数。故类别、大小和位置的变化,使得很小的检测窗口含有非常多的矩形特征。如:在24*24像素大小的检测窗口内矩形特征数量可以达到16万个。这样就有两个问题需要解决了:
(1)如何快速计算这么多的特征
积分图
(2)哪些矩形特征才是对分类器分类最有效的(如adaboost)
Haar-like特征的计算-积分图
积分图就是只遍历一次图像就可以求出图像中所有区域像素和的快速算法,大大的提高了图像特征值计算的效率。
积分图主要的思想是将图像从起点开始到各个点所形成的矩形区域像素之和作为一个数组的元素保存在内存中,当要计算某个区域的像素和时可以直接索引数组的元素,不用重新计算这个区域的像素和,从而加快了计算。
积分图是一种能够描述全局信息的矩阵表示方法。积分图的构造方式是位置(i,j)处的值ii(i,j)是原图像(i,j)左上角方向所有像素的和:
如下图所示:计算矩形D内所有像素灰度积分,则可由各点的积分图像值得到:
Sat3=A+B
Sat4=A+B+C+D
所以有:
D=Sat1-Sat2-Sat3+Sat4
所以,无论矩形的尺寸大小,只需要查找积分图像4次就可以求得任意矩形内像素的和。而且在进行多尺度检测时,仍然在任意尺度搜索。在实现时只需按行或按列遍历整张图像一次就可以得到这张图像的积分图,避免了算法的耗时问题。