1

我试图实现形状上下文(在 MatLab 中)。我试图实现旋转不变性。

形状上下文的一般方法是计算给定图像中每组兴趣点之间的距离和角度。然后,您根据这些计算值是否落入特定范围,将其分类为直方图。您对标准图像和测试图像都执行此操作。为了匹配两个不同的图像,您可以使用卡方函数来估计两个不同直方图中每个可能的点对之间的“成本”。最后,您使用匈牙利算法之类的优化技术来找到最佳的点分配,然后总结总成本,这对于良好的匹配会更低。

我检查了几个网站和论文,他们说要使上述方法旋转不变,您需要使用切向量作为 x 轴来计算每对点之间的每个角度。(即http://www.cs.berkeley.edu/~malik/papers/BMP-shape.pdf第 513 页)

这到底是什么意思?似乎没有人解释清楚。此外,您将从每对点中的哪一个获得切向量 - 您会平均这两个点吗?

其他几个人建议我可以使用渐变(在 Matlab 中很容易找到)并将其用作切点的替代品,尽管它似乎无法用它计算合理的成本分数。用渐变来做到这一点是否可行?

4

2 回答 2

1

梯度应该适用于这个主导方向吗?

相对于该方向订购垃圾箱是什么意思?我最初打算有一个箱的方阵 - 两个给定点之间的半径确定矩阵中的列,两个给定点之间的计算角度确定行。

感谢您的见解。

于 2012-11-25T19:21:11.460 回答
0

实现(某种程度上)旋转不变性的一种方法是确保无论您在哪里计算图像描述符,它们的方向(即 bin 的排序)都将(大致)相同。为了实现这一点,您在提取每个描述符的位置选择主要方向,并根据该方向对 bin 进行排序。通过这种方式,您可以比较不同描述符的 bin-to-bin,知道它们的顺序是相同的:关于它们的局部主导方向。
根据我的个人经验(不是太多),这些方法在纸上看起来比在实践中更好。

于 2012-11-25T19:00:46.327 回答