图像特征提取3—Haar特征

来源:互联网 发布:windows 垃圾清理 编辑:程序博客网 时间:2024/05/17 02:24

1、Haar-like特征
  Haar-like特征,即很多人常说的Haar特征,是计算机视觉领域一种常用的特征描述算子。它最早是由Papageorigiou等人用于人脸描述。目前常用的Haar-like特征可以分为三类:线性特征、边缘特征、点特征(中心特征)、对角线特征。
  特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征能由矩形特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。但矩形特征只对一些简单的图形结构,如边缘、线段较敏感,所以只能描述特定走向(水平、垂直、对角)的结构。如下图所示:
  1
  计算特征很简单,就是拿黑色部分的所有的像素值的和减去白色部分所有像素值的和。得到的就是一个特征值。 对于图中的1, 2(bdfh)这类特征,特征数值计算公式为:v=Sum白-Sum黑,而对于2(aceg)来说,计算公式如下:v=Sum白-2*Sum黑;之所以将黑色区域像素和乘以2,是为了使两种矩形区域中像素数目一致。

  通过改变特征模板的大小和位置,可在图像子窗口中穷举出大量的特征。上图的特征模板称为“特征原型”;特征原型在图像子窗口中扩展(平移伸缩)得到的特征称为“矩形特征”;矩形特征的值称为“特征值”。矩形特征可位于图像任意位置,大小也可以任意改变,所以矩形特征值是矩形模版类别、矩形位置和矩形大小这三个因素的函数。故类别、大小和位置的变化,使得很小的检测窗口含有非常多的矩形特征,如:在24*24像素大小的检测窗口内矩形特征数量可以达到16万个。

2.Haar-like特征的计算—积分图
在工程中需要进行快速计算某个矩形内的像素值的和,这就需要引入积分图的概念。 积分图主要的思想是将图像从起点开始到各个点所形成的矩形区域像素之和作为一个数组的元素保存在内存中,当要计算某个区域的像素和时可以直接索引数组的元素,不用重新计算这个区域的像素和,从而加快了计算(这有个相应的称呼,叫做动态规划算法)。积分图能够在多种尺度下,使用相同的时间(常数时间)来计算不同的特征,因此大大提高了检测速度。

(1)使用积分图加速计算特征
首先给出积分图的定义:
ii(x,y)=∑x′≤x,y′≤yi(x′,y′)
其中I(x’,y’)为图像在点(x’,y’)处的像素值。
为了节约时间,减少重复计算,则图像I的积分图可按如下递推公式计算:3
上面这两个递归公式是什么意思呢?就是首先每一行都递归计算s(x,y)(公式中也可以看出是按行计算的),每一行首先都是计算s,计算完毕之后在每一列都计算ii(x,y)。这样扫描下去就可以计算好了积分图了。这种方法跟动态规划的思想有点类似。
(2)计算方块内的像素和
4
图中的大框是积分图,为了讲解如何计算任意矩形内的像素值,我们画出四个区域A、B、C、D,并且图中有四个位置分别为1、2、3、4。我们要计算D区域内部的像素和该怎么计算?

我们记位置4的左上的所有像素为rectsum(4),那么
D位置的像素之和就是rectsum(1)+rectsum(4)-(rectsum(2)+rectsum(3))。

  是不是有了积分图,就可以很快地计算出了任意矩形内的像素之和了?我们前面提到有三种类型的Haar-like特征。 其中二矩形特征需要6次查找积分图中的值,而三矩形特征需要8次查找积分图中的值,而对角的特征需要9次。

3.Haar-like矩形特征拓展
  Lienhart R.等对Haar-like矩形特征库作了进一步扩展,加入了旋转45。角的矩形特征。扩展后的特征大致分为4种类型:边缘特征、线特征环、中心环绕特征和对角线特征:5
 (1)45°旋角的矩形特征计算:
  对于45°旋角的矩形,我们定义RSAT(x,y)为点(x,y)左上角45°区域和左下角45°区域的像素和。
  6
  用公式可以表示为:
  个
  为了节约时间,减少重复计算,可按如下递推公式计算:
  
  而计算矩阵特征的特征值,是位于十字行矩形RSAT(x,y)之差。可参考下图:
  10

0 0
原创粉丝点击