首先这是我在这里的第一个问题,所以我希望我能清楚地解释它。
我的目标是检测图像中不同类别的交通标志。为此,我按照以下步骤训练了二进制 SVM:
- 首先,我得到了一个裁剪交通标志的数据库,如链接中的那个。我考虑了不同的类别(禁止、危险等)和负面形象。所有这些都缩放到 40x40 像素。
http://i.imgur.com/Hm9YyZT.jpg
- 我使用 HOG 作为特征为每个类(1-vs-all)训练了线性 SVM 模型。每个图像都用一个 1728 维的特征来描述。(我为所有三个图像平面附加了三个特征向量)。我进行了交叉验证以设置参数 C,并在以前看不见的 40x40 图像上进行了测试,我得到了非常准确的结果(所有类别的 F1 得分都超过 0.9)。我使用 libsvm 进行培训和测试。
现在我想检测完整道路图像中的标志,以不同的图像比例滑动窗口。我面临的问题是我找不到任何可以为我做的函数(如 OpenCV 中的 DetectMultiScale),而且我的解决方案非常缓慢且基本(我只是在做一个三重 for 循环,并且对于每个缩放我裁剪连续和重叠的 40x40 图像,获得 HOG 特征并为每个图像应用svmpredict )。
有人可以给我一个线索以找到更快的方法吗?我也考虑过获取整个输入图像的 HOG 特征向量,然后将该向量重新排序为一个矩阵,其中每一行将具有对应于每个 40x40 窗口的特征,但我找不到一种直接的方法。
谢谢,