改进的布料模拟算法在多波束点云粗差剔除中的应用

2021-11-23 12:59王胜利胡亮亮高文龙
科学技术与工程 2021年31期
关键词:格网差点布料

刘 毅, 王 磊, 王胜利, 胡亮亮, 高文龙

(1.山东科技大学测绘与空间信息学院, 青岛 266590; 2.自然资源部,海洋测绘重点实验室, 青岛 266590;3.山东科技大学海洋科学与工程学院, 青岛 266590)

多波束探测技术已经成为目前水下地形探测的主要方法[1]。近些年随着近岸浅水调查及浅水水下地形项目需求的日益增长,浅水多波束测深系统得到了广泛的应用[2-3]。在水下地形测量过程中,浅水多波束安装于船体侧舷容易受到噪声、复杂的海洋环境及设备参数设置不合理等多种因素的影响,测深数据中难免含有粗差[4]。

为了获得精确的水下地形,需要剔除多波束数据粗差,现有的滤波方法有人工剔除粗差和自动滤波两种。人工剔除粗差方法准确度较高,但是需要消耗大量的劳动力,且效率较低,无法满足大量数据处理[5]。因此许多专家学者提出自动滤波方法。李宏武等[6]利用基于最小二乘支持向量机(least squares support vector machines,LS-SVM)算法探测深度异常值;Calder等[7]提出CUBE(combined uncertainty and bathymetry estimator)算法;赵荻能等[8]提出了一种CUBE、曲面滤波参数联合选优流程;赵祥鸿等[9]提出利用BP神经网络剔除多波束测深数据粗差;杨安秀等[10]提出面向多波束测深数据的双向布料模拟自动滤波方法。

Zhang等[11]提出了基于布料模拟滤浓(cloth simulation filtering,CSF)算法对陆地激光点云滤波,其方法需要调整参数较少,精度高,适用不同复杂地形,给激光点云滤波提供了新的思路。本文中则利用CSF算法剔除多波束点云粗差,如果将CSF算法直接用于多波束点云滤波,会导致对凸起礁石和凹陷沟槽等水下地形过度滤波。因此在CSF算法基础上,提出一种基于改进的CSF算法多波束数据滤波来解决对于复杂海底地形过度滤波问题。首先,对多波束点云数据进行点云分割;然后,根据点云数据的面积和标准差调整每块布料滤波算法的参数;其次,构建布料滤波模型剔除粗差点;最后,将分割后的点云拼接生成水下地形点云数据,解决水下地形起伏较大时过度滤波的问题。多波束测量系统是在不断运动状态下进行的一种动态测量,由于测量平台受海浪起伏、风、流等海洋环境效应的干扰,多波束测深数据采集过程难免出现假信号,从而采集的数据与实际地形存在差异,这就是海洋测量信息获取过程中的粗差问题[12]。因此,粗差的判别非常重要,通常水下地形是连续变化,本文中利用布料模拟连续变化的水下地形,将离散点和异常线状点云判定为粗差。

1 改进的布料模拟滤波算法

1.1 布料模拟滤波算法原理

Zhang等[10]提出的CSF算法是利用布料模拟技术进行滤波。布料模拟技术可以想象成一块布放在一个水下地形的上方,布块在重力作用下落下,如果布料足够柔软,则可以贴在地形的表面上,最后布块的形状就是地形。基于布料模拟技术,Zhang等[10]开发了CSF算法用于激光雷达提取地面点,首先将原始点云翻转,模拟一块布落到翻转后的地面上,最终确定布块的形状,并将其形状作为点云分类的依据。本文中则利用CSF算法剔除多波束点云数据粗差点(图1)。

图1 布料模拟滤波算法原理

在布料模拟过程中,布料是由具有质量和互连的粒子组成的网格(图2)。网格节点上的粒子没有大小,质量相同且不变,粒子所在空间中的位置决定了布料的形状。布料格网中连接两个粒子的结构称之为“虚拟弹簧”并且遵循胡克定律。

图2 布料格网模型

布料格网中粒子的位置和速度由作用于粒子上的力决定,由牛顿第二定律可得,粒子位置与力之间的关系为

(1)

式(1)中:X(t)表示粒子在t时刻的位置;Fe(X,t)表示粒子所受外力,由粒子自身的重力G和与地形接触的碰撞力Fc组成,粒子在运动方向上碰撞到一些物体则会产生碰撞力;Fi(X,t)表示粒子在X位置和t时间的内力,由粒子间相互作用的“虚拟弹簧”产生(图3)。

图3 虚拟弹簧

建立布料格网模型时,首先,粒子的运动被限制在垂直方向,因此可以通过比较粒子和地形的高差来检测碰撞;然后,当一个粒子到达地形时,这个粒子就被设定为不可移动;最后,将力的分成离散的两个步骤,先计算重力对粒子的影响,后根据“虚拟弹簧”产生的内力修改粒子的位置(图4)。

图4 布料格网节点位移计算

仅从重力计算每个粒子的位置,即内力得零时可得

(2)

式(2)中:m表示粒子质量;g表示重力加速度;X(t)表示t时刻节点粒子位置;Δt表示时间长。当已知节点粒子初始位置与时间步长,则可以解算出格网节点的位置。

为了限制粒子在反转的点云空隙区域的位移,需要考虑到粒子间的内力。因为内力作用,粒子会停留在网格中,并且回到初始位置。遍历所有“虚拟弹簧”,对于每个弹簧比较形成这个弹簧的两个粒子之间的高差。如果两个粒子都是可以移动,在相反方向上移动相同的量;如果一个粒子不可移动,另一个将被移动。每个粒子的位移计算公式为

(3)

式(3)中:d为粒子的位移量;当粒子可以移动时b=1,不可移动时b=0;pi为p0的相邻粒子的位置,n为点进行标准化到垂直方向上的单位向量(0,0,1)T。

1.2 算法改进

1.2.1 水下地形点云分割

水下地形是连续变化的,由于海洋水体的运动会不断地侵蚀水下地形,并且一条测线覆盖范围相对较广,水下会有凹陷沟槽或者凸起礁石等地形。如果对一整条测线都使用相同参数进行CSF算法滤波,则容易在地形起伏较大处剔除水下地形点。因此需要对水下地形点云分割,当分割后点云面积大于S1=10 000 m2,则再对该点云进行分割,分割完成后可以针对不同区域调整参数进行CSF算法滤波(图5)。

图5 点云分割

1.2.2 自适应参数选取

水下地形数据滤波时,CSF参数调整是决定滤波质量的关键因素。CSF算法需要调整参数为6个分别为:是否有斜坡St、布料格网分辨率GR、布料刚性RI、时间步长dT、距离阈值hcc、迭代次数n。

(4)

1.3 算法流程

基于改进的CSF算法流程(图6),可以概括为以下步骤。

图6 算法流程

步骤1基于PCL对点云数据进行分割,使每个点云面积小于S1。

步骤2基于点云数据的标准差设置滤波参数:是否有斜坡St;布料刚性RI;布料格网分辨率GR。

步骤3计算布料在重力作用下格网节点高程值,计算节点之间弹簧力作用下的节点高程值。

步骤4重复步骤(3)当所有迭代次数大于设定n次,或者未达到n次且当所有节点粒子迭代后均未移动则迭代停止。

步骤5计算水下地形点云点与节点的高程差,若高程差小于或等于距离阈值hcc,则被分类为水下地形点,否则为粗差点。

步骤6将所有水下地形点云拼接。

2 实验与分析

2.1 实验数据

实验中采用两处多波束点云数据验证该算法有效性,分别为温州测区与青岛测区中条带数据,其中青岛测区平均水深41.15 m,数据共包含水深点9 204 749,条带跨度较大,水下地形起伏较大;温州测区数据平均水深9.25 m,数据共包含水深点3 551 232,条带跨度较小,水下地形起伏较小。选择这两数数据主要由于分别代表了两种典型的多波束点云数据粗差,两次数据粗差点均由噪声引起且无法避免,其中温州数据粗差集中于条带中央,呈线状,而青岛数据粗差主要位于条带两侧,呈毛刺状(图7)。所有数据均利用Reson SeaBat T50-P多波束测深系统采集,表1为Reson SeaBat T50-P多波束技术参数指标。

图7 实验区域

表1 T50-P多波束测深系统主要技术参数指标

2.2 结果分析

为了验证本文算法有效性,分别利用CSF算法、人工剔除粗差与本文改进的CSF算法对这两处多波束点云数据进行滤波。在测试中,CSF算法参数设定为St=true,GR=1,RI=1,n=500,dT=0.5,hcc=0.65。

图8、图9分别采用三种滤波方式对两处多波束点云得出的结果,通过对比分析可得:

图8 基于温州数据多种滤波方法比对

图9 基于青岛数据多种滤波方法比对

(1)三种滤波方式均可对多波束点云数据粗差点剔除,可以看出所有方法对平坦地形的水下粗差剔除效果较好。

(2)CSF算法由于参数固定,虽然对相对平坦地形滤波效果较好,但是对于复杂的水下地形难以达到理想的效果,产生了一定程度的过度滤波,导致部分水下地形数据的丢失,并且当测线面积较大时,所需计算时间和计算机内存成倍增加。

(3)人工剔除粗差时会遗漏少量粗差点。本文算法则弥补了CSF算法的劣势,针对不同水下地形进行自动参数调整,凸显了水下地形滤波的优势。通过对整体数据对比分析,验证了本文算法不仅能有效剔除多波束点云数据粗差也能更好地保留较大起伏的水下地形特征。

为了更好地量化本文算法优势,将这两条测线分别采用人工剔除粗差、CSF算法与本文算法滤波,滤波前后的各项指标如表2所示。与人工方法粗差点剔除比NR是指的利用算法剔除粗差点个数与人工剔除粗差点个数的比,即NR=Nn/Na,其中Na为人工剔除粗差点个数,Nn为算法剔除的粗差点个数[10]。

由表2可以看出,采用本文算法和CSF算法得到的NR,对于相对平坦区域和起伏较大区域分别从1.03下降到1.01和从1.46下降到1.19。从表2中可以看出人工剔除粗差效果虽然很好,但是最小水深均要比两种算法要小,经检查发现有遗漏粗差点;CSF算法在平坦地形条件下滤波效果较好,但是在起伏较大地形条件下存在过度滤波问题,导致局部地形数据丢失;本文算法表现较好,平坦和起伏较大地形均有良好的滤波效果,且多波束数据完整。

表2 多种方法滤波性能比对

3 结论

(1)人工剔除粗差效果较好,但是会遗漏粗差点,表现为最小水深不符合实际水下地形。

(2)CSF滤波算法对相对平坦的水下地形滤波有较好的效果,但是遇到有较大坡度的水下地形时,会出现过度滤波的现象。

(3)基于点云分割和自适应参数调整提出了改进的CSF算法,与CSF算法相比,克服了过度滤波现象,而且对于不同地区与人工方法粗差点剔除比分别从1.03下降到1.01和从1.46下降到1.19,保证了数据的完整性。与人工剔除粗差相比,避免了遗漏粗差点,人工干预很少。但是对于起伏更大地形,需进一步验证。

猜你喜欢
格网差点布料
格网法在2000国家大地坐标系基准转换中的关键技术
用布料拼图形
生态格网结构技术在水利工程中的应用及发展
差点100分
极区格网惯性导航性能分析
洗水soft fabric
按约定付账
按约定付账
基于格网的地形图信息管理方法研究及实现
差点忘记了