我有 2 个对象。我从对象 1 中获得 n 个特征,从对象 2 中获得 m 个特征。
n!=m
我必须测量对象 1 与对象 2 相似的概率。
我怎样才能做到这一点?
我有 2 个对象。我从对象 1 中获得 n 个特征,从对象 2 中获得 m 个特征。
n!=m
我必须测量对象 1 与对象 2 相似的概率。
我怎样才能做到这一点?
OpenCV 网站上有一个很好的教程可以做到这一点。检查出来。这个想法是使用FlannBasedMatcher获取所有这些描述符之间的距离,获取最接近的描述符,然后运行 RANSAC 以找到两个对象之间的一组一致特征。你得到的不是概率,而是一致特征的数量,你可以从中得分你的检测有多好,但这取决于你。
您是在谈论点特征描述符,例如 SIFT、SURF 或 FREAK?
在这种情况下,有几种策略。在所有情况下,您都需要距离测量。对于 SIFT 或 SURF,您可以使用描述符之间的欧几里德距离、L1 范数或点积(相关性)。对于二元特征,例如 FREAK 或 BRISK,您通常使用汉明距离。
然后,一种方法是简单地选择距离的阈值。这可能会为您提供多对多匹配。另一种方法是使用二分图匹配来找到两组之间的最小成本或最大权重分配。David Lowe描述了一种非常实用的方法,它使用比率测试来丢弃不明确的匹配项。
其中许多策略在MATLAB 计算机视觉系统工具箱的matchFeatures函数中实现。
您可以对图像中特征较多的特征进行分组。设置一个向量以使用相同的向量。可能有多个匹配项,您可以选择最高的一个。