APP下载

一种运用PCA的深度学习激光点云分类方法

2021-05-27黄五超黄勃学杨朝辉

计算机与现代化 2021年5期
关键词:布料高程滤波

黄五超,韩 玲,黄勃学,杨朝辉

(长安大学地质工程与测绘学院,陕西 西安 710061)

0 引 言

激光雷达是一种集全球定位系统、惯性导航系统和点云获取技术为一体的成熟高新技术。随着激光雷达技术的不断发展,三维点云数据已经被广泛应用于测绘、遥感等领域[1]。点云数据的获取,不会受到天气、光照等外界因素的影响,并且具有丰富的三维空间信息。除此之外机载激光雷达数据还包括回波次数、回波强度、RGB等信息,这将有利于点云数据的应用。激光点云数据的分类是点云数据信息的获取和三维模型重建的关键技术,通过点云分类可将点分为地面点、植被和建筑物等多个类别。其中,地面点可以用于地貌分析和工程技术设计,建筑物类可以用来进行城市三维建模和用于智慧城市的建设,植被类可以用于城市的绿地规划和设计,还可用来进行林业调查。因此,设计一种准确的机载激光点云分类方法具有极其重要的实际价值并且也具有极大的理论意义。近年来随着深度学习的不断发展,研究者已经用深度学习网络来对点云数据进行分类。深度学习作为机器学习的分支,也与其有诸多共同之处,通过多层神经网络逐层抽象得到特征,并不需要人工提取特征,这在一定程度上减少了研究者的工作量。在2017年由Qi等人[2]提出了Point-Net神经网络,可以直接输入点云数据进行分类处理,避免信息丢失。这为点云分类带来了新的方法,该算法既具有深度学习的优势,也避免了传统机器学习算法的不足。为了更精确、更方便地实现点云分类,本文提出一种基于PCA降维的Point-Net深度学习分类算法。

1 相关工作

目前,点云处理最热门的方向是将机器学习模型应用到点云数据分类当中。现在最常用的激光点云分类方法包括随机森林、支持向量机、聚类分析、深度学习等方法[3-4]。当前也有许多研究者致力于激光点云分类的研究,谭凯等人[5]基于激光点云数据的强度信息,运用自适应非监督的方法实现了点云分类,基于激光点云数据的强度信息进行校正,目的是去除入射角和激光测距仪对强度信息的影响,但在分类时仅采用单一的强度信息使得点云分类精度降低;王书民等人[6]采用模糊C均值方法进行激光点云分类,应用LiDAR的全波形数据并对其进行分解以达到点云分类的目的,在分割的基础上实现无监督分类,但点云分割可能会花费较多时间;刘昌军等人[7]基于FCM的方法实现建筑物和植被的分类,分类效果较好,但没有实现对于多类地物的分类;姚娟等人[8]基于大数据实现了点云分类和建模,引入大数据中的贝叶斯估计算法和包围盒法对机载激光雷达点云分类与建模,但未能对较大规模的点云数据进行分类和建模;杨俊涛[9]基于概率图模型实现了机载激光雷达数据的分类,将三维场景分为地面、低植被、高植被和建筑物4类,但实际中地物类别的信息还是比较复杂;刘雪丽[10]基于点云的局部特征信息实现了点云分类,提出了基于二值化提取几何特征描述子,但此分类方法只把二值化特征作为分类依据,在分类时可能会显得特征单一;李晓天等人[11]基于改进层次分析的方法实现机载激光点云数据分类,实现了使用分类器组合进行特征分割和重组,在此基础上实现了点云分类,但由于特征信息有限并没有更细致的分类;崔晨彦等人[12]基于特征面实现了激光点云数据分类,对滤波结果进行栅格化,并采集分类要素的特征面,对特征面范围内的点云再进行自动滤波处理,但是此方法人工工作量较大且依赖于特征面的提取;马东岭等人[13]基于点云数据的高程差异实现了点云数据分类,提取的高程差有利于实现点云分类,但未将小型设施实现高精度分类;何鄂龙等人[14]基于一种改进的空间上下文关系实现了点云分类,考虑到了上下文关系从而实现了点云分类,但自适应邻域算法计算量较大,还需进一步优化处理;其中机器学习分类方法是从激光点云数据中提取出点的多种特征进行点云分类。在当前点云分类的研究过程中,基于机器学习的方法为了获得较高的精度往往需要计算大量的点云特征,这会导致数据处理的复杂程度增大,并且在特征选择时出现特征信息不知如何取舍的问题。

与以上算法不同的是,本文算法能很好地避免大量点云特征的提取,并且能对多种地物类型实现分类。为了解决目前点云分类过程中存在的问题,本文提出一种基于PCA降维的Point-Net深度学习分类算法[15-16]。首先,为了去除噪声点对分类结果的影响,应对点云数据进行去噪处理;其次,为了避免点云分类中特征信息不足的问题,基于点云的高程信息提取点云的相对高程特征;接着,对激光点云多维数据进行PCA数据降维,去除冗余数据;最后将点云数据输入到Point-Net网络中,训练出分类模型,并对实验数据进行分类,对比不同分类方法的分类精度。

2 算法描述

本文基于机载激光雷达数据进行分类处理,机载激光雷达数据获取比较快捷,并且其获取的数据信息比较丰富,包括三维坐标信息、RGB信息、回波强度、回波次数等多种信息。这种激光点云多维数据有利于进行点云分类处理,因为其具有更多的特征信息,在分类时会有更多的特征信息进行选择,分类后有利于将其应用于城市三维重建、林业调查和城市规划等领域。

本文的研究包括点云去噪、点云滤波、特征提取、数据降维、模型训练、点云分类、分类模型精度评价和分类结果对比分析等内容,流程如图1所示。

图1 本文工作流程图

2.1 基于r邻域的点云去噪算法

在激光雷达系统所获取的点云中必然存在异常点,主要原因有设备因素、多路径效应、云及飞鸟等。由于在数据采集过程中点云数据的获取存在着多路径效应,这类异常点是不可避免的,在点云数据中表现为其高程值与相邻点的高程差相对较大。在点云数据处理过程中,首先就是对点云进行去噪处理,去掉点云数据的噪声点。点云去噪的基本原则:在剔除异常点时,还应该保留地面点和地物点,以便于点云的后续处理。

为了去除噪声点对分类结果的影响,本文利用基于目标点r邻域的点云去噪算法。该算法的基本思想是:对每一个点搜索r邻域中的相邻点,计算目标点到相邻点的距离平均值、中值和标准差,如果这个点的距离平均值大于最大距离阈值(最大距离阈值=中值+标准差倍数×标准差),则认为是噪点,将被去掉;当其小于或等于阈值时,则认为该点为正常点[17]。

2.2 点云滤波

本文采用的滤波算法为布料模拟滤波(Cloth Simulation Filter, CSF)算法,其主要内容为假设一块虚拟的布料受重力作用在地形表面上,若这块布料足够软,则会与地表面贴附在一起,此时布料的形状就是DSM(数字表面模型);当地形发生翻转时,贴附在表面布料的形状就为DTM(数字地面模型)。布料模拟示意图如图2所示。布料模拟滤波算法相比于其他几种滤波算法的优势在于:1)可以应用于陡坡、平坦、城区等几种不同的区域,可以根据区域的地形选择相适应的滤波算法;2)相比于传统的滤波算法中复杂的调参过程,布料模拟滤波算法的参数更容易设置且比较简便,易于实现[18-19]。

图2 布料模拟滤波示意图

布料模拟滤波算法处理流程:

1)在经过点云去噪处理的基础上,对点云进行倒置处理。

2)将所有激光点投影到水平面上,平面上的点作为格网点,基于KD树最近邻索引得到模拟点最相邻激光点的高度值为IHV。

3)遍历所有的布料粒子,当粒子受到重力作用后,若粒子的高度值CHV小于IHV,将粒子的高度值设置为IHV,并将当前的布料粒子设置为不可移动粒子。

4)计算模拟布料粒子之间的内力作用,根据已经设置的布料的刚性参数,确定模拟布料粒子之间的相对位置。

5)重复步骤3和步骤4的计算过程,迭代次数达到设置的参数时停止迭代。

6)计算激光点云与对应布料粒子之间的距离,当距离小于等于阈值时标记为地面点,距离大于阈值时标记为地物点。

由于点云数据具有高程信息,点云的相对高程信息能很好地区分建筑物、道路和植被等类别。因此在滤波基础上需要提取出点云的相对高程(目标点与地面点高程的差值),这样就可以很容易区分出点云的类型,有利于后续的点云分类处理。

点云的相对高程提取步骤包括:

1)在经过布料模拟滤波的基础上分别得到地面点和非地面点。

2)对地面点建立KD树,对于全部点云在地面点中搜索k个最近邻点。

3)对于所得到的k个最近邻点求取均值。

4)遍历求取所有点云的相对高程,公式为:

H相对高程=H-H均值

(1)

算法描述:

输入:数据集Ground={(x1,y1,z1), (x2,y2,z2), …, (xm,ym,zm)}, All={(x1,y1,z1), (x2,y2,z2), …, (xn,yn,zn)};

过程:

1. 对于All建立KD树;

2. 将Ground设置为搜索空间;

3. fori=1∶Ground_size;

4. 对每一点进行最近邻索引得到k个最近邻集合Bi;

5. forj=1∶k;

6. sum+=Bi;

7. end;

8.H均值=mean(sum);

9. 使用公式(1)计算出每个点的相对高程;

10. end;

11. 输出提取相对高程特征的点云All。

该算法可以很好地提取点云的相对高程特征,并且可以应用到点云分类当中。

2.3 点云分类的Point-Net网络模型

Point-Net网络模型可以对三维点云数据进行分类,是一种点云分类的深度学习框架。由于点云数据在分类过程中存在空间关系不规则的情况,因此在点云领域产生了许多基于将点云格网化的深度学习框架,取得了很好的效果。Point-Net是通过在分类网络中加入Transform-Net输入变换矩阵和最大池化层(Max Pooling)。Transform-Net网络通过点云的位置可以学习到一个旋转矩阵,通过损失函数来对旋转矩阵进行调整,把输入的点云数据旋转到一个更加有利于分类的角度;最大池化层是在卷积层之后对输入数据进行降采样处理,在降低输出维度的同时保留点云的特征,在Point-Net网络中提取点云的全局特征[2,20-21]。

本文不仅应用激光雷达数据的坐标数据,还在坐标数据基础上加入了点云数据的回波强度、回波次数、RGB、相对高程等信息。这不仅丰富了点云数据的信息,而且更加有利于模型训练得到更多的特征,在分类时也增加了有力的分类依据。

本文在对原始机载激光雷达进行点云去噪处理的基础上,利用PCA数据降维算法获取点云的最佳分类特征,再将处理后的点云数据加入到Point-Net网络模型中进行学习,最终得到分类的模型。将要分类的点云数据加入到模型进行处理,便可得到分类后的标签。

与传统二维图像不同的是,LiDAR三维点云数据是一种具有旋转不定性且无序的数据形式,且其数据维度也较高。由图3可以看出,Point-Net神经网络引入了输入变换矩阵Transform-Net和最大池化层。Transform-Net网络通过点云的位置学习到一个旋转矩阵,通过损失函数来对旋转矩阵进行调整,把输入的点云数据旋转到一个更加有利于分类的角度;在Input transform和Feature transform模块中都加入了Transform-Net,第1次是为了将点云旋转至一个更加有利于分类的角度,第2次则是对提取的64维特征进行对齐,即在特征层面实现对点云的变换。最大池化层是在卷积层之后对输入数据进行降采样处理,在降低输出维度的同时保留点云的特征,在Point-Net网络中提取点云的全局特征。多层感知机是通过共享权重的卷积层实现的。在经过2个空间变换网络和2个多层感知机之后,实现了对于每一个点云提取出1024维特征,经过最大池化层变成1×1024维的全局特征,最后经过一个多层感知机卷积得到k个Score。网络最后接的是Softmax分类器,对点云进行分类处理。

图3 Point-Net点云分类框架示意图

网络感知机如图4所示,模型公式如下:

f(x1,x2,…,xn)=γ∘g(h(x1),h(x2),…,h(xn))

(2)

其中x为点云数据,h、γ都是感知机,g是最大池化层。Point-Net深度学习框架分类步骤如下:

1)样本选取。通过人机交互式实现样本选择,主要选择了建筑物、植被、草地、耕地、道路、其他等类别。

2)将选取的样本点经过去噪、特征提取、PCA降维处理后,有针对性地将点云数据设置成N×2048×3的格式,便于模型训练。

3)将点云样本加入网络模型并设置相关的模型参数,接着训练模型,最后经过不断地学习得到分类模型。

4)将选择好的研究区,经过去噪和降维后加入到分类模型中,对研究区数据进行分类。根据选择的样本,把研究区的点云数据分类为植被、建筑物、道路、草地、耕地、其他等类别。在分类过程中主要是基于点的特征进行对比从而完成点的分类。

5)再将分类后的所有的点类,基于不同的类别分别用不同颜色进行可视化显示,进而使得分类结果更加容易展现,以便于对分类结果进行分析。

图4 网络感知机示意图

2.4 精度评价

在遥感领域混淆矩阵是一种常用的分类精度评价方法,其每行数值代表了实际类别在其它各个类别中的数量,每列数值则代表了分类模型预测的点云在各个类别中的数量。具体的评价指标有总体精度、制图精度、用户精度等。本文采用混淆矩阵对激光点云分类进度进行评价,具体的评价指标包括总体精度(OA)以及Kappa系数,其计算公式[22-23]如下:

(3)

(4)

式中:N为点云总数;n为分类的类别数目;nii是混淆矩阵主对角线上的点云数;ni.是第i行的点云数;n.i是第i列的点云数。

3 实验结果与分析

3.1 实验结果

本文实验使用的基于无人机平台获取的激光雷达数据,具有飞行稳定、获取数据快捷、方便等特点。激光点云数据中包含了植被、建筑物、道路、耕地等地物类型。获取的点云数据不仅包含了三维坐标,还有RGB信息、回波次数、回波强度等信息。

本文中所使用的数据是来自于无人机搭载的激光雷达传感器获取的,范围属于河南省登封市,其位于中原腹地,地形较为复杂,南北有山脉且均为东西走向,地势由南北向中间逐渐降低为丘陵、平原。实验数据主要集中位于丘陵和平原地区,海拔高度较低且地势起伏较小。实验数据如图5(a)所示。可以看出在经过点云滤波之后,地面点和非地面点都能很好地被分离出来,利用布料模拟的滤波算法的滤波效果比较好,其结果如图5(c)所示。

(a) 点云实验数据

(b) 点云高程图

(c) 点云滤波结果

(d) 深度学习点云分类结果

(e) 未提取相对高程特征的分类结果

(f) 随机森林分类结果

3.2 结果分析

从图5(d)的分类结果中可以明显地看出基于数据降维的Point-Net网络的分类方法能对机载雷达数据进行较好的分类处理,并且分类效果较好。从分类结果中可以看出,相比于未进行特征提取的分类方法和随机森林分类方法,本文方法对于建筑物、植被、道路、草地、耕地等具有很好的分类效果。从图中可以看出本文方法对于植被的适应性很好,能表现出植被的细节信息,对于植被的分布情况也可以看出,分类后的植被信息具有很好的整体性。对于建筑物分类效果很好,能很好地分类出建筑物,但是在分类过程中也存在错分现象,其主要原因在于地面点包括的类别极为复杂,包含了耕地、道路、林地、草地、裸地等其他类别。另外,在样本选择过程中也会存在局限性,由于点云数据量较大,在样本选取时只能选择出具有代表性的样本数据。从分类结果可知,对于建筑物的形状具有很好的呈现;对于道路的分类,其主要的道路结构也能很好地表现出来,分布比较规整;对于耕地和草地有很好的分类效果,能表现出它们的整体性。虽然基于Point-Net网络的分类方法能很好地实现点云数据的分类,但地面包含的类别数目较多,因此在分类过程中很难将所有的点云一一进行准确分类。综合来看,本文方法对于点云的分类具有较好的分类效果。本文选取了350999个样本点,对分类模型进行精度评价。由表1与表2可以看出,本文的分类方法结果的总体精度达到90.60%,Kappa系数为0.90。相比于未进行特征提取方法的总体精度83.45%、Kappa系数0.81和随机森林分类方法的总体精度85.79%、Kappa系数0.83,本文方法的总体精度均有所提升,Kappa系数也有所增加,分类精度更高,分类效果更好。而且,较高精度的点云分类结果更有利于分类后的点云应用于各种领域。

表1 深度学习方法分类混淆矩阵

表2 分类方法结果对比

3.3 分类方法对比分析

本节基于传统的随机森林分类方法和本文的方法进行分类结果对比分析。从实验结果可以看出,未进行特征提取的分类方法的分类精度相对较低,其精度为83.45%,Kappa系数为0.81。从该方法的分类效果来看,还存在一些错分现象。有的明显地将草地类型划分为了建筑物,还有的很明显地将其他地物类型划分为了建筑物类别,这都是缺少点云特征可能出现的问题。本文也用机器学习的方法对点云数据进行分析处理,主要采用了随机森林的分类方法,其总体的分类精度为85.79%,Kappa系数为0.83。从分类精度来看,随机森林的分类方法精度还是没有基于Point-Net网络的分类方法的精度高。从随机森林的分类效果来看,其中将部分的道路分为了建筑物,也存在将其他类别分为建筑物的情况,在分类中也会出现错分的现象。由此可见,本文提出的方法从分类精度上较随机森林的分类精度有所提高,能很好地将点云进行分类处理,并且分类效果也较好,提取的相对高程特征也有利于提高分类精度。

4 结束语

本文基于数据降维的深度学习模型Point-Net网络,针对实验区域进行点云分类处理,将点云分为植被、道路、建筑物、耕地、草地、其他等,可以有效地将机载激光雷达数据进行分类处理,并且分类效果较好。本文的方法能很好地实现机载激光点云分类,避免了点云数据耗时费力的点云多特征提取,能很方便地实现机载激光点云数据的分类,其较好的分类效果可以应用于建筑物的检测与重建、林业调查、植被分类、道路信息的提取、城市规划等方面。但在分类过程中也存在一些问题,在样本选择时,只能选择有限的样本,会影响分类精度。在分类时存在着分类类别相对较少,需要在今后的研究中继续进行算法的改进。另外由于输入深度学习网络Point-Net的数据是三维模型,对于原始数据信息可能存在损失,在以后的研究中可以适当改进模型以增加输入信息的维度,这将会在一定程度上提高分类效果。

猜你喜欢

布料高程滤波
用布料拼图形
8848.86m珠峰新高程
烧结机布料器的改进优化
GPS高程拟合算法比较与分析
按约定付账
RTS平滑滤波在事后姿态确定中的应用
基于线性正则变换的 LMS 自适应滤波
SDCORS高程代替等级水准测量的研究
回归支持向量机在区域高程异常拟合中的应用
高炉重量布料准确度的提高