测绘地理信息   2022, Vol. 47 Issue (S1): 183-187
0
基于Superpoint Graphs模型的输电线路点云自动分割方法[PDF全文]
陈景尚1, 魏攀1    
1. 广东电网公司肇庆供电局输电管理所,广东肇庆,526000
摘要: 构建了大范围的复杂室外场景点云的处理数据集,以Superpoint Graphs模型为基础对室外大场景下的激光点云进行处理,以输电线路为主体,对三维点云数据实现了分类分割。
关键词: 三维点云    深度学习    点云分割    输电线路    
An Automatic Segmentation Method of Transmission Line Point Cloud Based on Superpoint Graphs Model
CHEN Jingshang1, WEI Pan1    
1. Guangdong Power Grid Corporation Zhaoqing Power Supply Bureau Transmission Management Office, Zhaoqing 526000, China
Abstract: The dataset for the processing of scenic spots in a large range of complex outdoor fields is constructed. Based on Superpoint Graphs model, we process the laser point cloud in a large outdoor scene, and classify and segment the 3D point cloud data.
Key words: 3D point cloud    deep learning    point cloud seg-mentation    transmission line    

在深度学习中,普遍使用深度卷积神经网络对二维数据进行处理。它在处理二维图像方面也已经取得了极为丰富的成果,但是卷积神经网络在三维点云数据处理方面,无论是计算量还是数据的储存量都极大增长,处理效率仍是一个极大问题。因此,在基于深度学习的点云处理方法研究中,大都通过对三维点云数据进行预处理,利用点云数据生成大量的二维影像,再使用深度卷积神经网络进行处理。例如,有学者对点云中的每一个点进行处理,将该点一定范围的某个平面上的点映射到一个窗口图像当中,进一步对图像进行处理[1]。随着技术的进步,也有研究成果表示可以直接处理点云数据以达目的。深度学习允许由多个处理层组成的计算模型获得具有多个抽象级的数据表示[2]

点云分类是提取三维信息的第一步[3]。文献[4]中介绍了几种模式分类方法。在传统三维点云分类方法研究中,有学者已经做了大量工作。Niemeyer等[5]利用条件随机场对点云进行分类;李永强等[6]基于先验样本辅助及点云骨架的缓冲区域,对路灯点云进行提取与判别;董震等[7]提出一种从车载激光扫描数据中层次化提取多类型目标的方法;刘晓磊等[8]提出一种基于动态阈值滤波和种子点跟踪相结合的电力线自动提取算法。

体素化是点云处理的主流方式之一,其思路是基于八叉树对三维点云进行分解,选定最小的立方体作为根节点递归,细分为8个子像素,对非空的体素基于八叉树进一步划分[9]。由于点云在处理过程中空间关系不规则,许多点云处理算法都是通过点云体素化(网格化),进一步利用深度学习框架进行的。很多基于体素化的点云处理方法取得了良好效果,但是会导致以下问题:①改变点云数据的原始特征;②造成不必要的数据损失;③增加数据处理工作量。点云体素化后可以通过深度学习进一步处理得到结果。此外,基于点云体素化、利用深度学习的方法实际上并没有高效利用点云数据。SegCloud是在普通体素网格上使用三维卷积网络进行深度学习训练识别[10]。3D ShapeNet网络利用体素化网格对点云进行深度学习达到分类目的[11]

此外,VoxNet集成了一个有监督的用网格表示体积占用情况的三维卷积神经网络[12]。这个基本的三维点云处理框架可快速和准确地进行三维点云目标分类。可应用的数据包括激光雷达点云、RGBD点云和CAD模型3种。Boulch等[13]提出了SnapNet框架,框架本身基于深度卷积神经网络对二维影像(快照)进行点云处理。SnapNet框架处理的快照数据包括RGB视图和包含几何特征的深度复合视图两种类型的图像。通过卷积神经网络对每一组二维影像进行像素化标记,再用一种高效的缓冲算法将预测标签反向投影到每个三维点上。

纵观目前国内外的相关研究,对三维点云数据的直接处理方法仍处于初级阶段,深度学习在大范围场景中的三维点云数据处理方面的应用研究还不够完全。本文所选用的Superpoint Graphs(SPG)模型能够对大场景下的点云进行分割处理,并已取得良好效用[14],但它对地形、植被、建筑、汽车等8种类型的点云中的人造景观、雕塑的分割结果并不理想,且在复杂场景中的输电线路、植被、建筑物等方面没有表现出针对性的分割优势,于是本文在此方面进行了进一步实践与探索。

1 SPG模型原理

SPG模型主要设计了一个可将点云结构表示为“超点图”的有向图的方法,SPG的节点表示简单的形状,其边缘描述节点的邻接关系,具有丰富的边缘特征,通过这种新颖的点云表示方式可以对物体部分之间的上下文关系进行编码并分割。其特点如下:①将整个对象的某个部分视为一个整体,而不是仅对单个点或体元进行分类;②上下文分类的思路能详细描述相邻对象之间的关系,例如在室外场景中,汽车、树木高于地面,室内场景中四周是墙壁,上方是天花板等;③SPG处理的数据是一个场景中的简单的点结构而不是孤立的点。因此,该算法能对点云整体进行更好的表现与识别判断。

SPG框架原理主要包括3部分:①基于几何平面进行分区,输入数据为整个点云数据,通过点云的线性、水平面或垂直面进行划分,将每一个分区处理为一个超点;②对超点进行嵌入结合得到一个SPG,SPG的每一个节点都表示点云数据的某一部分;③利用超点图,投入PointNet对点进行分类分割,得到最终结果。

SPG的主要框架结构包括两个部分:①参考PointNet进行超点的嵌入结合与图像卷积训练[15];②设计了一个新的边缘卷积方式用于输入点云数据的循环单元。

PointNet是直接对三维点云数据格式的三维网络进行处理(分类及分割)的深度学习框架,主要对三维点云数据进行分类与分割。三维点云具有无序性,PointNet通过设计最大池化层来解决这个问题。此外,比较重要的部分是网络中有两个T-Net,分别用于旋转模型坐标和模型中间特征,解决了传统点云模型旋转后变形的问题。PointNet在实践中取得了优秀成果。但是点云数据的特征都是由点与点之间的相互关系表现出来的,而该框架的处理思路都是面向单个采样点的,只能通过最后的最大池化层整合所有采样点,所以提取模型上局部信息的能力还不够强。相关学者针对局部信息缺失问题进行了改进,提出了PointNet++[16]

2 实验与分析 2.1 数据集

机器学习和计算机视觉的最新进展已经证明,复杂的现实任务需要大量训练数据集来进行分类器训练。然而,大场景下的三维点云分类对象丰富、标记点数量繁多,直到现在还没有适用的数据集。例如,著名的奥克兰数据集包含不到200万个标记点,纽约大学的基准数据只提供室内场景下的点云数据。Semantic3D数据基准提供了一个巨大的3D点云数据集,总共超过40亿点。本文使用的Semantic8是Semantic3D一个具有8个类别的分类基准[17],即1:人造地形,2:自然地形,3:高植被,4:低植被,5:建筑,6:人造景观,7:扫描人工雕塑,8:汽车。此外还有一个附加于非训练集的标签0:未标记点。SPG模型在该数据集的全局精度能达到92%,8个类别的分类精度分别达到91.5%、75.6%、78.3%、71.7%、94.4%、56.8%、52.9%、88.4%。

本文构建了独立的数据集用于测试SPG模型。此数据集为室外场景的三维点云,以地面点、电力设施、电力线、电力塔和植被为主,共计25 348 426个点,包括未经预处理的仅含坐标信息的数据与经过预处理后的分类数据,如图 1图 2所示。

图 1 部分点云训练数据 Fig.1 Part of the Point Cloud Training Data

图 2 经过预处理的部分点云数据 Fig.2 Part of the Preprocessed Point Cloud Data

2.2 点云分割

实验主要对三维点云进行分割处理,其主要思路为将整个点云数据作为输入数据,首先进行几何分区,将每个几何分区处理为一个超点,再将组成超点图的每一个超点作为PointNet的输入进行超点嵌入,最后对整个点云数据进行分割处理。

SPG模型中的几何分区计算非常重要。模型将输入的整个点云通过几何分区划分为几个简单的部分,通过处理将每个目标点划分到不同的类别中。对此,假设所获取的三维点云数据中的每个点只具有一个类别归属。

假设输入的点云数据C是一组三维点的集合,每一个点i的数据包括其位置pi、辐射强度oi和RGB值。对于dg(计算得到的几何特征fi的集合)中的每一个点都计算其几何特征fi,其几何特征表现为邻近所有点的形状的集合。本文选用线性、垂直平面和水平平面3个维度进行特征上的考虑。此外,还将每一个点的z坐标作为计算的高程以标准化整个输入点云的高程。

本文中全局属性的分区问题参考了文献[18],所使用的基本理论公式如下:

$ \mathop {{\mathop{\rm argmin}\nolimits} }\limits_{g \in {R^{{d_g}}}} \sum\limits_{i \in C} {{{\left\| {{g_i} - {f_i}} \right\|}^2}} + \mu \sum\limits_{(i, j) \in {E_{nn}}} {{\omega _{i, j}}} \left[ {{g_i} - {g_j} \ne 0} \right] $ (1)

式中,[·]表示艾弗森括号。对于分区问题,本文选用的L0-cut算法无须提前选择分区范围就能快速进行区域处理[19]

在此基础上,基于SPG,使用Pytorch框架进行超点嵌入与情景分割,实验平台为Ubuntu 16.0,内存128 GB,GPU为NVIDIA GTX 1080 Ti。

实验中使用的数据为具有点坐标、RGB、辐射强度的点云数据,在实际应用中,仅使用了点坐标数据与每个点相对应的RGB值进行计算。主要实验流程如下:

1)数据预处理。算法使用点坐标信息与RGB信息,其点坐标数据与各个点的标签一一对应,将坐标信息与标签转化为.hdf5格式用于实验输入。实际操作过程中由于点云密度极大,对点云数据进行了抽稀操作。

2)环境调试。基于Pytorch框架,需要安装Pytorch与TorchNet,且需要适配地安装cupy、h5py、scipy、numpy、sklearn、future等Python包。

3)模型训练。调用SPG模型对数据进行处理,每基于一段新数据进行训练后,都会输出一个模型文件用于数据预测。

4)结果输出。使用测试集数据对点云数据进行分割处理,得到最终的分割结果。输出文件包括基于平面的点云几何划分、超点图以及分割结果。

2.3 实验的分析与评价

本文得到的输出内容如图 3~图 6所示。图 3是基于平面的几何分割结果,以不同颜色表示点云的几何特征,红色表示线性特征,绿色表示水平面特征,蓝色表示垂直面特征。图 4用随机的颜色表示每一个超点所代表的几何分区。图 5为超点图,图 6为分割结果。

图 3 基于平面的几何分割结果 Fig.3 Results of Plane-Based Geometric Segmentation

图 4 几何分区 Fig.4 Geometry Partition

图 5 超点图 Fig.5 Superpoint Map

图 6 点云分割结果 Fig.6 Point Cloud Segmentation Results

本文模型将点云数据作为原始输入,能尽量多地提取到数据特征。在三维点云处理方面,许多方法将点云数据预处理为二维图像,再利用卷积神经网络进行处理,应用较为广泛且能够取得较好的结果。但是会大幅度增加数据计算量与储存量,同时也会减少点云本身的信息特征。直接对点云数据进行分割的方法优缺点明显,PointNet能够应用在更普遍的平台上;T-Net能够较好地处理点云数据的空间不变性,但是它基于一定范围内的滑动窗口进行计算,计算范围与实用场景受限,仅能在室内或较小的场景下进行点云的分类分割;SPG模型则首先对点云数据进行分区,再将分区结构转化为超点形成超点图,并进一步结合PointNet进行处理,对三维点云处理的效用大幅提高。

实验表明,SPG模型依赖于一定的硬件平台,因此在数据处理方面的速度较快。该方法在三维点云分割方面取得了良好的效果,通过构建一个超点图并进行数据处理,为直接处理和利用三维点云数据提供了一条新颖且更为可行的思路。

实验表明,若将本组数据直接输入标签后作为训练数据,其全局精度为78.67%,各类精度分别为:地面点76.77%,电力设施76.77%,电力线77.09%,电力塔48.42%,植被98.22%。通过将原始数据的不同类别也作为训练数据的一部分,使无RGB信息的点云以预分类结果赋予各类RGB信息,这些预处理能够有效提高点云的分割精度。通过对比,发现训练集与测试集的数据属于同一环境时,由于数据间具有一定的重叠度与相似性,SPG模型的处理结果表现更好。但是对于非同一环境的场景的表现则逊色一些。可以将更为丰富大量的数据用于深度学习以提高各类点云特征的提取精度,进一步使其效用更高。

另一方面,实验中为提高数据计算量与减少数据储存量,对原始数据进行了抽稀操作。通过实验测试,抽稀可以大幅提高数据计算速度,而通过点云抽稀牺牲了一定的数据信息后,进行分割所得到的结果仍较为优异,可以设想如果能利用更多点云信息进行训练与测试,就能获得更好的分割结果。

3 结束语

本文以大范围复杂场景的三维点云为研究对象,使用独立构建的点云数据集,考虑到实际综合效用,将SPG模型用于分割含有输电线路的点云数据,实验证明SPG能够完成点云自动分割且在电力线、电力塔等类型的点云识别上展现了良好的效用。

参考文献
[1]
Hu X Y, Yuan Y. Deep-Learning-Based Classification for DTM Extraction from ALS Point Cloud[J]. Remote Sensing, 2016, 8(9): 730. DOI:10.3390/rs8090730
[2]
LeCun Y, Bengio Y, Hinton G. Deep Learning[J]. Nature, 2015, 521(7 553): 436-444.
[3]
Vosselman G, Coenen M, Rottensteiner F. Contextual Segment-Based Classification of Airborne Laser Scanner Data[J]. ISPRS Journal of Photogrammetry and Remote Sensing, 2017, 128: 354-371. DOI:10.1016/j.isprsjprs.2017.03.010
[4]
檀何凤, 刘政怡. 模式分类方法比较研究[J]. 计算机技术与发展, 2015, 25(2): 99-102.
[5]
Niemeyer J, Rottensteiner F, Soergel U. Conditional Random Fields for Lidar Point Cloud Classification in Complex Urban Areas[J]. ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 2012, I-3: 263-268. DOI:10.5194/isprsannals-I-3-263-2012
[6]
李永强, 董亚涵, 张西童, 等. 车载LiDAR点云路灯提取方法[J]. 测绘学报, 2018, 47(2): 247-259.
[7]
董震, 杨必胜. 车载激光扫描数据中多类目标的层次化提取方法[J]. 测绘学报, 2015, 44(9): 980-987.
[8]
刘晓磊, 郑顺义, 许磊. 基于LiDAR点云数据的电力线自动提取算法研究[J]. 测绘地理信息, 2017, 42(4): 13-16.
[9]
Guan H Y, Yu Y T, Ji Z, et al. Deep Learning-Based Tree Classification Using Mobile LiDAR Data[J]. Remote Sensing Letters, 2015, 6(11): 864-873. DOI:10.1080/2150704X.2015.1088668
[10]
Tchapmi L, Choy C, Armeni I, et al. SEGCloud: Semantic Segmentation of 3D Point Clouds[C]. 2017 International Conference on 3D Vision (3DV), Qingdao, China, 2017
[11]
Wu Z R, Song S R, Khosla A, et al. 3D ShapeNets: A Deep Representation for Volumetric Shapes[C]. 2015 IEEE Conference on Computer Vision and Pattern Recognition, Boston, MA, USA, 2015
[12]
Maturana D, Scherer S. VoxNet: A 3D Convolutional Neural Network for Real-Time Object Recognition[C]. 2015 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Hamburg, Germany, 2015
[13]
Boulch A, Guerry J, le Saux B, et al. SnapNet: 3D Point Cloud Semantic Labeling with 2D Deep Segmentation Networks[J]. Computers & Graphics, 2018, 71: 189-198.
[14]
Landrieu L, Simonovsky M. Large-Scale Point Cloud Semantic Segmentation with Superpoint Graphs[C]. 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, Salt Lake City, UT, USA, 2018
[15]
Charles R Q, Hao S, Mo K C, et al. PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation[C]. 2017 IEEE Conference on Computer Vision and Pattern Recognition, Honolulu, HI, USA, 2017
[16]
Qi C R, Yi L, Su H, et al. PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space [C]. Advances in Neural Information Processing Systems, Long Beach, California, USA, 2017
[17]
Hackel T, Savinov N, Ladicky L, et al. SEMANTIC3D. NET: A New large-Scale Point Cloud Classification Benchmark[J]. ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 2017, Ⅳ-1/W1: 91-98.
[18]
Guinard S, Landrieu L. Weakly Supervised segmentation-Aided Classification of Urban Scenes from 3D LiDAR Point Clouds[J]. The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 2017, 42-1/W1: 151-157.
[19]
Schmidhuber J. Deep Learning in Neural Networks: An Overview[J]. Neural Networks, 2015, 61: 85-117. DOI:10.1016/j.neunet.2014.09.003