【发布时间】:2015-09-02 09:04:30
【问题描述】:
我正在尝试在多个图像上实现特征匹配。这个想法是跟踪图像数据集中的一些特征。我在 Matlab 上使用 mexopenCV,算法的基础是:
1. Feature Detection using SIFT or SURF
2. Feature Description using SIFT or SURF
3. Feature matching using Flann matcher or Brute Force
4. Filtering matches using RANSAC
我的问题如下: 使用场景中的单个对象,所有跟踪的特征都在该对象上。但是,当我将另一个对象添加到场景中时,跟踪的特征仅存在于新对象上,而第一个对象上没有任何特征。有没有解释为什么会这样?
图片 1
图片 2
P.S:每张图像上的特征是在所有数据集(8 张图像)上跟踪的特征。
【问题讨论】:
-
我已经为您添加了图片,以便您更有可能得到回复。
-
感谢您的帮助!
-
这太奇怪了。根据我的经验,您将获得更多功能,而不仅仅是新对象中的功能。您的算法可以检测到的特征数量是否有上限?
-
您是否设置了最大特征数?如果您发布了一些可能有帮助的代码
-
我认为这与 RANSAC 的行为方式有关。场景中的棋盘和雕像的深度不同,RANSAC 所做的是他试图找到具有最多匹配特征的最佳模型。但鉴于有两个模型(由于场景中的深度变化),RANSAC 只会匹配两者中最好的特征。我搜索了更多,发现它与多模态拟合有关。有顺序 RANSAC 或多 RANSAC 可以处理此问题,但我仍然不确定我的结论。有谁可以说是这个原因?