4

我正在使用 features2d(ORB、SIFT 等)进行一些对象检测

我正在使用 RANSAC 进一步研究单应性。我发现许多好点被错误地标记为异常值。

对象内部有很多不应该是异常值的异常值(书)

我尝试将阈值提高到 10,但结果几乎相同。我可以做些什么来改善这种情况吗?

RANSAC 有什么问题吗?

4

3 回答 3

6

在这种情况下,异常值意味着这些点不适合模型,但它们不一定必须落在您的 object 之外

RANSAC 会找到适合模型的最佳点集,其余点被视为异常值,但异常值完全可以是您正在跟踪的对象中受噪声影响的点,并且其检测到的位置与 RANSAC 的重投影偏差足够大被认为是异常值。

您不必担心,它工作正常并且检测到您的对象,如图所示。

于 2012-08-21T08:01:47.230 回答
2

尝试使用其他特征检测器找到更多特征(最少 100 个)或调整检测器阈值以增加数量。也适合在对象上平均分配点。您可以从 OpenCV 尝试 goodFeaturesToTrack。

于 2012-08-21T11:47:58.403 回答
0

在这种情况下,异常值是不适合模型的点。Opencv 中的 RANSAC 查找匹配点对之间的平面单应性。在你的情况下,书是一架飞机,内线应该在书内。如果它们被认为是异常值,原因可能是

  1. 匹配错误
  2. 图像特征的冗余(简单,例如棋盘)

在特征点是 3D 对象的情况下,不能保证内点位于对象内部。如果将匹配作为图像坐标中的输入给出,则 Opencv 的 findHomography 会估计平面单应性

于 2015-12-23T10:54:31.453 回答