移动最小二乘算法理解
一、概述
当点云噪声较小且分布均匀时,我们更容易重建出光顺表面。Marc等人[1]在2003年提出使用移动最小二乘(Moving Least Square, MLS)算法来平滑三维点云。该算法思想比较简单,如图1,使用局部点云进行多项式拟合,得到一个拟合曲面
,然后使用拟合曲面上的投影替代原数据点。PCL实现了该算法,并增加了3种点云增采样方法,下面根据PCL的具体实现,简要介绍算法的实现流程。

二、算法流程
如图2,已知点和它的邻域点集
,想求取点
在拟合曲面
上的投影,分2步。首先计算出一个二维参考平面H,让点
能投影至平面点
,且距离为
。然后计算二维拟合曲面
,因变量为
。从而点
在拟合曲面
上的投影计算过程为:计算3D点
在平面H上的2D投影点
,计算拟合曲面
在点
处的函数值
,最终点
在曲面
上的投影值为
,其中
为平面H的法线。
1. 计算参考平面H
参考平面H定义为:,其中
为点x到平面的距离,D为常数。通过最小化下式(1)来计算参考平面H。其中
为点
到平面H的距离;
为
到点
在H上的投影点q的距离;
为平滑的单调递减函数,一般用高斯函数定义。
(1)
2. 计算二维拟合曲面
通过最小化下式(2)来计算多项式拟合曲面的参数。
(2)
其中,当使用高斯函数定义时,如式(3)所示。常量参数h决定了邻域点集
的选取范围;尺寸小于h的特征都会被平滑掉;h越大,点云越平滑。
(3)

3. 点云上采样
从MLS算法原理上看,空间上任意点都可以计算出在拟合曲面上的投影,为此PCL提供了3种点云上采样方法,下面简单介绍一下。
SAMPLE_LOCAL_PLANE:以q点为圆心,在平面H上选取一个圆形区域,在该区域内均匀采点,并计算这些点在拟合曲面
上的投影
RANDOM_UNIFORM_DENSITY:以q点为中心,在平面H上随机取点,并计算这些点在拟合曲面
上的投影
VOXEL_GRID_DILATION:使用3D网格覆盖点云空间,选取靠近点云的3D网格点,计算这些网格点在拟合曲面
上的投影
三、参考文献
[1] M. Alexa, J. Behr, D. Cohen-Or, S. Fleishman, D. Levin, C. T. Silva. Computing and Rendering Point Set Surfaces. IEEE Transactions on Visualization and Computer Graphics. 2003. 9(1): 3-15