我正在编写一个软件(用于我的研究),用于使用 IP 摄像机识别交通标志。有那么一刻,我必须识别这样的交通标志:
在我的代码中,我正在做一个高转换以使用掩码隔离我的交通标志。
然后,我将场景图像与一些不同交通标志 (30,50,70,90) 的图像进行 SURF 比较(使用 SURF 的 OpenCV 文档的修改样本)。
我给你一个我的对象引用的例子:http://www.noelshack.com/2015-05-1422561271-object-exemple.jpg
我的问题是:
我的“做法”是否正确? SURF真的在这里适配了吗,因为貌似占用资源多..
我有误报(例如,当我将对象中的 30 与场景中的 50 进行比较时),如何减少它?
最佳答案
是的,这是您通常期望 SURF 匹配方法起作用的任务。如果两个标志相似,您预计它们的 SURF 特征基本匹配。
但是,这并不是唯一可行的方法。您可能还想尝试 SIFT 或 FAST 特征匹配。他们可能会减少误报的数量。您可能还想尝试使用 SURF 特征匹配参数,例如比较特征的方式和接受匹配的阈值。例如,在某些情况下,30 公里的标志可能与 30 公里和 50 公里的标志都匹配。然后,您将需要寻找其他标准来将它们分开,例如匹配特征的数量,或标记集中与标志匹配的图像的百分比。
如果您仍然得到不满意的结果,我建议您尝试使用具有 HOG 特征的级联分类方法来检测“3”、“5”、“7”等数字。您需要训练您的在标记的标志中使用一组裁剪数字的分类器,并使用分类器的级联来检测测试图像中的这些数字。 Cascade of classifiers也在 OpenCV 中实现。
关于OpenCV交通标志识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28223491/