29
三维点云数据作为空间信息数字化的重要表现应用日益广泛。随着无人驾驶技术的不断发展,三维点云的采集、处理、可视化等应用技术和研究越来越多。该研究基于无人驾驶领域,对三维点云数据采集、处理、可视化的过程、行业应用和研究进展进行了调研和归纳,理清整体脉络;进而利用无人驾驶实体车辆进行校园三维点云数据采集和高精度地图的制作;最后对三维点云的应用及高精度地图的发展前景提出了展望。
0 引言
点云是一种常见的3D形状的表达方式,我们可以通过点云来表示一个物体或者一个场景。通过不同角度观察,得到点云。我们通过人眼可以分辨出点云所代表的物体的类别、猜测物体可能蕴含的功能以及通过不完整的点集来还原出物体本来的形状。
三维点云模型因具有良好的形状表达能力,在机器人、自动驾驶、场景重建等领域有着广泛的应用[1],此外还在建筑物三维建模、文物保护、地质灾害监测、土木工程、设施维修、军事农业等领域起到了很大的作用[2]
无人驾驶领域的三维点云数据主要与高精度地图结合紧密。高精度地图是无人驾驶领域的刚需,在整个无人驾驶领域中不可或缺,高精度地图可以帮助汽车预先感知路面复杂信息,比如说路面的坡度、曲率、航向,结合智能路径规划,从而使汽车对路面状况做出正确响应。高精地图是指高精度、精细化的地图,与普通电子地图相比,其不仅有准确的坐标, 还能准确的描绘道路形状、车道线等[3]。正是因为高精度道路导航地图丰富的信息含量,使得它具有庞大的数据量,而传统的集中式大数据处理模式无法满足它的计算需求。
目前的高精度地图,在封闭园区内使用的居多。国内的研究主要由清华大学、吉林大学领衔,成立了中国自动驾驶地图工作组。2015年起,各大互联网企业纷纷投身到无人车的研究中来,开始推动这一行业走向高潮[4]。
国外许多传统地图厂商,如Here、TomTom等,也投入对高精度地图的研发和生产当中[5]。国外高校对于高精度地图也有许多研究。比如斯坦福大学专门研究高精度地图的项目Civil Maps。
作为自动驾驶产业链中重要的一环,高精度地图的作用十分关键。高精度地图可为自动驾驶汽车提供精准的定位、辅助环境感知,并帮助实现决策规划,提高自动驾驶安全性。自动驾驶提供完备的周边环境信息,为定位和路径规划提供重要依据。
随着无人驾驶技术的不断发展,其对环境感知的要求也越来越高,在这种背景下,高精度地图就显得愈发重要。使用高精度地图配合传感器是目前自动驾驶应对复杂交通环境最有效的方案[6]。
就目前看来,高精度地图只是做了初步研究,与真正实现无人驾驶还是有很长的距离。本研究基于无人驾驶实体车采集校园真实点云数据,由于点云数据标准和软件繁多,本研究基于开源软件进行数据处理和制作,反复测试整理,以期为案例稀缺的校园点云地图应用提供案例。
1 三维点云数据处理过程介绍
三维点云数据处理过程如图1所示。1.1 三维点云数据采集1.1.1 采集设备
收稿日期:2021-09-29
*基金项目:本文得到北京交通大学2020年大学生创新创业训练计划项目“校园高精度地图绘制”资助作者简介:宬苟悦,男,甘肃兰州人,本科,研究方向:计算机科学与技术。通讯作者:周围(1973—),女,北京人,博士,研究员,研究方向:数据与知识工程。
基于无人驾驶的点云数据处理与校园高精度地图应用*
北京交通大学计算机与信息技术学院 苟悦宬 邓志坚 黄成梁 周围
中图分类号:U463.6
文献标识码:A
文章编号:1007-9416(2021)12-0029-04
DOI:10.19695/jki12-1369.2021.12.10
通用自动驾驶汽车. All Rights Reserved.
第  39  卷                      数字技术与应用    www.szjsyyy
30
高精度地图的数据采集主要有两种形式:其一是激光雷达和摄像头配合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.
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的实用性强。
方法名称
说明
Statistical Outlier Removal (统计离值删除) 对每个点的邻域进行统计分析,剔除不符合一定标准的邻域点。 Radius Outlier Removal (去除半径异常值)
在点云数据中,设定每个点一定半径范围内至少有足够多的近邻,
不满足就会被删除。
Bilateral Filter (双边滤波)
通过对几何邻近关系和亮度相似性的非线性组合,形成新的滤波模板权重值。
然后用该滤波模板与原始图像进行卷积,得到滤波后的图像[9]
表1 常见的滤波方法
Tab.1  Common filtering methods
图1 三维点云数据处理过程
Fig.1  3D point cloud data processing
. All Rights Reserved.
2021年第 12 期
31
1.3 三维点云数据可视化
一个标准的高清地图创建系统包括两个核心组件:3D点云拼接和语义特征提取。3D点云拼接通常采用基于图的SLAM进行分层细化,其中的关键组件是位姿图,可以对LiDAR位姿之间的关系进行建模[12]。语义特征提取包含机器学习和人工监督的迭代过程。
最终输出包括一个点云地图,它是一个密集的3D点云。其中点云是某个坐标系下的点的数据集。点包含了丰富的信息,包括三维坐标X,Y,Z、颜、分类值、强度值、时间等,不一一列举[13]。
2 校园高精度地图应用
2.1 实验用数据描述
所用的主要数据格式为.bag文件与.pcd文件。.bag文件是用于存储ROS相关文件格式信息的数据袋,.bag扩展名因此而得名。.bag文件在ROS中起着重要作用,并且ROS编写了各种工具来允许存储,处理,分析和可视化它们。
BAG文件格式如下:#ROSBAG V2.0
<;记录1> <;记录2> .... <;记录N>每条记录的格式如下:
<header_len>  <header>  <data_len>  <data>记录的数据格式见表3。
每条记录的标头包含一系列name=value的字段,如下<field1_len><field1_name> = <field1_value><field2_len><field2_name> = <field2_value>...
<fieldN_len><fieldN_name> = <fieldN_value>标头记录的数据格式见表4。
点云显示的直接文件是.pcd文件,支持由PCL库引进n维点类型机制处理过程中的某些扩展,是一种较为通用的点云数据处理类型,其格式见图2所示。
2.2 地图绘制2.2.1 绘制方案总体流程见图3。
我们绘制地图时有以下三种方案。
(1)使用了linux系统下的ROS。通过Rviz平台读取事先采集的.bag数据包,呈现点云化的校园场景。
(2)使用与VLP-16激光雷达相配套的可视化软件VeloView,显示录制好的.pcap数据包。
(3)使用开源软件Cloud Compare读取.pcd数据包实现可视化。
2.2.2 实际展示
校园一角(俯视图)见图4。校园一角(主视图)见图5。
表3 记录的数据格式
Tab.3  Record data format
名称 概述
格式
长度
fieldX_len 后续Name 和Value 的长度(byte)
小字节序    4 bytes
fieldX_name 该区域的名称 字符串
多变的,以“=”终止
fieldX_value
该区域的值
特定领域(field-specific)
多变的
名称 概述 格式 长度
header_len Header 的长度
小字节序
4 bytes header 记录的元数据 见下文
header_lenth
字节
data_len 后续数据的长度 小字节序    4 bytes data
记录特定的数据 见下文 Data_len 字节
表4 标头记录的数据格式
Tab.4  Data format of header record
数据格式 说明 常见转换
.pcap
PCAP 是一种数据流格式,在Linux 系统 里,PCAP 是一种较为通用的数据流格式。 在Ubuntu 下安装Velodyne driver 后,可以运行.pcap, 通过Rosrun 命令将.pcap 转换为.pcd 文件。
.pcd
支持由PCL 库引进n 维点类型机制 处理过程中的某些扩展,是一种较为 通用的点云数据处理类型[11]
。 直接使用ROS 终端命令可将.bag 转换为.pcd,命令格式如下: rosrun pcl_ros bag_to_pcd [路径+包名] [话题名]
[生成文件路径] .bag
BAG 文件是ROS(机器人操作系统)
常用的数据存储格式。
可以在.pcap 的运行过程中采用Rosbag 命令直接录制.bag 包。
表2 数据格式及转换
Tab.2  Data format and conversion
苟悦宬 邓志坚 黄成梁等:基于无人驾驶的点云数据处理与校园高精度地图应用
. All Rights Reserved.
第  39  卷                      数字技术与应用    www.szjsyyy
32
各种关于封闭园区内与封闭园区外的实验实例数量很少。
本次北京交通大学园区内点云地图的扫描、绘制实验为当今我国封闭园区内无人驾驶的实例作了补充,并研究了常用的三维点云采集方法、数据格式及其转换,为无人驾
驶领域的数据处理提出了优化方法,并对通用的点云数据采集、处理流程做了总结。
引用
[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.
图3 地图绘制流程
Fig.3  Map drawing process
图4 绘制地图(俯视图)Fig.4  Mapping (top view)
图5 绘制地图(主视图)Fig.5  Mapping (main view)
3 结语
目前为止,我国在无人驾驶领域还处于研发的初级阶段,2015年政府才将自动驾驶技术纳入国家顶层规划中,图2 .pcd 格式说明
Fig.2  .pcd format description
. All Rights Reserved.