点云滤波是LiDAR点云数据处理中的重要步骤,针对传统曲面拟合滤波算法参数求解不合理,滤波阈值单一且自适应较差的问题,提出一种改进自适应阈值滤波算法。首先对预处理之后的点云数据引入虚拟格网进行分割并依据邻域格网选取种子点,然后采用混合最小二乘法对曲面拟合参数进行解算,计算真实高程与拟合高程的差值并结合k-means聚类与正态分布确定自适应阈值,最后采用多级滤波的策略逐级改变虚拟网格大小实现点云的高精度滤波。将该算法与其它经典滤波算法进行对比分析,试验结果表明:本文算法在不同场景下有良好的滤波精度,且稳定性较好。 Point cloud filtering is an important step in LiDAR point cloud data processing. Aiming at the prob-lems of unreasonable parameter solving, single filtering threshold and poor adaptability of tradi-tional surface fitting filtering algorithm, an improved adaptive threshold filtering algorithm was proposed. Firstly, the pre-processed point cloud data is introduced into the virtual grid for segmen-tation, and the seed points are selected according to the neighborhood grid. Then, the mixed least squares method is used to solve the fitting parameters of the surface, and the difference between the real elevation and the fitted elevation is calculated, and the adaptive threshold is determined by combining K-means clustering and normal distribution. Finally, the multi-stage filtering strategy is used to change the size of virtual grid step by step to achieve high precision filtering of point clouds. The proposed algorithm is compared with other classical filtering algorithms, the experi-mental results show that the proposed algorithm has good filtering accuracy and good stability in different scenes.
点云滤波是LiDAR点云数据处理中的重要步骤,针对传统曲面拟合滤波算法参数求解不合理,滤波阈值单一且自适应较差的问题,提出一种改进自适应阈值滤波算法。首先对预处理之后的点云数据引入虚拟格网进行分割并依据邻域格网选取种子点,然后采用混合最小二乘法对曲面拟合参数进行解算,计算真实高程与拟合高程的差值并结合k-means聚类与正态分布确定自适应阈值,最后采用多级滤波的策略逐级改变虚拟网格大小实现点云的高精度滤波。将该算法与其它经典滤波算法进行对比分析,试验结果表明:本文算法在不同场景下有良好的滤波精度,且稳定性较好。
滤波,LiDAR,混合最小二乘,虚拟网格,自适应阈值
Jing Su1*, Xiaohong Wang1#, Hui Wang1, Runmin Zhou1, Lu Liu2
1School of Mining, Guizhou University, Guiyang Guizhou
2School of Forestry, Guizhou University, Guiyang Guizhou
Received: Nov. 26th, 2022; accepted: Dec. 21st, 2022; published: Dec. 29th, 2022
Point cloud filtering is an important step in LiDAR point cloud data processing. Aiming at the problems of unreasonable parameter solving, single filtering threshold and poor adaptability of traditional surface fitting filtering algorithm, an improved adaptive threshold filtering algorithm was proposed. Firstly, the pre-processed point cloud data is introduced into the virtual grid for segmentation, and the seed points are selected according to the neighborhood grid. Then, the mixed least squares method is used to solve the fitting parameters of the surface, and the difference between the real elevation and the fitted elevation is calculated, and the adaptive threshold is determined by combining K-means clustering and normal distribution. Finally, the multi-stage filtering strategy is used to change the size of virtual grid step by step to achieve high precision filtering of point clouds. The proposed algorithm is compared with other classical filtering algorithms, the experimental results show that the proposed algorithm has good filtering accuracy and good stability in different scenes.
Keywords:Filtering, LiDAR, Mixed Least Squares, Virtual Grid, Adaptive Threshold
Copyright © 2022 by author(s) and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
激光雷达(LiDAR)作为一种新兴的测量手段,由于其精度高、可靠性强、可实时快速获取大范围空间三维信息与全天候作业等特点,现已被农林业与三维城市建模等广泛运用 [
传统的坡度滤波方法原理简单、效率高但阈值的选取与自适应性有待提高。基于不规则三角网的滤波方法效果好,但对于不连续地形与地形复杂区域适用性差且对异常值敏感。基于数学形态学的滤波算法依赖于移动窗口尺寸的选择,窗口尺寸过大易过滤掉地形凸包,过小则会忽略大型建筑物。布料模拟滤波算法将点云倒置,通过多次迭代确定布料节点最终位置,最后计算点云与布料点的距离并设定阈值进行滤波。该方法效果好,但需人为设定的参数过多。基于曲面拟合的滤波算法能较大程度上还原地形特征,但滤波精度依赖于参数解算方法与种子点的选取,滤波阈值的自适应性也有待提高。针对曲面拟合算法的以上问题,文献 [
在综合分析上述曲面拟合算法的优势后,本文提出一种多尺度格网曲面拟合的自适应阈值点云滤波算法。该算法使用金字塔策略构建多级虚拟格网,根据坡度因子大小设置邻域窗口选取种子点,采用混合最小二乘(least squares-total least squares, LS-TLS)进行曲面参数解算,借鉴k-means聚类思想确定自适应滤波阈值。与传统曲面拟合算法相比进一步提升了算法的自适应性。
传统的曲面拟合算法仅采用6个种子点进行拟合 [
图1. 本文算法流程图
由于多路径效应等影响,点云数据在采集时不可避免的会存在一些噪声点 [
虚拟格网的构建即点云格网化,忽略点云数据中的高程值并将其投影在X-Y二维平面上。格网的构建步骤如下:首先根据点云数据的X-Y最大最小值确定格网边界。其次设置初始格网大小来进行点云数据的格网ID号计算。其计算公式如下:
{ C o l = i n t ( x n − x min l ) + 1 R o w = i n t ( y n − y min l ) + 1 (1)
式中:Col代表行号;Row代表列号; x n 、 y n 代表点云的坐标值;l代表格网尺寸; x min 、 y min 代表点云坐标的最小值。
大多数移动格网将格网邻域设置为2*3或3*3,其格网尺寸也固定不变。然而考虑到地形特征的连续性与完整性,固定的格网尺寸与邻域在地形起伏较大时容易忽略地形特征点,导致拟合后的平面与实际地面相差过大。因此本文的格网尺寸与邻域根据地形坡度来进行设置。首先将邻域格网设置为3*3,计算中心格网最低点与周围8邻域格网最低点的坡度,再依据距离越远,权重越低的原则将这些坡度进行反距离加权。最后根据加权坡度值来设置格网的尺寸与邻域大小。加权坡度值计算公式如下:
{ s l o p e a v e = ∑ i = 1 8 w i s i w i = 1 D i ∑ i = 1 8 1 D i S i = Z min − Z min ( i ) D i (2)
式中, w i 为权重因子; D i 为中心格网最低点到第i个邻域格网最低点的距离; s i 为中心格网最低点与第i个邻域格网最低点计算得到的坡度值。领域格网如下图2所示。
图2. 8邻域格网
根据计算出来的加权坡度值将格网尺寸与邻域大小进行调整。加权坡度值大则说明地势起伏大,格网内地面特征点多,此时保持格网邻域不变,通过缩小中心格网尺寸得到更多地面种子点;加权坡度值小则说明地势起伏较小,此时保持中心格网尺寸不变,通过扩大格网邻域搜索更多种子点。对于格网尺寸来说:如果加权坡度值未超过20˚,则选择初始格网尺寸,不做调整;若超过20˚,说明地势有起伏,则将格网尺寸缩小一半。对于邻域大小来说:如果加权坡度值超过10˚则领域格网设置为3*3;否则重新计算每个格网相对于5*5邻域格网的反距离加权平均坡度值。若计算后的加权坡度值超过5˚,则设置邻域格网为5*5,否则设置为7*7。最后选择各个格网内的最低点作为种子点进行二次曲面拟合计算。多尺度格网划分及种子点选取如下图3所示。
图3. 格网划分及地面种子点选取
在选取足够的种子点之后,用这些种子点来拟合近似地形,二次曲面拟合方程如下:
Z i = a 0 + a 1 X i + a 2 Y i + a 3 X i 2 + a 4 Y i 2 + a 5 X i Y i (3)
式中: a j ( j = 0 , 1 , ⋯ , 5 ) 表示曲面方程的系数, X i 、 Y i 、 Z i 表示点云数据的三维坐标值。
将该式矩阵化又可表示为:
[ Z 1 Z 2 ⋮ Z N ] = [ 1 X 1 Y 1 X 1 2 Y 1 2 X 1 Y 1 1 X 2 Y 2 X 2 2 Y 2 2 X 2 Y 2 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ 1 X n Y n X n 2 Y n 2 X n Y n ] [ a 0 a 1 a 2 a 3 a 4 a 5 ] (4)
式(4)可简化为
L = A X (5)
式中A为系数矩阵,L为观测向量。考虑到点云在数据采集时存在不可避免的误差,即系数矩阵A与观测向量L存在误差,式(5)应该写为:
L ≈ A X (6)
又因为A中只是部分向量存在误差,其常数列不存在误差,因此将A分解为
A = [ A 1 A 2 ] (7)
将对应的X分解为
X = [ X 1 T X 2 T ] T (8)
分解后的混合最小二乘变量含误差(Error In Variables, EIV)模型如下:
L + Δ L = A 1 X 1 + ( A 2 + Δ A 2 ) X 2 (9)
式中,A1为n × 1的常数列,A2为n × 5的非常数矩阵, Δ L 与 Δ A 2 表示观测向量与系数矩阵A中非常数元素的误差;n为观测数。其参数求解过程如下:
首先构建增广矩阵 C = [ A L ] ;然后对其进行QR分解。
C = Q R (10)
分解得到的Q为n × n的酉矩阵,R为7 × 7的上三角矩阵。则
R = Q T C = Q T [ A 1 A 2 L ] = [ R 11 R 12 R 1 L 0 R 22 R 2 L ] (11)
将此方程以分块的形式表示可得:
R 11 X 1 + R 12 X 2 = R 1 L (12)
R 22 X 2 = R 2 L (13)
对式(13)构造增广矩阵并进行奇异值分解可得到X2的整体最小二乘估计值,最后将X2回代至式(12)对X1进行经典最小二乘可得其解。
混合最小二乘以不同的约束准则分别对X1与X2进行参数估计。该方法不仅考虑到了观测向量与系数矩阵的测量误差,还将系数矩阵一分为二进行参数解算。普通最小二乘法只考虑了因变量的误差,忽略了自变量的误差;整体最小二乘法考虑到了二者同时存在误差,却忽略了系数矩阵中的常数项。混合最小二乘法综合了经典最小二乘与整体最小二乘法,兼顾了自变量与因变量误差的同时将系数矩阵分开处理,采用该方法进行曲面方程参数解算是较为合适的。
大多数滤波算法在面对不同场景的点云数据时需手动设置不同的滤波阈值参数。为了减少人工对算法的干预,提升算法的普适性,需设置自适应阈值。文献 [
考虑到部分区域存在地物点与地面点较为接近的情况,例如低矮植被,其分层现象不明显。这种情况下不使用k-means聚类方法进行分类,直接计算高差值数据的均值 μ 2 和均方差 σ 2 ,将高差数据大于 μ 2 + n σ 2 的点作为非地面点剔除。
在使用k-means聚类后可得到两种数据,聚类中心较小的高差数据与较大的高差数据,将中心较小的聚类结果视为地面点结果并计算出其均值 μ 1 和均方差 σ 1 ,将 μ 1 + n σ 1 当作高差阈值进行滤波分类。利用正态分布确定阈值时,n可取2或3。小于该阈值的分为地面点,否则分为非地面点。然而在实际情况中可能存在格网内全是地面点的特殊情况,此时的格网拟合高差数据全部偏小。因此需设置一个最低高差阈值,若滤波格网内的最大拟合高差值小于该阈值,则滤波格网内的点全部分为地面点。通常情况下最低地物点应高于地面0.5 m,故本文将最低高差阈值设置为0.5 m。
为验证算法的有效性,选择国际摄影测量与遥感学会(International Society for Photogrammetry and Remote Sensing, ISPRS)发布的公开点云数据集进行实验,共15个样本,包括了城市及森林两种场景,其点云数据密度分别为0.67点/m2和0.18点/m2。数据集已经手动分类并贴上标签。在点云滤波之前先利用统计滤波进行数据预处理。数据预处理之后可根据点云样本数据的最大建筑物尺寸设置初始格网大小,其后的多级滤波格网尺寸则逐级缩小,例如二级格网大小为初始格网的一半,三级格网则缩小为初始格网的1/3,以此类推。所选的数据集中的15个样本数据的初始格网与数据特征如下表1所示。
场景 | 样本数据 | 地形特征 | 初始格网大小 |
---|---|---|---|
城市 | Sample11 | 陡坡上的植物与建筑物 | 15 |
Sample12 | 平坦地面上的建筑物与小物体 | 40 | |
Sample21 | 狭窄桥梁 | 30 | |
Sample22 | 通道与桥梁 | 25 | |
Sample23 | 复杂建筑物与不连续地形 | 40 | |
Sample24 | 陡坡 | 30 | |
Sample31 | 带有噪声点的不连续地形 | 25 | |
Sample41 | 低值噪声点 | 35 | |
Sample42 | 频繁的地形起伏 | 40 | |
森林、乡村 | Sample51 | 斜坡植被 | 15 |
Sample52 | 低矮植被与矮坡 | 5 | |
Sample53 | 不连续地形 | 5 | |
Sample54 | 村庄与建筑物 | 40 | |
Sample61 | 不连续地形、山脊、岸渠 | 5 | |
Sample71 | 桥梁 | 10 |
表1. 样本数据特征与初始格网大小
为更好说明本文算法的滤波过程,选取数据集中的样本12与样本54为例进行展示。样本12为城市区域,存在大量建筑物,地势较为平坦,但含有大量零散地物。样本54为村庄区域,地势崎岖不平,建筑物旁有大量植被。共进行3次滤波,图中的白色点云为错误分类的地物点。由图中可看出,在第一次滤波后,样本中的大尺寸建筑物基本被剔除,但仍然存在部分错分情况,主要是建筑物旁的低矮植被与小物体有残留。而在经过2级与3级滤波之后,错分点明显减少,滤波处理相比第一次而言更加精细,地面细节得到了保留,滤波结果更加贴近真实地面。由此可知,多级滤波的策略逐步剔除地物点,还原真实地表,相比于单次滤波效果更佳。滤波结果如图4与图5所示。
图4. Sample12滤波后地面点结果
图5. Sample54滤波后地面点结果
为进一步对试验结果进行分析,本次试验采用ISPRS于2003年提出的误差评价标准对滤波结果进行定量分析。该标准将误差分为三类,一类误差为地面点错分为地物点的误差,二类误差为地物点错分为地面点的误差,一类误差与二类误差之和与总点云的比值称为总误差。表中a代表滤波后分类正确的地面点,b代表分类错误的地面点即地面点错分为地物点,c代表分类错误的地物点即地物点错分为地面点,d代表分类正确的地物点。e和f代表参考数据中地面点和地物点的个数,g和h代表滤波结果中地面点和地物点的个数,n代表总点云个数。评价标准如下表2所示。
参考数据 | 滤波结果 | 参考数据点 | 误差/% | |
---|---|---|---|---|
地面点 | 地物点 | |||
地面点 | a | b | e = a + b | b/e (一类) |
地物点 | c | d | f = c + d | c/f (二类) |
滤波结果总和 | g = a + c | h = b + d | n = a + b + c + d | (b + c)/n (总误差) |
表2. 滤波误差评价标准
根据误差评价标准进行定量分析,可以看出sample21,sample31,sample42,sample51,sample61,sample71等样本滤波效果较好,总误差均达到了6%以下,而sample11与sample23效果较差,误差达到10%以上。其中的sample31与sample61均为不连续地形且地形有起伏变化,说明本文算法在面对不连续地形时依然有一定适用性。sample11地形坡度较大低矮植被较多且同一高程面上地面点与地物点错杂在一起,导致曲面拟合效果不佳,滤波分类存在难度。部分样本结果如下表3所示。
场景 | 样本数据 | 一类误差 | 二类误差 | 总误差 |
---|---|---|---|---|
城市 | Samp11 | 11.98 | 21.56 | 15.74 |
Samp12 | 2.65 | 9.69 | 6.15 | |
Samp21 | 1.72 | 8.10 | 2.87 | |
Samp23 | 10.68 | 10.56 | 10.63 | |
Samp24 | 7.16 | 18.20 | 9.48 | |
Samp31 | 8.24 | 2.28 | 5.88 | |
Samp41 | 7.72 | 4.36 | 6.19 | |
Samp42 | 8.35 | 3.34 | 4.82 | |
乡村 | Samp51 | 4.75 | 13.24 | 5.94 |
Samp54 | 5.50 | 8.13 | 6.97 | |
Samp61 | 1.03 | 29.42 | 2.01 | |
Samp71 | 5.67 | 14.33 | 5.85 |
表3. 滤波结果误差统计表(部分样本)/%
将本文算法数据集的滤波结果与ISPRS发布的8种经典滤波算法进行算法精度对比,进一步对本文算法进行分析。由表4中可知本文算法的总误差均值为7.04,均方差为3.61,高于其中的7种经典滤波算法。其中Sample61精度最高,Axelsson [
样本 数据 | Axelsson算法 [
|
Roggero算法 [
|
Elmqvist算法 [
|
Wack算法 [
|
Brovelli算法 [
|
Sohn算法 [
|
Pfeifer算法 [
|
Sithole算法 [
|
本文算法 |
---|---|---|---|---|---|---|---|---|---|
Samp11 | 10.76 | 20.80 | 22.40 | 24.02 | 36.96 | 20.49 | 17.35 | 23.25 | 15.74 |
Samp12 | 3.25 | 6.61 | 8.18 | 6.61 | 16.28 | 8.39 | 4.50 | 10.21 | 6.15 |
Samp21 | 4.25 | 9.84 | 8.53 | 4.55 | 9.30 | 8.80 | 2.57 | 7.76 | 2.87 |
Samp22 | 3.63 | 23.78 | 8.93 | 7.51 | 22.28 | 7.54 | 6.71 | 20.86 | 12.36 |
Samp23 | 4.00 | 23.20 | 12.28 | 10.97 | 27.80 | 9.84 | 8.22 | 22.71 | 10.63 |
Samp24 | 4.42 | 23.25 | 13.83 | 11.53 | 36.06 | 13.33 | 8.64 | 25.28 | 9.48 |
Samp31 | 4.78 | 2.14 | 5.34 | 2.21 | 12.92 | 6.39 | 1.80 | 3.15 | 5.88 |
Samp41 | 13.91 | 12.21 | 8.76 | 9.01 | 17.03 | 11.27 | 10.75 | 23.67 | 6.19 |
Samp42 | 1.62 | 4.30 | 3.68 | 3.54 | 6.38 | 1.78 | 2.64 | 3.85 | 4.82 |
Samp51 | 2.72 | 3.01 | 21.31 | 11.45 | 22.81 | 9.31 | 3.71 | 7.02 | 5.94 |
Samp52 | 3.07 | 9.78 | 57.95 | 23.83 | 45.56 | 12.04 | 19.64 | 27.53 | 5.79 |
Samp53 | 8.91 | 17.29 | 48.45 | 27.24 | 52.81 | 20.19 | 12.60 | 37.07 | 4.90 |
Samp54 | 3.23 | 4.96 | 21.26 | 7.63 | 23.89 | 5.68 | 5.47 | 6.33 | 6.97 |
Samp61 | 2.08 | 18.99 | 35.87 | 13.47 | 21.68 | 2.99 | 6.91 | 21.63 | 2.01 |
Samp71 | 1.63 | 5.11 | 34.22 | 16.97 | 34.98 | 2.20 | 8.85 | 21.83 | 5.85 |
均值 | 4.82 | 12.35 | 20.73 | 12.04 | 25.78 | 9.35 | 8.02 | 17.48 | 7.04 |
均方差 | 3.56 | 8.09 | 16.48 | 7.77 | 13.26 | 5.63 | 5.27 | 10.23 | 3.61 |
表4. 各滤波算法对比
针对传统曲面拟合算法的不足,本文根据地形坡度构建多尺度虚拟格网与邻域选取种子点,探讨了TLS-LS方法相较于经典最小二乘法解算曲面方程的优点,借鉴正态分布思想实现高差阈值的自适应选取,减少了人工对算法的干预程度,研究了多级滤波策略逐级分离地面点与非地面点的可行性。与其它经典滤波算法的对比试验表明,本文算法在不同的场景下有着良好普适性且精度较高。但本文算法也有不足之处,在坡度变化较大、地面点与非地物点分层现象不明显且交杂在一起时,滤波效果有待提高。
国家自然科学基金(41901225),教育部规划基金项目(22YJAZH083),贵州省科技计划项目(黔科合支撑[
苏 靖,王晓红,王 辉,周润民,刘 璐. 基于多尺度虚拟格网的点云自适应滤波算法Adaptive Filtering Algorithm of Point Cloud Based on Multi-Scale Virtual Grid[J]. 应用数学进展, 2022, 11(12): 9039-9049. https://doi.org/10.12677/AAM.2022.1112953
https://doi.org/10.3390/rs8060501
https://doi.org/10.1016/j.patrec.2010.03.007
https://doi.org/10.1016/j.isprsjprs.2004.05.004