关于OpenCV描述符匹配的一般理论:每一步都意味着什么?

时间:2017-06-13 21:29:15

标签: opencv

我对OpenCV和图像处理很陌生,所以我对feature matching approach的问题有点笼统。我读了一些关于这个理论的东西,但是我在这个步骤中安排非常具体的理论存在问题;

据我了解,我会按以下步骤对序列进行分组:

  • 特征检测:图像中的特殊点可以在
  • 中找到
  • 特征描述:收集关于邻近区域的信息,并创建每个特征点一个向量   - >(1)这是否总是以直方图的形式?
  • 匹配:计算描述符之间的距离   - >(2)我可以确定使用何种距离?我读到χ^ 2和EMD,即使它们没有实现,这些是这个地方的正确关键词

    确定相应的匹配   - >(3)我猜匈牙利方法是一种方法吗?

  • 转换估算:在优化问题中,估算最佳位置

如果有人能澄清斜体标记的问题,那就太好了

1 个答案:

答案 0 :(得分:0)

(1):这总是以直方图的形式出现吗?

不,例如,ORB功能有二进制描述符。在理论中,描述符可以是任何东西。它们通常是标准化的,通常它们是二进制或浮点数。但是:直方图有一些属性可以使它们成为好的描述符。

(2)我可以确定使用何种距离?

对于浮点描述符,平方距离之和可能是测量距离的最常用度量。对于二进制描述符afaik,使用汉明距离?

(3)我猜匈牙利方法是一种方法吗?

可以使用,我猜,但这可能会或可能不会导致一些问题。通常使用最近邻方法。通常只是蛮力(即O(n ^ 2)而不是匈牙利的O(n ^ 3))。 “问题”,即一组中的多个描述符可能在第二组中具有相同的最近邻居,实际上是另一个特征,因为如果发生这种情况,您可能能够过滤掉一些“不确定”的匹配(通常是最好的n个匹配用于过滤掉更多)。你必须假设一组中的许多描述符在第二组中没有拟合对应,你必须假设匹配本身不会产生完美的匹配。通常使用单应性计算等一些额外步骤来使匹配更加稳健并过滤掉异常值。