著名的VJ人脸检测算法就是一种基于Adaboost分类器的方法。该检测器由Paul Viola和Michael Jones在2001年的 Robust Real-Time Face Detection 提出。在当年的硬件条件下VJ算法可以达到每秒15帧图像的处理速度,是人脸检测技术发展的一个里程碑。虽然性能跟现在基于深度学习的方法没法比,但肯定也是值得去拜读的。
VJ算法利用积分图加速法快速提取图像的类Harr特征,然后使用Adaboost算法训练得到若干个强分类器,组成级联结构,对人脸和背景进行最后的分类。论文的三大贡献分别为:积分图加速法提取类Harr特征,基于Adaboost的学习算法,使用级联的方式组合强分类器。我们分开叙述。
1. 积分图加速法提取类Harr特征


类Harr特征属于一种卷积运算模板,可以用其捕捉图像的边缘、变化等信息。而人脸的五官有着和轮廓有着独特的亮度和边缘信息,很符合类Harr特征的特点。在众多的类Harr特征模板中,Viola和Jones选取了四个可以提取边缘特征,线性特征以及对角线特征的模板。
类Harr特征值由以下操作得到:将类Harr特征模板放在图像上之后,用白色区域所覆盖的图像像素和减去黑色区域所覆盖图像中的像素和,在线性特征模板中,会对黑色区域像素之和乘以2,这是为了抵消黑白区域面积不相等所带来的影响。通过改变类Haar特征模板的位置及大小,可以在检测窗内穷举出上万个特征**,因此计算量巨大。

由类Harr特征值的计算过程可以看出,其中涉及了大量的像素求和运算,为了更快地提取图像的类Harr特征,作者使用了一种称为积分图(Integral Image)的方法。假设有一张图像,其坐标(x, y)处的积分图可以定义为:
I ( x , y ) = ∑ x ′ ≤ x ∑ y ′ ≤ y f ( x ′ , y ′ ) I(x, y) = \sum_{x^{\prime} \leq x} \sum_{y^{\prime} \leq y} f\left(x^{\prime}, y^{\prime}\right) I(x,y)=∑x′≤x∑y′≤yf(x′,y′)
在提取类Harr特征之前,首先计算出整幅图像的积分图。那么在提取特征时,图中矩形ABCD的像素和可以利用积分图表示如下:
S a b c d = I ( D ) − I ( B ) − I ( C ) + I ( A ) S_{a b c d}=I(D)-I(B)-I(C)+I(A) Sabcd=I(D)−I(B)−I(C)+I(A)
积分图加速法大大降低了运算量。
2. Adaboost学习算法
提到了大量类Harr特征值之后,就该使用Adaboost算法做分类训练了
关于Adaboost的好文推荐:详解AdaBoost原理, 这里我只记录关键点吧。
Boosting是一种将弱分类器组合起来形成强分类器的算法框架。这种“三个臭皮匠顶个诸葛亮”的思路是有理论基础的。
Boosting 体现了提升思想,每一个弱学习器重点关注前一个训练器不足的地方进行训练,通过加权投票的方式,得出预测结果。Boosting学习是串行的,弱学习器的学习有先后顺序。
而Adaboost是其中的一种,采用了exponential loss function(其实就是用指数的权重),根据不同的loss function还可以有其他算法,比如L2Boosting, logitboost。
2.1 Boosting
Boosting其架构如下图:

在Boosting的迭代式训练时,每个训练样本的初始权值是相同的,训练中根据弱学习器的误差计算弱学习器的权重,并调整样本的权重来改变样本的分布,使先前弱学习器难分的样本在后续训练中得到更大的关注,循环该过程,直到弱学习器的数目达到指定数量(是一个超参)。最终将所有弱学习器进行组合加权,得到集成的强学习器。
弱分类器:
一个检测窗中包含大量的类Harr特征,对于检测窗x中的第j个特征值,可以训
练一个如下式所示的弱分类器:
h j ( x ) = { 1 如果 p j f j ( x ) < p j θ j 0 其他 h_{j}(x)=\left\{\begin{array}{ll} 1 & \text { 如果 } p_{j} f_{j}(x)<p_{j} \theta_{j} \\ 0 & \text { 其他 } \end{array}\right. hj(x)={
10 如果 pjfj(x)<pjθj 其他
其中 f j ( x ) f_{j}(x) f

本文介绍了著名的VJ人脸检测算法,该算法是人脸检测技术发展的里程碑。它利用积分图加速法提取类Harr特征,使用Adaboost算法训练强分类器,最后将强分类器级联对人脸和背景分类。详细阐述了积分图加速法、Adaboost算法过程及强分类器级联的原理。
最低0.47元/天 解锁文章
1114

被折叠的 条评论
为什么被折叠?



