【发布时间】:2016-02-21 10:11:27
【问题描述】:
我正在从事与人员检测相关的项目。我成功地实现了基于 HOG SVM 的分类器(使用 libSVM)和级联分类器(使用 opencv)。 svm 分类器工作得非常好,我测试了一些视频,它正确地检测到了一些假阳性和一些假阴性的人;这里的问题是计算时间:整个图像大约需要 1.2-1.3 秒,前景补丁需要 0.2-0.4 秒;因为我正在从事一个必须能够在近乎实时的环境中工作的项目,所以我切换到级联分类器(以减少计算时间)。 所以我用opencv(opencv_traincascade)训练了许多不同的级联分类器。输出在计算时间方面很好(整个图像为 0.2-0.3 秒,仅在前景上发射时要少得多),所以我实现了目标,比方说。这里的问题是检测质量:我得到了很多误报和很多误报。由于两种方法之间的唯一区别是opencv中使用的基分类器(决策树或决策树桩,据我所知,无论如何没有SVM),所以我开始认为我的问题可能成为基本分类器(在某种程度上,我猜 hog 特征最好与超平面分开)。
当然,libsvm 和 Opencv 中使用的数据集是完全相同的,无论是用于训练还是用于测试……为了完整起见,我使用了近 9000 个正样本和近 30000 个负样本。
这是我的两个问题:
- 是否可以在opencv_traincascade 函数中更改基础弱学习器?如果是,它是 svm 可能的选择之一吗?如果两个答案都是肯定的,我该怎么做? :)
- 是否有其他计算机视觉或机器学习库将支持向量机实现为弱分类器并有一些方法来训练级联分类器? (这些库是否适合与 opencv 结合使用?)
一如既往地提前感谢您!
马可。
【问题讨论】:
标签: c++ opencv svm libsvm cascade-classifier