当两个对象的特征数量不相等时如何匹配特征?

时间:2013-10-23 14:19:49

标签: opencv computer-vision

我有2个物体。我得到了对象1和对象的n个特征。 m来自对象2的特征。

N!= M

我必须测量对象1与对象2相似的概率。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

OpenCV网站上有一个很好的教程可以做到这一点。 Check it out。 我们的想法是使用FlannBasedMatcher获取所有这些描述符之间的距离,获得最接近的描述符,并运行RANSAC以在两个对象之间找到一组一致的特征。您没有获得概率,但获得一致的功能的数量,您可以从中获得检测的好坏,但这取决于您。

答案 1 :(得分:0)

您可以对图像中功能更多的功能进行分组。 设置矢量以使用相同的。其中可能存在多个匹配,您可以选择最高匹配。

答案 2 :(得分:0)

您是在谈论点特征描述符,例如SIFT,SURF还是FREAK?

在这种情况下,有几种策略。在所有情况下,您都需要距离测量。对于SIFT或SURF,您可以使用描述符之间的欧几里德距离,或L1范数或点积(相关性)。对于二进制功能,如FREAK或BRISK,通常使用汉明距离。

然后,一种方法是简单地选择距离的阈值。这可能会给你多对多的比赛。另一种方法是使用二分图匹配来找到两组之间的最小成本或最大权重分配。 David Lowe描述了一种非常实用的方法,它使用比率测试来丢弃模糊匹配。

其中许多策略都是在计算机视觉系统工具箱for MATLAB的matchFeatures函数中实现的。