最近,学习了Adaboast,并阅读了大牛Paul Viola和Michael Jones的《Robust Real-Time Face Detection》这篇文章,尽管文章思路及用到的方法的不难,但是细细一整理,还是有很多值得推敲的地方。那么我们就从这篇文章说起。
看完这篇文章,第一感觉是似懂非懂,所以就细细地梳理了一下思路。总的来说,这篇文章所涉及的方法,和普通机器学习思路是一样的,分为训练和测试两步,其中训练又分为两步,1,通过Adaboast方法对图像的特征进行降维,选择出最利于图像分类的有限个特征(也同时是Adaboast的弱分类器);2,又一次使用Adaboast方法对图像的特征进行组合,成为级联侦测器(Cascade);测试就是通过训练好的级联侦测器对图像进行人脸检测,下面,我们就细细讲明以上几个步骤:
一,训练之对图像特征进行降维。
(1)Haar-like特征
在这里,我们使用的图像特征Haar-like特征,Viola和Jones在此基础上,使用3种类型4种形式的特征。
3种类型分别为:2-矩形特征、3-矩形特征、4-矩形特征。
如上图所示,这是4种形式的特征模板,内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。通过改变特征模板的大小和位置,可在图像子窗口中穷举出大量的特征。上图的特征模板称为“特征原型”;特征原型在图像子窗口中扩展(平移伸缩)得到的特征称为“矩形特征”;矩形特征的称为“特征值”。那么在一幅训练图像中,这种特征模板有多少呢?在查找了大量资料,发现证明过程如下: