2012-11-25 55 views
1

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

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

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

这究竟是什么意思?似乎没有人清楚解释它。此外,从每对点中哪一个可以得到切线矢量 - 你会平均两个?

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

回答

0

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

1

渐变对于这种主导方向是否适用?

你是什么意思,通过订购与该方向相关的垃圾箱?我本来会有一个方阵的矩阵 - 两个给定点之间的半径决定了矩阵中的列,并且计算两个给定点之间的角度决定了行。

谢谢你的洞察力。

+0

请使用评论部分为您的问题 – MUG4N