算法:2D变换,找到离群点对并省略
我正在寻找以下类型的算法:
二维中有 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 RANSAC:
重复以下步骤固定次数:
你必须尝试为
Use RANSAC:
Repeat the following steps a fixed number of times:
You have to experiment to find good values for
最简单的方法是基于所有点计算变换,计算每个点的残差,删除残差较高的点,直到达到可接受的变换或达到可接受输入点的最小数量。任何给定点的残差是点的正向变换值与预期目标点之间的连接距离。
请注意,仿射变换和 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.