北京交通大学计算机与信息技术学院 苟悦宬 邓志坚 黄成梁 周围
三维点云数据作为空间信息数字化的重要表现应用日益广泛。随着无人驾驶技术的不断发展,三维点云的采集、处理、可视化等应用技术和研究越来越多。该研究基于无人驾驶领域,对三维点云数据采集、处理、可视化的过程、行业应用和研究进展进行了调研和归纳,理清整体脉络;进而利用无人驾驶实体车辆进行校园三维点云数据采集和高精度地图的制作;最后对三维点云的应用及高精度地图的发展前景提出了展望。
点云是一种常见的3D形状的表达方式,我们可以通过点云来表示一个物体或者一个场景。通过不同角度观察,得到点云。我们通过人眼可以分辨出点云所代表的物体的类别、猜测物体可能蕴含的功能以及通过不完整的点集来还原出物体本来的形状。
三维点云模型因具有良好的形状表达能力,在机器人、自动驾驶、场景重建等领域有着广泛的应用[1],此外还在建筑物三维建模、文物保护、地质灾害监测、土木工程、设施维修、军事农业等领域起到了很大的作用[2]。
无人驾驶领域的三维点云数据主要与高精度地图结合紧密。高精度地图是无人驾驶领域的刚需,在整个无人驾驶领域中不可或缺,高精度地图可以帮助汽车预先感知路面复杂信息,比如说路面的坡度、曲率、航向,结合智能路径规划,从而使汽车对路面状况做出正确响应。高精地图是指高精度、精细化的地图,与普通电子地图相比,其不仅有准确的坐标, 还能准确的描绘道路形状、车道线等[3]。正是因为高精度道路导航地图丰富的信息含量,使得它具有庞大的数据量,而传统的集中式大数据处理模式无法满足它的计算需求。
目前的高精度地图,在封闭园区内使用的居多。国内的研究主要由清华大学、吉林大学领衔,成立了中国自动驾驶地图工作组。2015年起,各大互联网企业纷纷投身到无人车的研究中来,开始推动这一行业走向高潮[4]。
国外许多传统地图厂商,如Here、TomTom等,也投入对高精度地图的研发和生产当中[5]。国外高校对于高精度地图也有许多研究。比如斯坦福大学专门研究高精度地图的项目Civil Maps。
作为自动驾驶产业链中重要的一环,高精度地图的作用十分关键。高精度地图可为自动驾驶汽车提供精准的定位、辅助环境感知,并帮助实现决策规划,提高自动驾驶安全性。自动驾驶提供完备的周边环境信息,为定位和路径规划提供重要依据。
随着无人驾驶技术的不断发展,其对环境感知的要求也越来越高,在这种背景下,高精度地图就显得愈发重要。使用高精度地图配合传感器是目前自动驾驶应对复杂交通环境最有效的方案[6]。
就目前看来,高精度地图只是做了初步研究,与真正实现无人驾驶还是有很长的距离。本研究基于无人驾驶实体车采集校园真实点云数据,由于点云数据标准和软件繁多,本研究基于开源软件进行数据处理和制作,反复测试整理,以期为案例稀缺的校园点云地图应用提供案例。
三维点云数据处理过程如图1所示。
图1 三维点云数据处理过程Fig.1 3D point cloud data processing
1.1.1 采集设备
高精度地图的数据采集主要有两种形式:其一是激光雷达和摄像头配合GPS,其二是摄像头和GPS配合计算距离算法。也就是需要一些传感器来采集数据。
激光雷达主要用来采集点云数据,因为激光雷达可以精确的反应出位置信息,所以激光雷达可以知道路面的宽度,红绿灯的高度,以及一些其他的信息。可装载于无人车、遥控机、普通汽车等载体上,主要使用Velodyne的新款VLP-16传感器[7]。摄像头主要是来采集一些路面的标志、车道线等,因为图像的像素信息更多,而位置信息不太精确,所以采用摄像头来识别车道线,路面的一些标志等。此外还有GNSS(全球导航卫星系统)可以记录车辆的位置信息,IMU(惯性测量单元)可以用来捕获车辆的角度和加速度信息,并校正车辆的位置和角度。
实验中将激光雷达等工具搭载在百度Apollo等无人车上使用。
1.1.2 操作系统与相关软件
Linux在点云处理的方面要比其他操作系统更为成熟,相关的pcl环境配置简便快捷。并且Linux拥有相对较少的系统资源占用,安装便捷,且所有组件的源代码都是自由的,这里选用Linux作为主要使用的操作系统。
Robot Operating System (ROS)是一个得到广泛应用的机器人系统的软件框架,它包含了一系列的软件库和工具用于构建机器人应用[8]。Rviz是ROS中一款三维可视化平台,能够实现对外部信息的图形化显示。
此外还有Cloud Compare、BCAL LiDAR Tools等一些软件可以实现点云数据可视化处理。
1.1.3 开源数据
关于三维点云数据的开源数据有很多,比如悉尼城市目标数据集、斯坦福大学的3D扫描存储库、ASL数据集等。国内在此方面的发展比较薄弱,还需要进行相关开源点云数据方面的发展。
1.2.1 数据的滤波处理
管理点云数据常见的方式是使用PCL,PCL(Point Cloud Library)是一个大型跨平台开源C++编程库。点云文件PCD(Point Cloud Data)是PCL中的数据存储类型。
实际中,由于点云数据密度不规则、离群点或噪声数据等原因,需要对点云数据进行滤波处理。常见的滤波方法见表1。
1.2.2 泊松分布的滤波处理
传统双边滤波存在一个很大的问题即:两个高斯核函数的参数σs(空间相似性的高斯标准差)和σr(灰度相似性的高斯核标准差)必须根据经验来选取,其工作量很大,且必须调整两个参数,不具有一定的适应性。这里尝试用不同的分布函数来实现权值的分配,这里尝试使用泊松分布[10]。
由泊松分布的分布函数应用到图像中,使用中心像素点(i,j)的灰度值作为泊松分布参数λ,p(i,j)(x=k)为对应像素点(i,j)对应的泊松分布函数,由泊松分布的性质可知,分布函数会随着灰度值k的变化而改变,并且灰度值达到一定值时近似于高斯分布,因此具有一定的自适应性[10]。
1.2.3 数据格式及转换
一般以.bag文件或以.pcap文件的方式记录数据,可以对记录下的数据进行各种优化处理与回放演示。关于点云显示的直接文件是.pcd文件,这里对于这三种文件的格式和转换作一些说明,为后面实验中的方案选择作一个指导。
由表2可见,Linux下这些三维点云处理过程中常用的数据格式的转换是非常方便的,其他操作系统也有很多转换方法,但都不如Linux的实用性强。
表2 数据格式及转换Tab.2 Data format and conversion
一个标准的高清地图创建系统包括两个核心组件:3D点云拼接和语义特征提取。3D点云拼接通常采用基于图的SLAM进行分层细化,其中的关键组件是位姿图,可以对LiDAR位姿之间的关系进行建模[12]。语义特征提取包含机器学习和人工监督的迭代过程。
最终输出包括一个点云地图,它是一个密集的3D点云。其中点云是某个坐标系下的点的数据集。点包含了丰富的信息,包括三维坐标X,Y,Z、颜色、分类值、强度值、时间等,不一一列举[13]。
所用的主要数据格式为.bag文件与.pcd文件。
.bag文件是用于存储ROS相关文件格式信息的数据袋,.bag扩展名因此而得名。.bag文件在ROS中起着重要作用,并且ROS编写了各种工具来允许存储,处理,分析和可视化它们。
BAG文件格式如下:
#ROSBAG V2.0
每条记录的格式如下:
记录的数据格式见表3。
表3 记录的数据格式Tab.3 Record data format
每条记录的标头包含一系列name=value的字段,如下
标头记录的数据格式见表4。
表4 标头记录的数据格式Tab.4 Data format of header record
点云显示的直接文件是.pcd文件,支持由PCL库引进n维点类型机制处理过程中的某些扩展,是一种较为通用的点云数据处理类型,其格式见图2所示。
图2 .pcd格式说明Fig.2 .pcd format description
2.2.1 绘制方案
总体流程见图3。
图3 地图绘制流程Fig.3 Map drawing process
我们绘制地图时有以下三种方案。
(1)使用了linux系统下的ROS。通过Rviz平台读取事先采集的.bag数据包,呈现点云化的校园场景。
(2)使用与VLP-16激光雷达相配套的可视化软件VeloView,显示录制好的.pcap数据包。
(3)使用开源软件Cloud Compare读取.pcd数据包实现可视化。
2.2.2 实际展示
校园一角(俯视图)见图4。
图4 绘制地图(俯视图)Fig.4 Mapping (top view)
校园一角(主视图)见图5。
图5 绘制地图(主视图)Fig.5 Mapping (main view)
目前为止,我国在无人驾驶领域还处于研发的初级阶段,2015年政府才将自动驾驶技术纳入国家顶层规划中,各种关于封闭园区内与封闭园区外的实验实例数量很少。
本次北京交通大学园区内点云地图的扫描、绘制实验为当今我国封闭园区内无人驾驶的实例作了补充,并研究了常用的三维点云采集方法、数据格式及其转换,为无人驾驶领域的数据处理提出了优化方法,并对通用的点云数据采集、处理流程做了总结。
引用
[1] 张溯,杨军.利用空间结构信息的三维点云模型分类[J].小型微型计算机系统,2021,42(4):779-784.
[2] 张亚,山锋,王涛.三维激光扫描技术点云数据采集与配准研究[J].地理空间信息,2021,19(3):24-27+6.
[3] 陈宗娟,孙二鑫,李丹丹,等.高精地图现状分析与实现方案研究[J].电脑知识与技术,2018,14(22):270-272.
[4] 常昊.无人驾驶汽车现状的分析和意见建议[J].内燃机与配件,2018(9):240.
[5] 李鑫慧,郭蓬,戎辉,等.高精度地图技术研究现状及其应用[J].汽车电器,2019(6):1-3.
[6] 潘霞,张庆余,朱强.高精度地图在自动驾驶领域的作用及意义解析[J].时代汽车,2019(4):49-50+53.
[7] 许毅,郭际明,方孟元,等.基于VLP-16激光雷达的360°全站式激光扫描仪设计与实现[J].测绘通报,2016(S2):186-189.
[8] 金志熙,王宏远,勾尤旭,等.基于ROS目标跟踪移动机器人设计与实验[J].电脑知识与技术,2021,17(2):1-3.
[9] 石野,王晓凯,刘慧锋.基于局部滤波模板的双边滤波算法研究[J].测试技术学报,2021,35(1):49-53.
[10] 杨赞伟,郑亮亮,曲宏松,等.联合均值滤波与泊松核双边滤波降噪算法研究[J].计算机仿真,2020,37(9):460-463+468.
[11] 洪霄.基于激光雷达的3D点云目标识别[D].哈尔滨:哈尔滨工程大学,2020.
[12] 谭毅滢,魏拾其,宋健洪,等.地基LiDAR技术在活动断层三维场景建模中的关键技术与应用[J].中山大学学报(自然科学版),2021,60(3):78-87.
[13] 焦宏伟,秦石乔,胡春生,等.一种脉冲激光雷达与摄像机标定方法的研究[J].中国激光,2011,38(1):221-225.