在Matlab中多尺度搜索HOG + SVM

时间:2014-12-04 12:26:02

标签: matlab svm multiscaleimage

首先这是我的第一个问题,所以我希望我能以清晰的方式解释它。

我的目标是在图像中检测不同类别的交通标志。为此,我按照以下步骤训练了二进制SVM:

  • 首先,我得到了一个裁剪交通标志的数据库,如链接中的那个。我考虑过不同的课程(禁止,危险等)和负面形象。所有这些都缩放到40x40像素。

http://i.imgur.com/Hm9YyZT.jpg

  • 我使用HOG作为特征,为每个类(1-vs-all)训练了线性SVM模型。每个图像用1728维特征描述。 (我为所有三个图像平面附加了三个特征向量)。我做了交叉验证来设置参数C,并测试了以前看不见的40x40图像,我得到了非常准确的结果(所有课程的F1得分都超过0.9)。我使用libsvm进行培训和测试。

现在我想要检测全路图像中的标志,以不同的图像比例滑动窗口。我面临的问题是我找不到任何可以为我做的功能(如OpenCV中的DetectMultiScale),而且我的解决方案非常缓慢且基本(我只是做一个三重for循环,并且每个比例I裁剪连续和重叠的40x40图像,获取HOG功能并为每个图像应用 svmpredict

有人能给我一个线索,找到一个更快的方法吗?我也考虑过获取整个输入图像的HOG特征向量,然后将该向量重新排序到矩阵,其中每行将具有与每个40x40窗口相对应的特征,但我找不到直接的方法。

谢谢,

1 个答案:

答案 0 :(得分:2)

我建议使用SURF功能检测,但我不知道这对你的需求是否太慢。

请参阅:http://morf.lv/modules.php?name=tutorials&lasit=2了解有关如何实施和解决此问题的更多信息,这对您来说是一个可行的解决方案。