部分多边形匹配

时间:2015-12-29 14:54:11

标签: pattern-matching polygon computational-geometry

我正在寻找多边形匹配的快速程序,即在不同的变换下检查多边形相似性

  • 仅限翻译,
  • 翻译+轮换,
  • 翻译+缩放,
  • 翻译+旋转+缩放(=相似性)。

匹配可以是部分的,这意味着在大纲的大部分(例如> 70%)上可以匹配良好,并且在其他地方完全不匹配。

顶点的数量是合理的(比如N <50)。

在问题的变体中,您需要比较两个多边形。在另一个变体中,您将一个多边形与一系列多边形进行比较,并允许对单个多边形进行预处理。

您是否了解此问题的解决方案?

enter image description here

2 个答案:

答案 0 :(得分:1)

编辑:原创文章来自伯克利Original Article

一个很好的起点是斯坦福的这篇伟大的文章  Shape Matching and object recognition Using Shape Contexts

本文包含许多不同类型的模式匹配(基于亮度的图形方法)和数学公式。大多数公式逐点评估给定的图像。

您可能需要比较多边形的“快照”,而不是使用跟踪并记录多边形角度的海龟类型算法遍历它。

答案 1 :(得分:1)

用于匹配和计算形状之间距离的算法和方法可以粗略地根据所考虑的特征的 locality 进行分类。

我会尝试列出一些,据我所知,尝试搜索下面的关键字

  1. 有些人使用形状的差异属性(曲率 - 尺度 - 空间变换,...​​...
  2. 或点的径向直方图( shape-contexts ,如用户1487195的答案所述)
  3. 统计方法(图像时刻,zernike时刻
  4. 傅里叶描述符
  5. 积分不变量
  6. 一般来说,许多方法都会计算(并且可能存储)某种形状特征,这种形状特征比形状本身更简单,对转换/遮挡等也不变(在形状上下文的情况下,这是直方图) 。然后是匹配阶段。

    根据我的经验,形状上下文方法中最耗时的部分是匹配,签名很容易计算。在匹配(或计算距离)时,您需要使用类似于匈牙利方法薄板样条转换相似的东西,在采样点之间找到良好的对应关系。如果你有一个庞大的形状数据库,这可能需要一些时间。

    我建议尝试积分不变量。在你的情况下,如果你只处理多边形(而不是曲线),它可能比在链接的文章中看起来更容易。

    Integral Invariants for Shape Matching

    Integral Invariant Signatures

    没有整体&#34;最佳&#34;方法,只有那些可能更适合您需求的方法。这是因为不同的算法具有不同的特征。例如,依赖更多局部特征的方法存在对噪声的敏感性问题,但可能更好地识别遮挡的形状。

    所以我想你可能想要花一些时间来研究它们的特征,每个算法类(上面的列表绝对不是详尽无遗)。

    祝你好运。