Haar特征计算的一些见解

最近在目标探测与识别课上学了积分图和Haar特征的相关知识。刚学的时候,对Haar特征的数量计算有一些疑惑。后来查阅相关资料之后,恍然大悟了。下面分享一下我的见解:

积分图

这个就不用多说了。积分图尺寸与原图像尺寸一致,积分图上任意一点(x,y)的值就是原图像上从左上角到对应(x,y)位置所围成的矩形区域所有像素的灰度值之和。

由积分图计算Haar特征

使用积分图计算Haar特征,主要是为了加快计算速度。比如,在积分图的基础上计算某一矩形区域的像素值之和时,可以参考下图
Haar特征计算的一些见解
这里要注意的是,A区域(ii1)的右下角不在D区域里,在实际计算的时候要看仔细。
Haar特征主要有五个,分别是:
Haar特征计算的一些见解
上图中的黑白两色分布可能跟有些资料上刚好相反,不过实质是一样的。比如,人眼睛和眉毛之间以及嘴唇存在边缘特征一,鼻梁存在线性特征四
Haar特征计算的一些见解
在利用积分图计算Haar某一特征的时候,是用白色矩形区域的像素值之和减去黑色矩形区域的像素值之和(当然你也可以用黑色的减去白色的,这取决于自己的实际应用)。
这里以计算边缘特征1为例,
Haar特征计算的一些见解
计算结果应该是B区域的像素值之和减去A区域的像素值之和。

Haar特征值的数量及其计算

一幅2424大小的图像中含有的Haar特征总数量达到了162336个。具体的计算公式可以参考Haar特征与积分图
下面我以一幅3
3大小的图像介绍一下怎么算它的Haar边缘特征一。
Haar特征计算的一些见解
首先要确定Haar特征一的尺寸。
Haar特征计算的一些见解
特征一由上下两部分组成。因此特征一的高度必须能被2整除,即能够分成上下两份;而特征一的宽度没有特殊要求,视具体情况而定。
比如在33的图像上计算12大小的Haar特征一,过程如下
Haar特征计算的一些见解
每次计算都是矩形下半部分(视为白色区域)的像素值之和减去上半部分(视为黑色区域)的像素值之和。结果依次是0,0,0;0,-1,0 …
这样大小的特征算子在33的图像里能够滑动6次,也就是能得到6个特征值。
当然我们还能取2
2大小的算子在图像里滑动,能够滑动4次;还能取32大小的算子,能够滑动2次。再大的算子就超过了图像的尺寸,不能取了
因此在3
3大小的图像里,Haar特征一的特征值数量为6+4+2=12个,这与用公式计算得到的结果是一致的。
在实际应用中,按情况取固定尺寸的算子来滑动计算就好啦