我正在使用 features2d(ORB、SIFT 等)进行一些对象检测
我正在使用 RANSAC 进一步研究单应性。我发现许多好点被错误地标记为异常值。
对象内部有很多不应该是异常值的异常值(书)
我尝试将阈值提高到 10,但结果几乎相同。我可以做些什么来改善这种情况吗?
RANSAC 有什么问题吗?
我正在使用 features2d(ORB、SIFT 等)进行一些对象检测
我正在使用 RANSAC 进一步研究单应性。我发现许多好点被错误地标记为异常值。
对象内部有很多不应该是异常值的异常值(书)
我尝试将阈值提高到 10,但结果几乎相同。我可以做些什么来改善这种情况吗?
RANSAC 有什么问题吗?
在这种情况下,异常值意味着这些点不适合模型,但它们不一定必须落在您的 object 之外。
RANSAC 会找到适合模型的最佳点集,其余点被视为异常值,但异常值完全可以是您正在跟踪的对象中受噪声影响的点,并且其检测到的位置与 RANSAC 的重投影偏差足够大被认为是异常值。
您不必担心,它工作正常并且检测到您的对象,如图所示。
尝试使用其他特征检测器找到更多特征(最少 100 个)或调整检测器阈值以增加数量。也适合在对象上平均分配点。您可以从 OpenCV 尝试 goodFeaturesToTrack。
在这种情况下,异常值是不适合模型的点。Opencv 中的 RANSAC 查找匹配点对之间的平面单应性。在你的情况下,书是一架飞机,内线应该在书内。如果它们被认为是异常值,原因可能是
在特征点是 3D 对象的情况下,不能保证内点位于对象内部。如果将匹配作为图像坐标中的输入给出,则 Opencv 的 findHomography 会估计平面单应性