问题 从不同的物体角度找到一个好的单应性?


我正在使用特征提取(筛选,orb)进行对象检测。

我想从对象的不同视角(训练图像)中提取ORB特征,然后将它们与查询图像进行匹配。

我面临的问题是:如何从不同大小的图像的不同角度创建一个良好的单应性?

编辑

我想为每个火车图像创建一个单应性,然后说3-4个匹配,然后计算一些“均值”单应...

例如,当您从每个火车图像中说出1-2个匹配时,会出现问题,此时您无法创建甚至1个单应性

创建单应性的代码

  //> For each train images with at least some good matches ??
  H = findHomography( train, scene, CV_RANSAC );
  perspectiveTransform( trainCorners, sceneCorners, H);

2023
2017-07-16 22:32


起源

当我读到这篇文章时,我的眼睛茫然:p - John Humphreys - w00te
哈哈,只是其中一个我绝对不知道的主题。祝你好运:p - John Humphreys - w00te


答案:


我认为这样做没有意义,因为当你谈论单应性时,A和B对图像B和C无关。你会得到不同的 很好的比赛 和不同的单应性,但单应性将是无关的,没有错误最小化将有一个点。

所有最小化必须在考虑仅一对图像的匹配,关键点和描述符内。

有一个类似于你在FREAK描述符中提出的想法。您可以使用一组图像训练选定的对。这意味着FREAK将根据一组图像决定提取描述符的最佳模式。在这次训练之后,你应该找到更强大的数学,这将给你一个更好的单应性。


8
2017-12-19 16:15





要找到良好的单应性,您需要准确匹配关键点。你需要4场比赛。

最常见的方法是DLT与RANSAC结合使用。 DLT是一种线性变换,可以找到将您的关键点投射到场景中的单应性3x3矩阵。 RANSAC找到满足数学模型的最佳内点/异常值集,因此它将找到最佳4点作为DLT的输入。

编辑

您需要找到强大的关键点。 SIFT倾向于这样做,规模和视角不变。我不认为你需要训练不同的图像。寻找平均单应性没有意义。您需要为检测到的对象找到唯一的单应性,并且单应性将是标记与检测到的对象之间的转换。单应性是精确的,没有必要找到一个平均值。


4
2017-07-17 07:00





您是否尝试过从对象视图中获取关键点的方法:train_kps_1,train_kps_2 ...然后将这些数组与场景匹配,然后从这几个数组中选择最佳匹配,从而产生单个数组的良好匹配。最后使用该结果找到单应性作为“火车”。

这里的关键是如何选择最佳匹配,这是一个不同的问题,你可以在这里找到一个很好的anwser:

http://answers.opencv.org/question/15/how-to-get-good-matches-from-the-orb-feature/

也许在这里:

http://answers.opencv.org/question/2493/best-matches/


1
2017-09-26 22:54



使用没有关键点的关键点获得一些比例不变性的工作原理是从对象的各种比例(视图)中提取关键点。如果您使用其他转换而不是缩放执行相同的过程,则可以从中获得一些不错的关键点匹配。 - Rui Marques