我正在编写一个滑动窗口来提取特征并将其输入 CvSVM 的预测函数。但是,我偶然发现 svm.predict 函数相对较慢。
基本上,窗口以固定的步长在图像尺度上滑动穿过图像。
- 遍历图像加上为每个窗口提取特征的速度大约需要 1000 毫秒(1 秒)。
- 包含由 adaboost 训练的弱分类器导致大约 1200 毫秒(1.2 秒)
- 但是,当我将特征(已被弱分类器标记为正)传递给 svm.predict 函数时,整体速度减慢到大约 16000 毫秒(16 秒)
- 在使用 TBB 的线程传递给 svm.predict 之前,首先尝试收集所有“积极”特征导致 19000 毫秒(19 秒),可能是由于创建线程所需的开销等。
我的 OpenCV 构建被编译为包括 TBB(线程)和 OpenCL(GPU)功能。
有没有人设法加快 OpenCV 的 SVM.predict 功能?
我已经被这个问题困住了很长一段时间,因为通过我的测试数据运行这个检测算法来进行统计和阈值调整是令人沮丧的。
非常感谢您阅读本文!