人脸检测特征-haar特征

哈尔特征的官方解释这里就不费口舌了,这个方法最主要的优点就是可以被快速的计算,所以应用在很多实时系统中。

如图中所示,哈尔特征分为三大类:

(1) 边缘特征

(2)线性特征

(3)中心对称特征

特征值 = 白-黑

既图中白色矩形内的像素和-黑色矩形内的像素和,这里是在白色矩形和黑色矩形大小相等的情况下。如果白色矩形和黑色矩形大小不一样,则要进行归一化处理,使黑白点像素个数相同,比如2-(a)所示的特征,就要将黑色矩形的像素和乘以2再进行计算。

人脸检测特征-haar特征_第1张图片

下图中是从Opencv中训练好的分类器中提取出的几个特征矩形。第一个矩形最能代表人眼和鼻子的特征。眼睛比脸颜色要深,鼻梁两侧比鼻梁颜色要深。

               

哈尔特征的计算离不开积分图integral image,利用积分图能够在多种尺度下,使用相同的时间来计算不同的特征。

积分图中每一个位置对应的值是该位置图像左上所有的像素值之和。这样需要计算一次积分图,就可以快速的计算出哈尔特征值来。


下面我们结合opencv中已经训练好分类器,再描述一下haar特征值的计算。

- <feature>

<rects>

                          <_>3 7 14 4 -1._>

                          <_>3 9 14 2 2._> rects>

                    feature>

                      <threshold>4.0141958743333817e-003threshold>

                      <left_val>0.0337941907346249left_val>

                       < right_val > 0.8378106951713562 right_val >

两个矩形,分别表示黑色和白色区域。

rects: 第一第二位是起点(x,y)的坐标,第三位和第四位是矩形的宽和高,最后一个是系数,负数对应的是黑色矩形,2表示对已像素个数做归一化处理,haar特征就表示出来了。

threshold表示该弱分类器的对应的阈值,

其实图像是已经经过了归一化之后的图像,如果haart特征值大于right_val为若分类器的结果,否则左值left_val为弱分类器的结果。

你可能感兴趣的:(算法,图像处理)