Adaboost人脸检测算法原理
在众多的检测方法中,Viola等提出的Adaboost人脸检测方法,从根本上解决了检测的速度问题,同时有较好的识别效果。它利用一个只有200个关键特征的集合,就能达到95%以上的检测率,检测一幅380×,这样的性能使它成为人脸检测最好的方法。
Viola人脸检测方法是一种基于积分图、AdaBoost算法和级联检测器的方法,方法框架可以分为以下三大部分:
(1)使用特征值表示人脸,使用积分图实现特征数值的快速计算;
(2)使用Adaboost算法挑选出一些最能代表人脸的矩形特征(弱分类器),按照加权投票的方式将弱分类器构造为一个强分类器;
(3)将训练得到的若干强分类器串联组成一个级联结构的层叠分类器,级联结构能有效地提高分类器的检测速度。
1特征值和积分图
在一个20×20(或其他大小)的图片提取一些简单的特征,并计算其特征值(如图1),方法是将白色区域内的像素和减去黑色区域。对于一些优势矩形特征来说,在人脸与非人脸图片的相同位置上,特征值的大小是不一样的,这些特征可以用来区分人脸和非人脸。
图1 一些矩形特征
图2是大部分矩形特征对人脸与非人脸样本的特征值分布曲线。大部分特征对人脸和非人脸样本的特征值为0的点几乎处于相同位置(%,%),且都在所有特征的中间范围。
这说明该矩形特征对于人脸和非人脸几乎没有分辨能力。
图(a) 人脸图像特征值分布
图(b) 非人脸图像特征值分布
图2 大部分矩形特征对人脸和非人脸图像的特征值分布曲线
图3是少数矩形特征对人脸与非人脸样本的特征值分布曲线。对于非人脸样本的分布,特征值为0的点处于所有特征的中间范围(%),这说明该特征也“看不到”非人脸的特点。
但是对于人脸样本,该特征表现了很一致的倾向性,%的特征在0点的一侧,与非人脸样本的相差34%。
这说明该特征能够分辨人脸和非人脸。
图(a) 人脸图像特征值分布
图(b) 非人脸图像特征值分布
图3 少数矩形特征对人脸和非人脸图像的特征值分布曲线
上述的分析说明,确实存在优势的矩形特征,能够在一定的置信范围内区分人脸和非人脸。
AdaBoost人脸检测算法引用了“积分图”的概念,这使得检测器中特征的计算非常快。如图所示:坐标点(x,y)的积分图定义为:
(1)
其中表示像素点的积分图,表示原始图像。通过下式迭代进行计算:
(2)
3)
其中表示行的积分和,且,。求一幅图像的积分和,只需要遍历图像一次即可。
图4 积分图像的计算
如图4所示:图中点“1”的积分图的值是矩形框A中所有像素的像素值之和。点“2”的积分图所对应的值为A+B,点“3”是A+C,点“4”是A+B+C+D,所以D中所有的像素值之和可以用4+1-(2+3)计算。借助于图中的四个矩形,可以实用积分图计算图像中所有像素的值之和。
图5 四个Haar-like特征
作者定义了四种Haar-like特征,如图5所示。很明显,图中由两个矩形构成的特征,其像素和之差可通过六个参考矩形求得;由三个矩形构成的特征可以通过八个参考矩形求得;由四个矩形构成的特征可以通过九个参考矩形求得。特征值的求法为白色矩形框内的所有像素点的灰度之和减去灰色矩形框中所有
Adaboost人脸检测算法原理 来自淘豆网m.daumloan.com转载请标明出处.