我想知道 orb 特征检测器的参数。我将它用作关键点提取器和描述符。作为匹配器,我使用 BFMatcher。
目前我这样使用它:
ORB orb(25, 1.0f, 2, 10, 0, 2, 0, 10);
因为我正在查看小图像和快速性能,所以我将功能数量减少到大约 25 个。这似乎仍然适用于我的应用程序。问题从第二个参数开始。它的默认值为 1.2。不久前我将它设置为 1,但发现它的速度要快得多,而且值更高。问题是,我开始遇到这个问题:
OpenCV 错误: cv_batchDistance 中的断言失败 ((type == CV8U && dtype == CV_32S) ||dtype == CV_32F),文件............stat.cpp,第 2480 行
接下来是金字塔级别的参数。默认值为 8。我将其设置为 2,这给了我另一个很大的性能改进。但是如果我将它设置为 1,它会抛出与上面相同的错误。
由于我正在处理小图片,因此我尝试将其设置为较低的值。但它似乎并没有改变任何东西。这同样适用于最后一个参数 (patchSize)。它指出这些参数应该大致匹配。
我对其余参数不感兴趣。
正如我已经在其他问题中解释的那样,我正在尝试跟踪视频中的对象。为此,我为每个边界框提取其特征,并尝试将其与下一个特征的边界框匹配。通过这样做,我试图建立框架之间的关系。到目前为止,它运行良好。但我需要更快。如果有多个边界框,则需要很长时间,因为我想要实时@ 30FPS。
如果有人可以帮助我处理这些参数,我将不胜感激。