1

我正在寻找以下类型的算法:

在 2D 中有 n 个匹配的点对。如何根据仿射/赫尔默特变换识别异常点对并从变换键中省略它们?我们不知道这种离群对的确切数量。

我不能使用修剪最小二乘法,因为有一个基本假设,即 ak 百分比的对是正确的。但是我们没有关于样本的任何信息,也不知道 k……在这样的样本中,所有对都可能是正确的,反之亦然。

哪些类型的算法适合这个问题?

4

2 回答 2

2

使用RANSAC

重复以下步骤固定次数:

  • 随机选择尽可能多的对来计算转换参数。
  • 计算参数。
  • 计算具有小投影误差的对子集(“共识集”)。
  • 如果共识集足够大,为它计算一个投影(例如使用最小二乘法)。
  • 计算共识集的投影误差
  • 如果它是您迄今为止找到的最好的模型,请记住它。

你必须尝试找到好的值

  • “固定次数”
  • “小投影误差”
  • “共识集足够大”。
于 2012-05-11T14:30:21.677 回答
1

最简单的方法是根据所有点计算变换,计算每个点的残差,删除具有高残差的点,直到达到可接受的变换或达到可接受的输入点的最小数量。任何给定点的残差是点的前向变换值与预期目标点之间的连接距离。

请注意,仿射变换和 Helmert(保形)变换之间的残差将非常不同,因为这些变换做不同的事情。仿射的非均匀尺度具有更大的“拉伸”,因此会导致更小的残差。

于 2012-02-06T13:00:10.200 回答