Rapid Object Detection using a Boosted Cascade of Simple Feature

这篇文章主要是对Rapid Object Detection using a Boosted Cascade of Simple Feature,Viola&Jones的学习总结。
注:这篇文章中的特征值和线性代数的特征值不是一个东西,是我词穷的一种表述

作者提到这篇文章主要有三个点
1.使用积分图计算Haar-like特征
2.使用AdaBoost训练数据
3.使用级联的方式将分类器连接,加快对背景的reject,从而增快测试速度

1.使用积分图计算Haar-like特征

1.1什么是Harr-like特征呢?
Harr-like特征是检测图像特征的一种算子。可以将它看做一个定大的卷积核,论文中使用的是24*24的核
Rapid Object Detection using a Boosted Cascade of Simple Feature_第1张图片
核的种类大约有这四种,白色部分为1,黑色部分为-1,即使用白色部分的灰度值之和减去黑色部分的灰度值之和。得到这个位置的特征。论文提到24*24的核以上诉四种方式任意组合,大约有160000多种不同的分类器。

我们用这个核在每个图片的每个点上做卷积,得到的值叫做该位置的一个特征值。然后通过后面的训练来识别这个特征值应该是人脸还是非人脸。显而易见这是一个二分监督学习。

1.2积分图
论文的第一个创新点就在使用积分图来简化Harr-like特征的计算,
首先对一个图片我们先做一次积分。
Rapid Object Detection using a Boosted Cascade of Simple Feature_第2张图片
坐上角是我们传统的原点,我们要做的就是将图片的每一个点替换为左上角整个矩形所有值之和。
Rapid Object Detection using a Boosted Cascade of Simple Feature_第3张图片
哈哈,那我们上面提到的Harr特征怎么计算呢,我们是不是要计算白色区域和和黑色区域和,因为他们都是规规矩矩的矩形(规规矩矩是我的定义,他们的边都是平行于x轴或者y轴的)所以我们可以通过积分图很快的计算其中某一块的值之和。

例如上图矩形ABCD,我们假设Sa为A点积分图的值,Sb为B点积分图的值,以此类推。那么我们用Sa-Sb-Sc+Sd就可以算出这个区域的面积。一共需要3次加法。如果不适用积分图,只对原始图进行计算,这个复杂度应该是n²。大大减少了特征点的计算时间。
除了牛逼还能说什么。

2.使用AdaBoost训练数据

好了,我们使用很多个特征提取器,可以得到大量的特征值。我们可以人工给这些东西打上标签,告诉他们哪些是人脸,哪些不是。这是需要我们人来做的,

每个分类器都得到了一些值和一些标签,这有啥子用啊。
我们先拿这些标签和特征值来简单的分个类。
公式如下

j代表第j个分类器,pj保证两边符号相等,seta是一个阀值,fj是特征值
哈哈哈哈,等你训练完了一定举得很搞笑,二分分类嘛,做判断题,我题目不看,能得到的分都有50%。这些子分类器的正确率有多少呢,0.4-0.5,甚至0.1-0.3。

别急别急,这篇文章的第二创新点就是使用AdaBoost去训练他们,我很喜欢这个方法,喜欢它所代表的哲学思想,就是三个臭皮匠能打诸葛亮。每一个子分类器可能没这么厉害,但是合在一起的时候,他们就将发挥巨大的作用。
详细的算法可以参见 https://blog.csdn.net/ghost__2011/article/details/79449415

我们前面提到我们的子分类器大约有160000多种,事实上我们不需要那么多,把它们全拿来打诸葛亮,诸葛亮没打死,电脑都算死机了。我们其实只需要其中的一部分组成一个强分类器就足以应对需要解决的问题。

AdaBoost算法的步骤
Rapid Object Detection using a Boosted Cascade of Simple Feature_第4张图片

通过AdaBoost训练出的效果表现就非常棒了,文章提到200个弱分类器组成的分类器正确率已经有0.95了。民主投票,众人拾柴火焰高。


3.使用级联的方式将分类器连接,加快对背景的reject,从而增快测试速度

理论来说,更多的弱分类器应该是能带来更好的效果。但是太多的分类器会带来两个问题,一是噪声导致提升效果并不多,二是过多的分类器会增加系统的计算量。
所以作者提出了第三个创新点,这个创新点是在测试的时候进行的。这个创新就是我们先训练多个强分类器,然后将规模较小的分类器放在前,快速的过滤掉那些非人脸的背景,如果它是人脸的可能性大,我们再进行进一步的讨论。
Rapid Object Detection using a Boosted Cascade of Simple Feature_第5张图片

小结
01年的文章,依然透露着思想的闪光,还带有一点今天流行的CNN的影子。整个模型并不复杂,但是却确实有效,很喜欢这样的模型,理论。

你可能感兴趣的:(机器学习,计算机视觉,人脸检测,计算机视觉,机器学习)