算法:2D变换,找到离群点对并省略

发布于 2025-01-02 10:47:32 字数 209 浏览 0 评论 0原文

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

二维中有 n 个匹配的点对。如何根据仿射/赫尔默特变换识别外围点对并从变换键中省略它们?我们不知道此类外围对的确切数量。

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

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

I am looking for the following type of algorithm:

There are n matched pairs of points in 2D. How can I identify outlying pairs of points according to Affine / Helmert transformation and omit them from the transformation key? We do not know the exact number of such outlying pairs.

I cannot use Trimmed Least Squares method because there is a basic assumption that a k percentage of pairs is correct. But we do not have any information about the sample and do not know the k... In such a sample of all pairs could be correct or vice versa.

Which types of algorithms are suitable for this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

·深蓝 2025-01-09 10:47:32

使用 RANSAC

重复以下步骤固定次数:

  • 根据需要随机选择尽可能多的对计算变换参数。
  • 计算参数。
  • 计算具有较小投影误差的对的子集(“共识集”)。
  • 如果共识集足够大,则计算它的投影(例如使用最小二乘法)。
  • 计算共识集的投影误差
  • 如果该模型是迄今为止您发现的最好的模型,请记住该模型。

你必须尝试为

  • “固定次数”
  • “小投影误差”
  • “共识集足够大”找到好的值。

Use RANSAC:

Repeat the following steps a fixed number of times:

  • Randomly select as much pairs as are necessary to compute the transformation parameters.
  • Compute the parameters.
  • Compute the subset of pairs that have small projection error (the 'consensus set').
  • If the consensus set is large enough, compute a projection for it (e.g. with Least Squares).
  • Computer the consensus set's projection error
  • Remember the model if it is the best you found so far.

You have to experiment to find good values for

  • "a fixed number of times"
  • "small projection error"
  • "consensus set is large enough".
满身野味 2025-01-09 10:47:32

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

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

The simplest approach is compute your transformation based on all points, compute the residuals for each point, remove the points with high residuals until you reach an acceptable transformation or hit the minimum number of acceptable input points. The residual for any given point is the join distance between the forward transformed value for a point, and the intended target point.

Note that the residuals between an affine transformation and a Helmert (conformal) transformation will be very different as these transformations do different things. The non-uniform scale of the affine has more 'stretch' and will hence lead to smaller residuals.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文