球面到点的线性最小二乘拟合

时间:2012-04-27 02:45:47

标签: algorithm 3d least-squares

我正在寻找一种算法来找到点云和球体之间的最佳拟合。

也就是说,我想最小化

formula http://img855.imageshack.us/img855/6033/codecogseqn.gif

其中 C 是球体的中心, r 是它的半径,而每个 P 是我 n的一组中的一个点点。变量显然是 Cx Cy Cz r 在我的情况下,我可以事先获得一个已知的 r ,只留下 C 的组件作为变量。

我真的不想使用任何类型的迭代最小化(例如牛顿方法,Levenberg-Marquardt等) - 我更喜欢一组线性方程或明确使用SVD的解决方案。

6 个答案:

答案 0 :(得分:3)

没有即将出现的矩阵方程式。你选择的E表现得很糟糕;它的偏导数甚至不连续,更不用说是线性的。即使有不同的目标,这个优化问题似乎从根本上是非凸的;在一个点P和一个非零半径r的情况下,最优解的集合是关于P的球体。

你应该重新考虑具有更多优化知识的交易所。

答案 1 :(得分:0)

可以找到制作矩阵方程的简短描述here

我看到WildMagic Library使用iterative method(至少在版本4中)

答案 2 :(得分:0)

The linked thesis contains a problem : it doesn't handle noise properly and overestimates the radius. (Centre is OK). It looks like it should be possible to come up with a correction based upon the estimate of the applied noise.

答案 3 :(得分:0)

您可能对最适合的d维球体感兴趣,即,使到中心的平方距离的总体方差最小;它有一个简单的分析解决方案(矩阵演算):请参阅Cerisier等人的开放获取论文的附录。在J.Comput。生物学24(11),1134-1137(2017),https://doi.org/10.1089/cmb.2017.0061 在对数据点进行加权时有效(甚至对于连续分布也有效;作为副产品,当d = 1时,将检索到众所周知的不等式:峰度始终大于平方偏斜加1)。

答案 4 :(得分:0)

很难做到这一点而无需迭代。

我将进行如下操作:

  1. 通过平均所有点的(X,Y,Z)坐标来找到整体中点

  2. 得到的结果,找到到中点的平均距离Ravg,确定或继续。.

  3. 从您的集合中删除点,使其与步骤2中找到的Ravg的距离太远

  4. 返回第1步(再次取平均分,得出更好的中点)

当然,这需要(2)和(4)的某些条件,具体取决于点云的质量!

答案 5 :(得分:0)

您可能会发现以下参考资料很有趣,但我会警告您 你需要对几何代数有一定的了解 - 特别是共形几何代数来理解 数学。但是,该算法很容易实现 标准的线性代数技术,不是迭代的。

一个警告,该算法,至少在所呈现的同时适合中心和 半径,您也许可以找到一种方法来约束拟合,从而约束半径。

使用 n-D 欧几里得空间中 k 球体的总最小二乘拟合 (n+2)-D 等距表示。 L Dorst, Journal of Mathematical Imaging and Vision, 2014 p1-21

您可以从 Here is a video from Kevin Powell that shows how to do it.

最后一件事,我和作者没有关系。