时间:2024-09-03
柳长安,孙书明,赵丽娟
(华北电力大学 控制与计算机工程学院,北京 102206)
激光雷达(light detection and ranging,LiDAR)以其高精度、高分辨率等特性成为重要的遥感工具[1-2]。当下,无人机机载激光雷达技术已广泛应用于电力巡检作业[3-6],与传统技术手段相比较,其耗费时间更短且数据更加可靠[7],可以很好地解决空间定位和测量精度的问题,并可以对故障和缺陷进行更加准确的判断和定性,实现多维度的立体巡检[8-12]。
国内外对于杆塔自动提取的问题也有一定研究,其中CHEN利用点云的数字高程模型(digital elevation model,DEM)与数字表面模型(digital surface model,DSM)特征构建归一化数字表面模型(normalized digi-tal surface model,nDSM)点云,并对nDSM点云整体绘制高程直方图以确定地物点云与非地物点云的分离高度阈值[13],但由于其特征由点云整体得出,当地形较为起伏时,通过单阈值较难分离。SONG将点云所在空间分为若干个大小相等的格网,在格网内部利用DEM与DSM特征构建高差特征图,并利用DSM特征计算坡度特征,通过高差特征与坡度特征来定位杆塔[14],但由于采用判断连通域的方式剔除高大树木,当连续的高大树木处在线路下方时,将难以判断。GUO等人同样将点云所在空间格网化,利用格网内相对高程差区分地物点与非地物点,并利用单个格网垂直方向空间间隔的数目来区分电力线点与杆塔点[15],但同样难以区分处于电力线正下方的高大树木。HAN通过霍夫变换先行提取出电力线点云,进而生成3维立方体外包来提取电力塔数据点,最后在电力塔数据上建立3维空间格网[16],但易受点云密度分布不均的干扰。SHEN等人在将点云所在空间格网化的基础上,在格网内部确定高程阈值,并进行进一步分割[17],但易被垂直方向树障遮挡等因素干扰。
基于以上问题,本文中提出了一种直接以LiDAR点云数据作为输入端的轻量级神经网络,通过特征网络自动提取其形状、空间特征并加以判断,以确定杆塔所在的区域,在地形起伏较大区域及杆塔区域存在垂直方向遮挡的情况下使精确度及稳定性有所提升。
目前从激光点云中提取杆塔的算法,多数依赖于人为拟定的空间特征、形状特征等。人为拟定的特征往往具有一定的局限性,而通过神经网络提取的特征,直接从分类结果的角度考虑,在稳定性以及准确率方面,有其自身的优势。同时因为无需预先使用降噪算法,使得点云的原始信息以及特征得以更完整的保存。目前有数种针对点云数据进行分类的网络,如PointNet[18]、PointNet++[19]、VoxelNet[20]等,但其网络结构较为复杂,训练周期也较长,而杆塔提取的问题只需判别某点是否为杆塔点,因此本文中使用规模较小的轻量级网络,基于空间进行体素格划分,并对体素格提取特征加以判断,主要分为以下几个步骤:(1)将原始点云空间划分为若干个大小相等的体素格,将点云数据中的每个点归入对应体素格中,并对每个体素格内的点进行采样,采样最大数量为δn;(2)对体素格内的采样后所有的点,利用特征提取网络,提取其特征,并且利用最大池化函数,消除点云数据无序性带来的干扰;(3)利用卷积层,进一步计算每个体素格对应的空间、形状特征,并结合相对高度差δz以及点密度q两个特征组成新的特征矩阵;(4) 将体素格对应的特征作为输入,利用分类网络,判断该体素格是否为杆塔点云,并利用聚类算法,剔除孤立体素格。其具体流程图如图1所示。
Fig.1 Flow chart of the algorithm for the extraction of power tower
本文中提出的网络主要由三部分组成:(1)特征学习网络;(2)卷积层;(3)分类网络。如图2所示。
Fig.2 Structure of the network
将点云所在的3维空间分为大小完全相同的若干体素格。假定点云数据在3维空间内占据的长、宽、高分别为D,W,H;且每个体素格的长、宽、高分别为vD,vW,vH;对于体素格类别的判断分为两个步骤,首先令体素格的高度为H,对划分后的体素格进行第1次判断,而后对于已经确定为杆塔的体素格,假设垂直方向的体素格数量为n,令vH=H/n,在垂直方向上再次划分体素格,并进行进一步判断,这种做法避免了3维卷积运算,对整体的运算效率带来了较大提升,如图3所示。
Fig.3 Order of classification
首先需要将点云数据中所有点归入对应的体素格中。由点云数据自身的特性可知,不同体素格中点的数量差距较为明显,基于运算效率以及稳定性的考虑,本文中算法对体素格内的点进行随机采样,设定阈值δn,当体素格内点的数量大于δn时,采用随机采样,只保留其中的δn个点;当点的数量不大于δn时,则将所有点全部保留。
(1)
Fig.4 Feature-learning network
其中前向传播部分由全连接层与线性整流函数(rectified linear unit,ReLU)组成。输入端Min经过特征层(feature layer,FL)FL0进行前向传播被投影为维度更高的特征矩阵,对于所有经由FL0产生的特征矩阵,按位置分别进行最大池化获得特征矩阵M00,继而将所有经由FL0产生的特征矩阵与M00相连接,得到每个点对应的特征矩阵L01,对于每一个L01,经过前向传播之后再次被投影为更高维度的特征L02,对其按位置分别进行最大池化,得到该体素格所对应的特征矩阵V0,同时利用最大池化的方式,也规避了3维点云的无序性对特征提取带来的影响。
卷积层由若干个卷积核组成,用于进一步提取各个体素格自身以及与周围其它体素格所共同形成的特征,为保证卷积后得到的特征数量与体素格的数量相等,需预先在特征图外围增加一圈空的特征向量,如图5所示。
Fig.5 Convolutional layer
在此过程中引入传统的杆塔提取算法中的特征M′,假设某体素格的特征向量V0是尺寸为nr×1的矩阵,则卷积过后得到的特征向量V1,其尺寸仍为nr×1,将V1与M′=[δz,q]T相连接,得到特征向量V2,其中δz代表体素格的高度特征值,q代表体素格内的点的数量(即点密度),如图所示,当体素格的高度取vH=H时,有:
δz=zmax-zmin
(2)
式中,zmax和zmin代表该体素格中所有点z的最大值与最小值, 而当体素格的高度取H/n时,有:
(3)
如图6所示,该部分以特征向量V2作为输入,以softmax层作为输出层Mout。
Fig.6 Classifying layer
该分类网络包含全连接层与激活函数(ReLU),并以softmax模型作二分类的判断,经前向传播之后,将判断出该体素格的类型为杆塔点云或者非杆塔点云。其损失函数为:
Eloss=(Mlabel-Mout)2
(4)
式中,Eloss代表输出值与标定值的误差,Mlabel为事先标定的值,用于区别某体素格是否属于杆塔点云。当所有体素格的类型被判定完毕后,对其采用聚类算法,以获得每个杆塔的最终区域.
本文中的算法在Intel Corei5-7300HQ CPU,2.5GHz,8G内存硬件条件下运行,由于需要与以CloudCompare为基础的项目对接,因此在win 10,PCL 1.8.1,opencv-2.4.13.6环境下采用Microsoft Visual Studio 2015编程实现。
本文中所述网络采用北川地区的巡检数据作为训练集,其杆塔类型为V型塔或T型塔,在人工对杆塔点云位置进行标定之后,将其中80%作为训练集,20%作为测试集,并对原始数据进行平移、旋转、镜像等操作以达到数据扩展的目的。基于点云数据的特征考虑,如果体素格的尺寸过大,将影响杆塔提取的精度,而如果尺寸过小,造成每个体素格中容纳的点的数量减少,将难以提取到有效的特征,同样对杆塔提取造成不利影响。故体素格设置为如下尺寸(单位为m):vW=1m,vD=1m,而对于vH,在第1次判别时取vH=H,第2次进一步判别时取vH=2m,并且第1次判别时体素格中点数上限为150,第2次判别时点数上限为30。
经由FL0产生的特征矩阵尺寸为32×1,与最大池化特征拼接后特征矩阵尺寸为64×1,经过第一部分特征学习网络,输出的体素格特征矩阵尺寸为128×1,第二部分卷积层中设置4个卷积核,第三部分分类网络中中间层的矩阵尺寸50×1,并采用mini-batch的方法进行训练。
由于训练集的单个点云数据文件包含的点数通常达到数百万以上,且其整体的长度和宽度可达1km甚至2km以上,考虑内存空间的问题,将原点云数据分块进行训练,每块的长度和宽度都为50m。故经过第一阶段特征学习网络之后,将得到一个尺寸为50×50且深度为128的特征。由于杆塔点云所占的体素格数目相对于点云整体的比例很小,若直接将数据输入进行训练,准确率的提升将较为迅速,而召回率则将一直维持在较低水平,故在训练中的反向传播部分对非杆塔点云的体素格进行欠采样,以维持召回率与准确率的平衡,如图7所示。此为一块数据直接输入以及进行欠采样时,其召回率及准确率随训练次数的变化曲线,横轴为训练次数,纵轴为召回率或准确率的百分比。在训练数据集中,该网络的召回率与准确率均达到90%以上。
Fig.7 Curve of recall and precision in training
为验证本文中方法在不同环境下的可行性及鲁棒性,选取了不同地形以及包含不同塔型的3组机载激光点云数据进行实验。数据1覆盖面积为392m×1181m,包含3262599个数据点,地形较为平坦,周围有一定量树木干扰,其杆塔类型为酒杯型,数据2覆盖面积为173m×1165m,包含1573050个数据点,地形起伏较为明显,为杆塔定位带来一定困难,杆塔类型同样为酒杯型,数据3覆盖面积为771m×508m,包含1836981个数据点,高空中有若干噪声点,且档间有高大树木干扰,塔型为羊角塔与干字型塔,如图8所示。经过聚类筛选之后,提取出杆塔点云,其总耗时分别为10s,12s,15s,其中对体素格的聚类搜索半径为2m,聚类最小数量为10。
Fig.8 Experimental data and results
为验证杆塔点云的提取精度,对以上实验结果中总计9处杆塔的提取精度进行评估,评估标准为点云提取率(提取点数量/标定点数量)。
统计结果如表1所示。由表1可知,杆塔点云的提取精度通常能达到95%左右,无论是地物点云中存在地形起伏或者植被等因素的干扰,本文中提出的网络均能较好地提取杆塔点云,其中对平坦地形的提取效果最好,且运行速度也相对较快,而对地形明显起伏以及两档之间受高大树木干扰或者有噪声干扰的情况,其精度略有下降,但依然可以维持较高的准确率,说明本方法具有一定的鲁棒性。
Table 1 Accuracy evaluation of the extraction
本文中通过卷积神经网络学习体素格内的空间、结构特征,辅以传统方法中的高度差、点密度等特征,提出了一种基于LiDAR激光点云的杆塔点云提取方法。在地形起伏较大以及受高大植被干扰等环境当中,该方法仍可自动地准确提取出杆塔点云,且具有较好的鲁棒性。实验表明,本文中所提方法在一定程度上解决了噪点滤波、垂直遮挡等因素对杆塔点云提取造成不利影响的问题,在输电走廊的空间结构自动分析领域具有较好的工程应用价值。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!