【问题标题】:Estimating absolute position from approximate relative distances从近似的相对距离估计绝对位置
【发布时间】:2020-11-07 13:22:34
【问题描述】:

我的问题如下:

我有一个散布在平面上的点之间的相对 XY 距离列表,这些点的测量存在一定的误差。 我已将一个点定义为原点,并且我想估计该参考系中所有其他点的绝对位置。 每个点至少有两条路径将它们链接到原点,并且由于测量误差,我从每条路径获得的绝对位置是不同的。 我想知道:

  • 这个问题有名字吗?
  • 您知道一种可以很好地猜测绝对位置的算法吗?

文本的其余部分只是您可以跳过的细节,如果您已经清楚问题。


这个问题的背景是我想从许多按顺序拍摄但位置不规则的较小图像构建合成图像。我通过计算序列中每个图像之间的互相关计算了第一组距离,从而对绝对位置进行了第一次粗略估计。这些绝对位置存在大量漂移,而应该完全重叠的图像则没有。 然后我使用它计算了每个重叠图像之间的互相关,因此我现在有了一个图像之间的距离网络,我希望能够使用它来优化绝对位置并获得更好的最终图像。

这是我制作的第一张合成图像:

基本图像略微透明并放在白色背景上。多个图像堆叠在同一位置 = 较暗的图像,无数据 = 白色。创辉蛇是我用来计算第一个绝对定位的序列,每一段都说明了它所在的图像和下一个图像之间测量的距离,它从左下角开始。在左下角,我们可以看到两个图像覆盖了相同的角点特征,但在 x 和 y 方向上都有 200 像素的误差。

我尝试使用自动拼接工具,但都失败了,因为许多图像普遍缺乏对比鲜明的特征。

【问题讨论】:

  • XY 距离到底是什么?
  • 这似乎有点类似于 SLAM 和运动表面。
  • @Damien 沿 X 轴的距离和沿 Y 轴的距离。换句话说:一个点相对于另一个点的位置。
  • 因此有符号距离,即向量 AB ?
  • @Damien 没错

标签: python algorithm image-processing


【解决方案1】:

为了简化描述,我假设点用复数表示。

你的问题可以这样表述:

我们有 n+1 个点,一个任意设置为 (0,0) 和 n *unknown" 点,你有 m 个嘈杂的观察,mn 大很多。

观察对应于对点 ij 之间差异的(略微)错误估计:

Y[k] = X[i] - X[j]

那么,关系集可以表示为:

Y = A X + N

其中X是未知点的向量,向量Y对应观察值,A是定义观察值的矩阵,N 表示观测的误差。

第一种方法是 LS(最小二乘法)。

通过使用 Moore-Penrose 伪逆,我们可以得到 LS 估计:

X1 = (A^H A)^(-1) A^H Y

其中 A^H 是 A 的 Hermitian 转置。由于这里的A是实数,它对应于A的转置。这个估计最小化

min norm of (AX - AX1)

另一种方法是假设 N 是方差为 s2 的加性高斯噪声。我们可以通过以下方式获得 MMSE/Wiener 估计:

X2 = (A^H A + s2 I)^(-1) A^H Y

其中 I 是大小为 n 的单位矩阵。该估计值最小化:

min E (norm (X2 - X)) = min MSE (Mean Square error)

其中E(.) 表示统计平均值(期望值)。这是一种随机方法(我们最小化期望),与 LS 方法相反。

有时,我们不能假设噪声是高斯的,或者我们不知道方差。此外,根据矩阵 A 的奇异值,LS 估计可能看起来并不完全稳定。然后,有时会使用第三种方法:

X2 = (A^H A + lambda I)^(-1) A^H Y

其中 lambda 是一个(小的)松弛系数,以避免 LS 方法可能出现的不稳定性。

注意:如果矩阵求逆过于复杂,并且观测误差较小,当然可以使用迭代方法来改进估计。

【讨论】:

  • 我不会撒谎:我需要一点时间来消化你的答案......但我发现你将你的重新表述为线性代数问题非常有趣!谢谢!
【解决方案2】:

我不知道这个问题的名称,但https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html 可以找到最小化误差平方和的解决方案。

您已经将第一个点固定在原点。您可以坚持认为第二个点在 x 轴上。这会导致如下点列表:(0, 0), (0, y1), (x2, y2), (x3, y3), ..., (xn, yn)。现在您只需编写一个函数,该函数接受[y1, x2, y2, x3, yx, ..., xn, yn] 并返回误差平方和。优化它。 BFGS 方法可能是一个不错的选择。

【讨论】:

    猜你喜欢
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    相关资源
    最近更新 更多