本文主要参考了OpenCV的官方文档
http://docs.opencv.org/modules/ml/doc/boosting.html
boosting算法是一个监督式机器学习算法,它解决的是一个二元分类问题。本文包括对算法思想的理解,不包含算法的数学推导。
目标检测就是用这个分类算法,把只含有目标的图片作为一类,不含有目标的作为另一类,然后训练分类器,进行检测的时候,输入一张图片,用一个窗口扫描这个图片,对每个窗口应用分类器,返回是目标的类别时,就检测到了目标。
监督式机器学习目标是找到一个函数y=h(x),对于一个输入x,给出一个输出y,y如果是取几个离散的值,称为分类问题,y如果取连续的值,成为回归问题。函数h(x)需要对样本数据((Xi,Yi),i=1,2,…N,Xi是一个k维向量,是对特征的一个编码)训练得到h(x)的表达式,然后对于一个新的x,使用y=h(x)进行计算就可预测出y。一般会会为h(x)选择一个模型,只不过是包含参数的,训练就是指根据采集的样本数据把这个参数确定下来,使得这个参数确定后的模型能够很好的刻画输入x和输出y之间的函数关系。
Boosting(提升)这一概念为监督式分类学习问题提供了一种有力的解决方法。它通过结合许多弱分类器的性能来获得可靠的分类结果。弱分类器是指识别错误率仅仅比随机猜测好一点的分类器;强分类器指的是识别准确率很高并且能在多项式时间内完成的分类器。
Boosting有许多变式,有DiscreteAdabo