目标检测与分割的三类问题
语义分割(Semantic Segmentation)
目标定位与识别(Classification and Localization)
目标检测(Object Detection)
基本思想
(1)白色区域的像素值,减去黑色区域的像素值。
(2)每一个FEATURE所有区域长度和宽度一致。
(3)FEATURE可以在整幅图上平移,只需要满足(1)和(2)即可。
(4)可以取下图这四种形式。
对于一个24*24的图像,所有的Haar-like feature 个数为20万左右。
为了解决计算量过大的问题,Viola and Jone, Robust Real-Time Face Detection, International Journal of Computer Vision 57(2), 137–154, 2004提出了一种转换方法,这种方法将面积转换成了对积分的加加减减,
Image(D) =Integral(4)+Integral(1)-Integral(3)-Integral(2)
分类器构造
取一些人脸(6000张左右)和一些非人脸(7万张)作为训练样本。
通过这一步,给出了图像、特征、阈值和p进行训练,能够得到所有的f(20万个特征),对于每一个特征f,我们要求的是最佳的阈值和p,使得h在训练集上识别率最高。由此,对于每一个特征,我们都制造了一个弱分类器,下面使用Adaboost进行特征选择。
使用AdaBoost算法进行特征选择
1、首先在数据集D中选取正确率最高的特征,用F1表示。
2、将数据集D分为两类,{F1分对的数据}和{F1分错的数据}。
3、以较大概率取F1分错的数据,以较小概率去F1分对的数据,形成新的集合D2。
4、在D2中选取正确率最高的特征,用F2表示。
5、将D分为: {F1、F2都分对的数据},{F1分对而F2分错的数据,以及F1分错而F2分对的数据},{F1,F2都分错的数据}。
6、以最大概率取{F1,F2都分错的数据},以次大概率取{F1分对而F2分错的数据,以及F1分错而F2分对的数据}, 以最小概率取{F1、F2都分对的数据},得到数据集D3.
7、在D3中选取正确率最高的特征,用F3表示。循环,以此类推。
8、用各个特征的线性组合构建分类器。
最终得到能表征人脸的Haar 特征:
AdaBoost人脸检测流程:
1、在图像中,对每一个 24 * 24 的格子遍历使用分类器,如果是人脸,则输出。
2、将图像缩小,长宽同时除以1.2,在用分类器遍历每一个24 * 24的格子。如果是人脸,将该处位置坐标乘以1.2, 等比例放大到原图。
3、重复2,直到图像长或宽小于24个像素为止。
Tips:对于使用AdaBoost训练得到的模型,在检测时只能使用训练所用的角度进行识别。若要多角度识别,可以将构建多个姿态人脸AdaBoost分类器,树状级联后可以获得多姿态人脸检测器