从近似的相对距离估计绝对位置

我的问题如下:

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

  • 这个问题有名字吗?

  • 你知道一种算法可以很好地猜测绝对位置吗?

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


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

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

http://img4.mukewang.com/641287b90001fa0405030451.jpg

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

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


慕田峪7331174
浏览 97回答 2
2回答

凤凰求蛊

为了简化描述,我将假设点由复数表示。您的问题可以这样表述:我们有n+1 个点,任意设置为 (0,0) 的点和 n *unknown" 点,你有m 个嘈杂的观察结果,m比n大(很多) 。观察对应于对点i和j之间差异的(轻微)错误估计: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 方法可能出现的不稳定性。注意:如果矩阵求逆过于复杂,而且观察误差很小,当然可以使用迭代方法来改进估计。

忽然笑

我不知道这个问题的名字,但是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方法可能是一个不错的选择。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python