档案

Archive for the ‘Adaboost’ Category

adaboost算法示例

11月 3, 2010 1条评论

学习一个算法最好还是有示例来的比较快,对照代码和示例,很快。之前看Viola的算法流程图,搞不清楚weak classifier 是怎么来的,原来在04年的paper上才有详述,白浪费了时间了,还好在这期间看了一个adaboost的tutorial,结合Cuneyt Mertayak的代码,果然很容易就明白了,昨天和今天看了Viola的两篇paper,加上中文的几篇,加上请教师兄,总算对Robust Real-time Face Detection 搞了个明白,准备结合程序来看。

首先就是直观的理解adaboost,理论的东西就不讨论了,就是weak classifiers 可以组合成 strong classifer。具体算法流程就是,首先所有samples的权重相同(也有根据正负类的个数不同,权重不同的调整)对每个feature,寻找这个feature对应的分类器,来分类,由于是只用了一个feature,所以分类效果不好,当然只要分类错误小于50%就OK,遍历所有的feature,找到一个分类错误最小的feature以及对应的阈值theta,对分类错误的samples加权,即这些很错的samples很重要,比其他的重要。接着对这些权重不一的samples再分类,继续上面的过程直到T次,这个T就是最后弱分类器的个数。Viola的paper里面也说了阈值和最后的detection rate以及false positive有关系,但是具体有什么关系说不清楚。
附上网上找到的Cuneyt Mertayak的adaboost的代码(就不上传了,大家可以google)以及图形化说明。

分类:Adaboost