OpenCV交通标志识别

时间:2015-01-29 19:58:52

标签: opencv sign surf traffic

我正在编写一个软件(用于我的学习),用于使用IP摄像头进行交通标志识别。暂时,我必须识别出这样的交通标志: enter image description here

在我的代码中,我正在进行高变换,以便用掩码隔离我的交通标志。

然后,我对场景图像进行了SURF比较(使用SURF的OpenCV文档的修改样本)和一些不同交通标志的图像(30,50,70,90)。

我举一个关于我的对象引用的例子:http://www.noelshack.com/2015-05-1422561271-object-exemple.jpg

我的问题是:

  • 是我"做的方式"是正确的? SURF是否真的适应了这里,因为它似乎使用了大量的资源..

  • 我有误报(例如当我将对象中的30与场景中的50进行比较时),如何减少它?

2 个答案:

答案 0 :(得分:4)

是的,这是您通常希望SURF匹配方法有效的任务。如果两个符号相似,则您希望它们的SURF特征大部分匹配。

但是,它不是唯一可行的方法。您可能还想尝试SIFT或FAST功能匹配。他们可能会减少你的误报数量。您可能还想尝试使用SURF功能匹配参数,例如比较功能和接受匹配的阈值的方式。例如,在某些情况下,30公里标志可能与30公里和50公里标志相匹配。然后,您需要查找其他条件来区分它们,例如匹配要素的数量,或标记集中与该符号匹配的图像百分比。

如果你仍然得不到令人满意的结果,我建议尝试使用级联分类方法和HOG功能来检测“3”,“5”,“7”等数字。你需要训练你的分类器在标记符号中包含一组裁剪数字,并使用级联分类器检测测试图像中的这些数字。 Cascade of classifiers也在OpenCV中实现。

答案 1 :(得分:0)

您可以尝试裁剪或缩放图像以提高模型精度。对我来说,裁剪或缩放图像可以使模型精度提高0.27%

提高准确性:

enter image description here