SVM VS AdaBoost 构造分类器用于物体检测
来源:互联网 发布:我是大美人 淘宝 编辑:程序博客网 时间:2024/05/17 09:09
最近,在做一些关于物体检测的东西,其中要用到分类器。现在,常用的分类器有两大类:AdaBoost ,SVM.由于刚刚接触,概念上勉强了解,做起来有些吃力。幸好,实验室的师兄做过类似的工作,赶紧请教,终于有了新的理解和认识,做一简单总结。
首先,要清楚整个detection task 的流程框架:
第一步,对待检测图片进行合理的表述,这一步即特征表达的问题。需要用一向量(特征向量)表示图像,这其中就涉及特征选择的问题了,feature detector &feature descriptor 前面一阵子一直在研究,所以这一步我可以轻松应对。
第二步,构造具体的分类器。先在网上下载一些数据集,用AdaBoost 或SVM训练完后得到一个具体问题的分类器。
第三步,利用得到的分类器,进行物体检测。
补充一点,关于训练集的问题。一般的,训练的样本,这里一般是图片,其大小往往很小。例如,是人脸的样本,你会看到用到的样本都是2424(pixel),因为只有这样才能在待检测图像中进行窗口滑动检测。而且,尽量是的object占据图片的绝大部分,当然,也不是说所占的百分比越接近1越好,有人做过分析,有时增加一定的背景反而得到的训练器性能更好。
其次,总结一下SVM 和AdaBoost 用于物体检测的过程最大的区别:
SVM:检测窗大小是固定的,要对test图像进行尺度缩放,在不同的尺度下滑动窗口,检测目标物体,若找到,标记检测box。比如说,按照Navneet Nalal 所说的HOG用于人的检测。你在训练的时候,用的训练样本大小为64*128,那么你要用一个3780维的特征向量表示它。那你用SVM得到的训练器会得到3781个系数(包括不要忘了那个b)。检测人的时候,检测窗始终不变,保持64*128,你可以改变待检测图的大小(缩放)。
AdaBoost:为了增加检测速度,待检测图大小是不变的(对检测图像进行缩放比较耗时),而是改变检测窗的大小(检测窗口一般都很小)。这里有一点还不是很清楚:是不是最终的级联分类器结构是这样的:每一级的分类器检测窗口大小是逐级增加的,这样改变检测窗的大小才是可行的,要不然,分类器咋工作呢?要不,就是AdaBoost可以针对不同size的样本进行训练...还需进一步研究啊...
PS:关于AdaBoost的检测窗口可以改变,又问了一下师兄,总算理解又深了一步:是这样的,这与Haar特征的计算有关,AdaBoost训练好的分类器在检测目标时,每一步用到了极少的主要Haar特征。比如检测人脸,水平方向上的Haar特征被认为是最具代表性的,首先在检测窗口内计算水平Haar特征(检测人眼有效),看所在窗口中的水平Haar特征是否有与人眼相匹配的,只是第一关,这一关过不去,直接Pass,那么这一窗口没必要再进行其他Harr特征的检测;反之,这一关过了,不要高兴的太早,还有第二关,第三关,...第n关。每一关,对应于某一有代表性的Harr特征(垂直的,对角的...)。只有全关通过的检测窗口,才是目标物体所在的窗口。 之所以检测窗口大小可变,是因为 相应的Haar特征模板的大小可以相应的缩放,但是计算得到的Haar特征值始终是一个数,注意是一个数,不存在维度的改变,这跟SVM中特征向量的维度与图片块的大小有所不同,正是这点不同,就有了后面二者构造的分类器在检测目标物体过程中的差异....
最后,贴出AdaBoost原始算法:
- SVM VS AdaBoost 构造分类器用于物体检测
- 【Machine Learning】【Python】一、HoG + SVM 物体分类 ---- 《SVM物体分类和定位检测》
- 【Machine Learning】【Python】二、HoG + PCA + SVM 物体分类 ---- 《SVM物体分类和定位检测》
- SVM vs Adaboost
- 重新训练行人检测分类器用于dsp车载行人检测
- 【Machine Learning】【Python】五、Sliding Window + SVM + NMS for Localization ---- 《SVM物体分类和定位检测》
- 【Machine Learning】【Python】六、Edge Boxes + SVM + NMS for Localization ---- 《SVM物体分类和定位检测》
- 基于BP弱分类器用Adaboost的强分类器
- 物体检测及分类
- 第二十篇:如何用Adaboost检测物体
- 物体检测 real adaboost + 像素区块差
- 【Machine Learning】【Python】三、PSO + PCA优化SVM参数C和gamma ---- 《SVM物体分类和定位检测》
- 【Machine Learning】【Python】四、Hard Negative Mining优化训练SVM模型 ---- 《SVM物体分类和定位检测》
- 谷歌升级AutoML,可用于大规模图像分类和物体检测
- OpenCV中的HOG+SVM物体分类
- OpenCV中的HOG+SVM物体分类
- OpenCV中的HOG+SVM物体分类
- OpenCV中的HOG+SVM物体分类
- c:if 和c:when 的区别
- linux下log日志文件
- Android视图状态及重绘流程分析,带你一步步深入了解View(三)
- setProperty must be overridden by all subclasses of SOAPMessage 解决办法
- git 学习资料汇总
- SVM VS AdaBoost 构造分类器用于物体检测
- linux下nano命令
- (1.2.1.3)单循环链表和约瑟夫问题
- 五种常用基数估计算法效果实验及实践建议
- 欢迎使用CSDN-markdown编辑器
- Android自定义View的实现方法,带你一步步深入了解View(四)
- SQL LEN() 函数 ,case when,聚合函数的用法
- Ferrers_图像
- netstat监控网络连接信息