融合点云与全景影像的路侧多目标识别
2023-11-01王步云李宏伟
王步云,李宏伟,赵 姗
(郑州大学地球科学与技术学院,河南 郑州 450000)
道路两侧的车辆、垃圾桶与杆状交通设施(如路灯、监控、道路交通标志和广告牌等)是在城市环境中普遍存在的目标对象,它们的语义信息、姿态与位置信息对于智慧城市精细化管理与基础设施管理与维护提供了数据基础与保障,对于智慧城市建设具有重要的作用[1]。LiDAR作为一种正迅速发展的新型测绘系统,可以快速采集城市场景中目标表面的点云数据,获取精确的三维地理信息,已被广泛应用于数字城市建设、基础设施维护、高精度地图等各种领域[1-3]。
三维激光点云数据记录了场景中目标的三维位置与反射强度信息,点云数据的处理面临以下3方面的挑战:地物种类多、点密度分布不均及数据存在空洞不完整,导致很难直接从点云中自动精确提取完整的目标。针对从三维点云中自动提取目标的问题,学者们进行了广泛的研究,现有的目标提取方法主要可分为两类:基于点云的方法和基于图像与点云融合的方法。
深度学习作为近些年来迅速发展的新兴方法,已率先在二维视觉领域成功解决各种问题,也有很多学者尝试将深度学习引入三维点云处理领域[4]。部分学者将三维的点云投影至二维视角下(如前视视角和鸟瞰视角)[5-6],然后使用处理二维图像的CNN进行处理;或将点云数据划分为体素栅格[7-8],对三维空间分割后,采用三维卷积的方式处理,但这种方法的精度容易受体素分割的影响,且计算量较高。不同于前两类方法对点云进行预处理,文献[9]提出了PointNet,直接在三维点云上应用神经网络模型,实现了点云的端到端输出,随后学者们聚焦于逐点学习并充分利用点与点之间的结构信息,先后提出了Point Net++[10]、PointSIFT[11]、Point CNN[12]等模型。文献[13]提出了RandLA-Net,将随机采样代替更为复杂的选择点的方法,从而减小了运算量,使得神经网络能够轻便地在大规模点云场景中运行。但由于点云数据具有数据量大、存在不完整空洞、数据标注成本高等特点[14],基于深度学习的点云目标提取方法在城市场景分割和分类领域还需要进一步研究。
基于图像与点云融合的方法一般是将结构不同的图像和点云数据转换至同一数据结构及坐标体系中,利用图像中的信息辅助检测点云中的目标。有研究人员将点云投影为二维平面视角图像,如俯视图、前视图等[5,15],然后采用基于图像的深度网络提取特征进行融合处理,以此生成精确的目标检测结果,但在点云转换过程中会损失有用的信息。对此,有学者借助图像中检测出的边界框生成三维视锥体[16-17],然后对视锥体内的点云进行更精细的目标搜索。
综上所述,融合图像与点云数据能够充分利用两者的优势互补,但在城市场景中,利用点云数据进行目标识别仍面临以下问题:①数据量大,数据处理计算量大;②场景中的目标复杂多样,基于单一特征的目标识别与分割方法在整体场景中精度较低;③对于三维点云训练数据的标注成本高。因此,本文进行如下设计与改进:①利用同一场景下的影像辅助进行点云的路侧多目标识别,先对影像进行语义分割,然后在对应位置提取候选目标点云;②利用点云中目标的连续性与完整性对点云进行聚类,以提高分类结果的准确性与完整性。
1 基本原理与方法
本文提出了一种融合点云与全景影像的路侧多目标识别方法,充分利用点云数据中空间几何信息及全景影像中的语义特征提升路侧车辆、垃圾桶和杆状设施的分类精度。首先使用Mask R-CNN对全景影像进行语义分割,识别全景影像中的目标并得到对应的掩码(mask);然后将点云按照外部定向参数投影生成对应的全景深度图像,分别提取出落入各个掩码中的投影点并恢复其三维形式得到候选点云目标。对于各个候选目标,采用基于密度的双重聚类方法进行聚类,首先采用基于密度的DBSCAN(density-based spatial clustering of applications with noise)算法对其进行聚类,并取各个候选目标中点数最多的簇作为初次分类结果;然后根据点云目标的空间完整性进行二次聚类,最终实现对车辆、垃圾桶和杆状设施的精确分类,整体流程如图1所示。
图1 整体流程
1.1 基于实例分割的全景影像路侧目标提取
首先对全景影像进行实例分割,从而实现在全景影像中目标的自动识别。与语义分割不同,实例分割可以将同一类中的不同对象进一步分割。本文选择将端到端的Mask R-CNN[18]网络作为实例分割模型,Mask R-CNN借鉴了语义分割网络Faster R-CNN[19]的两阶段结构:第1阶段扫描图像生成提议区域(region proposal),即可能包括目标的区域;第2阶段对提议区域进行预测目标种类与BBox回归,然后在特征网络基础上加入了一个全连接的分割分支,在进行回归与分类的同时输出对应的二值掩码,以说明给定像素是否为目标的一部分。因此,本文采用Mask R-CNN对全景影像进行实例分割,识别出图像中的车辆、垃圾桶与杆状交通设施3类目标,获得对应的二维掩码,如图2所示。
图2 实例分割掩码
1.2 基于全景深度图像的点云目标识别
深度图像(depth images)也称为距离影像(range images),是指将从图像采集器到场景中各点的距离作为像素值的图像。距离影像一般可以使用深度相机直接采集或将点云通过坐标转换生成,通过影像对应的外方位元素生成对应的距离影像,可以同时将场景中地物的二维与三维分布相联系。
首先对三维点云数据进行预处理,使用统计滤波去除其中的离群点与噪声点;然后采用布料模拟滤波算法[20]将点云分为地物点云与地面点云两部分,去除点云中的地面点。
将点云转换为与全景影像对应的距离影像,需要利用全景影像的外方位元素对点云进行坐标转换,使点云中的点与图像中的像素一一对应。由于点云与全景影像分别属于不同的维度,为此对点云进行降维处理,利用全景影像的成像模型将点云从三维空间投影至二维平面。首先将点云数据从WGS-84坐标系下的UTM投影坐标转换至POS系统中局部坐标系下的坐标;然后通过系统的初始转换参数R和T,将点云从激光雷达坐标系转换至全景相机坐标系,使得点云与全景影像处于同一参考系下,转换公式为
(1)
(2)
R=RXRYRZ
(3)
将点云从全景相机坐标系转换至以相机所处位置为球心的球坐标系下,计算公式为
(4)
再将点云从球坐标系转至全景影像所在的像素坐标系下,至此完成激光点云从三维空间到对应二维全景影像平面的转换,计算公式为
(5)
式中,H和W分别为全景影像的高与宽;u和v为图像中的像素坐标。
将点云按照式(1)—式(5)从三维空间映射至二维空间,获得与全景影像对应的深度图像,此时图中的每个点既代表三维空间中的一个LiDAR点,同时又与全景影像中的像素点相对应。以深度图为媒介,通过图像中的二维目标信息获得三维点云中的目标,利用1.1节模型获得的全景影像上目标的二维掩码(如图3所示),可以计算深度图中落入目标掩码中的点,并将其恢复成三维形式,得到候选的目标点云。
图3 预测掩码与全景深度图像相叠加
1.3 基于二次聚类的点云目标分类
与三维点云不同,全景影像属于二维形式,因此在相机拍摄时,由于视角问题会产生遮挡与被遮挡的情况,这对于基于深度图的点云分类会造成很大的影响。本文提出一种基于二次分类的点云目标分类方法解决这种问题。首先对于遮挡问题,经过投影落入二维图像中掩码的三维点中,除了目标点本身外,一般还会存在目标背后的非目标噪声点。对此,采用基于密度的DBSCAN算法对提取出的点进行聚类,DBSCAN算法是一种基于密度的空间聚类算法,通过预先设定好的邻域距离阈值与密度阈值,可以将空间中的数据点划分为多个三维点集组成的簇。一般可以认为在目标掩码对应的点云中,目标点云占据主体地位,而被遮挡的噪声点云相对而言点数较少,因此选取聚类结果中点数量最多的簇作为初次聚类结果。
初次聚类如图4所示。图4(a)为车辆点云,方框中为由于视角问题被车辆遮挡造成的噪声点云,经过投影落入二维图像掩码中的三维点除了包括目标本身外,还可能包括其他非目标的噪声点。图4(b)为对应的初次聚类结果,可以看出,经过初次聚类之后,可以很好地去除噪声点。
对于被遮挡问题,由于全景影像中的目标也可能被其他物体遮挡,或由于激光雷达与全景相机之间的外方位元素中存在误差; 同时,对于影像的目标掩码预测也无法实现完全正确的分割效果,使得生成的二维掩码无法与点云中的目标完全准确对应,从而导致得到的目标点云分类结果存在缺失与不完整现象。针对这种问题,可以认为在三维空间中,目标点云与非目标点云是不连续的,而目标点云本身是一个连续的整体,因此,本文在初次聚类结果的基础上提出了基于空间连通性与完整性的二次聚类方法。
首先,将初次分类结果点云中的点依次分别标记为1,2,…,n(n为初次分类目标的总数),未被归为任何类的点被视为背景点,将其标记为0。其次,对于各个初次分类结果,遍历其中的所有点,搜索其K近邻的所有点中背景点个数n。然后,判断n是否达到预先设定的阈值:若是,将所有K近邻点标记为当前类;否则将其视为背景点,仍然标记为0。最后,遍历所有点直至全部被标记为分类点或背景点。
二次聚类结果如图5所示,图5(a)、(c)的方框内分别为被遮挡的残缺车辆点云与垃圾桶点云,由于二维掩码与三维点云无法完全准确的对应,导致经过投影落入二维图像掩码中的候选点云目标存在残缺与不完整现象;图5(b)、(d)分别为对应的二次聚类结果,可以看出,经过基于目标空间完整性与连通性的聚类之后,最终得到了完整的目标点云。
2 数据处理与结果分析
2.1 试验数据与参数配置
在八核3.6 GHz处理器、32 GB内存的电脑上进行试验,使用显卡为NVIDIA GeForce RTX 2080 super,对目标的分类方法采用Python语言实现。试验所需数据主要是使用Geo-SLAM公司的背包式移动测量设备ZEB-Horizon进行采集的,包括一个Velodyne VLP-16激光雷达与一台由4个鱼眼镜头组成的全景相机。激光雷达的扫描距离为100 m,视场角为360°×270°,全景相机与激光雷达之间的外部定向参数已经标定,相机分辨率为5500×11 000像素。使用该设备在郑州大学主校区采集了三维点云数据及对应位置的全景影像,图6和图7分别展示了试验所使用的全景影像数据与激光点云数据。
图6 全景影像数据
图7 激光雷达点云数据
首先在试验区域中选择了106张分辨率为5500×11 000像素的全景影像进行语义标注,为方便数据的训练,将全景影像裁剪为前进方向与左右方向的3部分正方向区域。然后通过数据增强处理(旋转和翻转等)对数据集进行扩充,最终得到3780张分辨率为3667×3667像素的影像作为训练数据集。最后利用Mask R-CNN作为分割网络进行训练,对全景影像进行实例分割得到全景影像中待识别目标的二维掩码。
本文的目标识别算法主要包括4个参数:初次聚类中的邻域距离阈值ε和密度阈值MinPts,二次聚类中K近邻搜索的k值与背景点个数阈值n。对于初次聚类中的邻域距离阈值ε,取值过大会使每一类别中点的个数变多,无法有效去除噪声点;取值太小又会使大部分点不能聚类。经过试验,对候选目标点云进行DBSCAN聚类时邻域距离阈值ε和密度阈值MinPts分别设置为0.2和5可取得较好的结果。对于二次聚类中K近邻搜索的k值与背景点个数阈值n,当k取值太大时,会将接近目标的非目标点也识别为当前分类,从而导致误识别现象产生;当k取值太小时,又会无法有效地解决识别目标不完整的问题,因此考虑到真实世界中物体的完整性与连续性,经过多次试验,相关参数的详细设置见表1。
表1 参数设置
2.2 目标识别效果
图8显示了利用本文算法对郑州大学主校区数据集进行点云目标识别的结果。可以看出,在最初的候选点云生成部分,尽管由于视角遮挡,各组结果均出现了不同程度的误识别与漏识别现象,但经过本文提出的二次聚类方法处理后,最终均得到较好的识别结果。如图8(c)所示,在最初生成的候选点云中,被车辆所遮挡的垃圾桶的一部分与车辆归为一类,但经过本文方法处理后得到了完整的点云分类结果,相互遮挡的垃圾桶、车辆等均被正确识别;如图8(e)所示,由于图像和点云间存在误差,使得获取的初始候选点云包含较多的噪声点,将车辆后的部分建筑物也标记为车辆,但经过本文提出的聚类方法优化后,可以得到较完整与纯净的目标点云。说明本文方法在真实复杂的环境下也可以不受前景点与背景点的影响,有效识别目标点云。
2.3 识别精度分析
为了证实本文方法的有效性,使用Cloud Compare软件对目标点云进行手工标注,并将其作为真实值,采用精确率(P)、召回率(R)与F1值进行定量评价,各类目标的试验结果见表2。计算公式为
表2 目标识别精度
(6)
(7)
(8)
式中,TP、FP和FN分别为正确识别、错误识别与漏识别的目标个数。
由表2可以看出,由于影像辅助的原因,对于3类目标的召回率均很高,表明本文方法对城市场景中的3类地物目标都能够识别。其中,车辆的识别精度较高,精确率与召回率分别为96.64%与99.04%,而杆状设施识别的精确度较低,分析场景中目标的分布特点可知:相对于杆状设施,车辆在影像中占比较大,这使得点云与全景影像间的配准误差对识别车辆造成的影响小于对杆状设施的识别。总体而言,本文方法通过影像分割的辅助引导,可以较好地识别出场景中的车辆、垃圾桶与杆状设施目标。
虽然本文方法在整体上可以取得较好的效果,但对于部分情况仍然会存在错误。如图9(a)—(b)所示,路灯、垃圾桶与其他非目标物直接接触在一起,导致了误识别现象的发生。此外,即使先对图像与点云进行了配准,其中仍然会存在部分标定误差。同时,由于全景相机本身的成像特性,对距离成像位置较远的目标存在较大的变形现象,更加扩大了标定误差对于识别结果的影响,使得预测掩码与目标点云无法对应,最终导致误识别与漏识别现象的发生。如图9(c)—(d)所示,路灯占比较小,从而放大了点云与全景影像之间不对齐造成的影响,导致将路灯后面的建筑物错误地识别为路灯。对此,可以针对在多帧影像中的同一个目标,去除图像中面积较小的mask,选择距离摄影位置较近的识别结果选取候选点云,从而提升识别的精度。
图9 部分识别错误结果
3 结 语
本文通过分析点云与全景影像之间的空间映射关系,为充分利用影像中的语义信息与点云中的空间位置信息,提出了一种融合点云与全景影像的路侧多目标识别方法。一方面,通过将全景深度图像作为媒介,获取点云中与图像目标区域对应的点云;另一方面,通过分析物体在真实世界中的连续性与完整性,解决了影像视角与标定问题等带来的目标遮挡与被遮挡。试验结果表明,3类目标的准确率分别为96.64%、92.68%和90.74%,验证了本文方法的准确性。目前本文方法仍存在部分不足,对于在影像中占比过小且分辨率过低的远距离目标物,容易发生误识别现象。此外,本文算法的参数仍需经过手动多次调整,并未做到全自动的目标提取,后续会加强该方面的研究。