测绘地理信息   2017, Vol. 42 Issue (4): 17-19
0
基于地面激光点云数据的NURBS曲面重建[PDF全文]
符华年1, 刘兴虎2, 李俊峰1    
1. 宁波市测绘设计研究院,浙江 宁波,315042;
2. 高德软件有限公司,北京,100102
摘要: 通过研究相关理论和方法,提出一个直接针对散乱点云数据重构NURBS曲面的解决方案,即依据点云分块及其拟合的四边界,构建孔斯曲面作为基面,通过基面投影实现散乱点云的参数化,并以最小二乘法完成分块数据的NURBS曲面拟合。曲面验证实例表明,通过该方法所拟合的NURBS曲面是有效的。
关键词: 地面三维激光雷达     NURBS     曲面重建     点云分块    
NURBS Surface Reconstruction Based on Terrestrial LiDAR Point Cloud
FU Huanian1, LIU Xinghu2, LI Junfeng1    
1. Ningbo Design Research Institute of Surveying and Mapping, Ningbo 315042, China;
2. Gao De Software Co., Ltd., Beijing 100102, China
Abstract: Based on related theories and methods, this paper proposes a solution to scattered point cloud data reconstruction of NURBS surface, that is, according to point cloud block and fitting the four boundaries, Coons curved surface is constructed as base to achieve the parameterization of the basal plane projection of scattered point cloud and complete NURBS surface fitting of data blocks with the least square method.Surface verification examples show that the method of fitting the NURBS surface by this method is very effective.
Key words: terrestrial LiDAR     NURBS     surface reconstruction     point cloud segmentation    

地面三维激光雷达技术因其能够高效率、高精度、高密度、高自动化地获取目标表面的点云而被广泛地应用于逆向工程。在逆向工程应用中,有一类产品复杂多变,无法用平面、锥面等初等解析曲面组合表达,须以自由曲面表示。国内外众多计算机辅助几何设计领域的学者对自由型曲线曲面的数学定义及属性做了大量研究,提出了孔斯、贝塞尔、B样条、非均匀有理B样条(non-uniform rational B-splines, NURBS)等曲线曲面造型理论,其中NURBS技术最为流行。如何由点云数据生成NURBS曲面,快速准确地构建测量目标模型一直是相关领域学者研究的热点问题。本文在已有的理论和方法的基础上,进行了散乱点云的NURBS曲面重建研究。

1 地面激光点云的预处理

以点云数据重构形体多变的目标形体时,目标表面模型一般由多张曲面块拼接而成,因此,需要按目标构造特征进行点云分块。目前,点云分块方法主要有基于边和基于面两种,本文尝试结合两种方法的优缺点进行分块,即基于曲率突变提取特征点,然后以区域增长手段实现数据分块。

根据曲面的连续特征,本文把曲面特征线划分为G1边(即曲面上位置连续,但切矢量不连续的边线)和G2边(即曲面上位置及切矢量同连续的边线)两类[1]G1G2边上点及其邻近点间的曲率变化有各自的规律性,可以通过曲率值的变化提取相应特征点。主要思路是:提取候选点主曲率方向和逆向的两个邻近点p1p2,比较3点间的主曲率值,满足特定条件,则候选点为特征点[2-6]

但采用基于边的分块方法难以保证分割区域封闭。因此,本文采取区域增长方法,并设置特征点为约束条件之一,实现数据分块。区域增长中,种子点的选择对增长结果有较大影响,需要尽量位于数据块中央,因此要有一定的限定条件:候选点为非特征点,且k邻域内若存在特征点,其数目不超过一定阈值。

2 NURBS曲面重建 2.1 分块的四边界构造

点云数据经预处理后,基于特征点的区域增长已划分为多个数据块,然后采取凸包拟合手法提取块初始边界线,再辅以交互手法修改不适宜边界。基于点云数据块拟合出对应边界后,还不能满足构建NURBS曲面重建的需要,还应进行四边界曲线的构造。构造时,首先进行边界分离点的识别,即划分整条边界曲线为连续的多条曲线。一般来说,所需要确定的边界曲线的弯曲程度不能太大,因此同一条边界曲线上相近顺序的三点abc所构成的夹角∠abc不会太小,基于此,本文采用判断夹角大小的手段来确定边界的分离点。确定边界分离点后,即可分离原边界曲线,分别进行NURBS曲线插值,即可构造出多条边界[7, 8]

2.2 数据点的基面投影参数化

利用双线性混合孔斯曲面片插值四条边界曲线生成基础曲面后,就可依照曲面法矢方向或给定的投影矢量把数据点投影到基面上,设置投影点对应的参数值为对应数据点的参数值。一般采用某种最小化技术来实现投影,即

$ d_i^2({u_i}, {v_i}) = \mathop {\min }\limits_{u, v} \;d_i^2(u, v) $ (1)

式中,(ui, vi)是数据点欲求的参数值;di在本文中表示以基面法矢为投影方向的曲面上一点到过Pi点投影线的垂距。di2(u, v)最小可取0,且投影点为基面与投影线间的交点。

由式(1) 可知,基面投影参数化是一个非线性的优化过程。以参数值uv为变量构建函数F(u, v),当散乱数据点Pi到基面距离最小时,其对应参数值即为所求解[9-11]

2.3 节点矢量的生成

当完成所有散乱数据的参数化后,需要进行节点矢量的确定,对此,本文采用的算法是均匀节点矢量算法,首先确定u向节点矢量。给定四边界内散乱数据点Pi(i=0, 1, …, m),其对应u向参数值为ui(i=0, 1, …, m),由基面投影参数化方法获得,且按非递增排序,即uiui+1(0≤im-1);设控制顶点数n=nu×nv,由于本文采用双三次NURBS曲面拟合,因此控制顶点数比节点数目小4。设u向节点矢量U= ${\left\{ {{{\overline u }_i}} \right\}^{{n_u} + 4}}$,则按均匀节点矢量法定义有:

$ {\bar u_i} = \left\{ \begin{array}{l} \begin{array}{*{20}{c}} 0,&{0 \le i \le 3} \end{array}\\ \begin{array}{*{20}{c}} {\frac{{i - 3}}{{{n_u} - 3}}},&{4 \le i \le {n_u} - 1} \end{array}\\ \begin{array}{*{20}{c}} 1,&{{n_u} \le i \le {n_u} + 3} \end{array} \end{array} \right. $ (2)

同理,v向节点矢量的确定类似。

2.4 参数点插值

由于参数值是散乱点云直接进行基面投影所得,因而可能会出现少数参数区间没有参数点的情况,在后续曲面拟合解线性方程组反求控制顶点时,系数矩阵奇异导致方程组不可解,因此必须对空参数区间进行参数点插值。具体流程如下:

1) 找到空参数域(i, j)。散乱数据得参数值序列中不存在参数uv,使得${\overline u _i} \le u \le {\overline u _{i + 1}}$${\overline v _i} \le v \le {\overline v _{i + 1}}$成立。

2) 在空参数域内插入参数对(u*, v*),${u^ * } = \frac{{{{\overline u }_i} + {{\overline u }_{i + 1}}}}{2}, {v^ * } = \frac{{{{\overline v }_i} + {{\overline v }_{i + 1}}}}{2}$

3) 插入(u*, v*)对应的空间点坐标,大致相当于基面投影参数化的逆操作——找到参数值取(u*, v*)时基曲面上对应的空间点坐标,而后加上所有数据点至投影点的有向距离平均值,即得到插入参数对的空间坐标值,完成参数点插值。

2.5 最小二乘法拟合曲面

将散乱数据点Pi(i=0, 1, …, m)及其对应的参数值(ui, vi)(i=0, 1, …, m)代入到NURBS曲面表达式中,可得到m+1个方程,求解n=nu×nv个控制顶点。一般情况下,m远大于n,即未知量数远小于方程数,因而不存在解可以满足所有的方程,只能根据相关最优化条件确定一个最优解。本文基于最小二乘法以解算方程组,确定拟合曲面的控制顶点。

以控制顶点为未知量,则NURBS曲面表达式可整理成如下形式:

$ \mathit{\boldsymbol{NQ}} = \mathit{\boldsymbol{P}} $ (3)

其中,N是将数据点对应参数对(ui, vi)(i=0, 1, …, m)分别代入B样条基函数向量

$ \begin{array}{l} \mathit{\boldsymbol{N}}(u,v) = [{N_{0,3}}(u){N_{0,3}}(v), \cdots ,{N_{0,3}}(u){N_{{n_v} - 1,3}}(v),\\ {N_{1,3}}(u){N_{0,3}}(v), \cdots ,{N_{{n_u} - 1,3}}(u){N_{{n_v} - 1,3}}(v) \end{array} $

所获得的系数矩阵,行数为m+1,列数为n=nu×nvQ是控制顶点组成的n维列向量;P是散乱数据点所组成的m+1维列向量。

为使拟合曲面精度能达到整体最优,也就是需要数据点到待求曲面的距离满足最小二乘条件,由此构建最小二乘函数,进而解求出控制顶点。

3 应用实例

表 1为曲面拟合误差分析,可以看出,拟合精度均方误差和平均误差都达到了0.1 mm级。

表 1 曲面拟合误差分析/mm Table 1 Surface Fitting Error Analysis/mm

图 1为本文曲面拟合实例,图 1(a)为茶杯点云底座所构造的基面,图 1(c)为某电话听筒底部点云块所构造的基面,图 1(e)为某汽车点云的后备箱盖数据块所构建的基面,图 1(b)1(d)1(f)分别为它们投影参数化后对应的最小二乘拟合曲面。

图 1 曲面拟合示例 Figure 1 Examples of Surface Fitting

综合分析表 1图 1可看出,本算法拟合精度较高,重构曲面比之基面,很好地反映了散乱数据点的分布,拟合效果较为明显。

4 结束语

本文针对散乱点云数据的特殊性质,提出了基于散乱点云数据重构NURBS曲面的解决方案。曲面验证实例表明,通过本文方法所拟合的NURBS曲面较为精确,可以很好地表现散乱点云的几何分布。

参考文献
[1] 谢洪. 地面三维激光雷达点云数据处理技术与应用研究[D]. 武汉: 武汉大学, 2009
[2] 张毅. 地面三维激光扫描点云数据处理方法研究[D]. 武汉: 武汉大学, 2009
[3] 贺美芳. 基于散乱点云数据的曲面重建关键技术研究[D]. 南京: 南京航空航天大学, 2006
[4] 李文姬, 钟约先. 曲面重构中散乱点云数据曲率估算算法的研究[J]. 机械设计与制造, 2006, (6): 43–45
[5] 万磊, 程效军, 谭凯. 基于CAD线框约束的建筑物三维激光点云建模[J]. 测绘地理信息, 2016, 41(1): 65–69
[6] 姚艳丽, 蒋胜平, 王红平. 基于地面三维激光仪的滑坡整体变形监测方法[J]. 测绘地理信息, 2014, 39(1): 50–56
[7] Piegl L, Tiller W. The NURBS Book[M]. 2nd ed. Berlin: Springer-Verlag, 2006
[8] Wand M, Berner A, Bokeloh M. Processing and Interactive Editing of Huge Point Clouds from 3D Scanners[J]. Computer and Graphics, 2008, 32(2): 204–220 DOI: 10.1016/j.cag.2008.01.010
[9] Barber D, Mills J, Smith-Voysey S. Geometric Validation of a Ground-Based Mobile Laser Scanning System[J]. ISPRS Journal of Photogrammetry and Remote Sensing, 2007, 63(1): 128–141
[10] Bae S H, Choi B K. NURBS Surface Fitting Using Orthogonal Coordinate Transform for Rapid Product Development[J]. Computer-Aided Design, 2002, 34(10): 683–690 DOI: 10.1016/S0010-4485(01)00198-1
[11] Piegl L A, Tiller W. Parametrization for Surface Fitting in Reverse Engineering[J]. Computer-Aided Design, 2001, 33(8): 593–603 DOI: 10.1016/S0010-4485(00)00103-2