续 东, 柳景斌, 花向红, 陶武勇
1. 武汉大学测绘遥感信息工程国家重点实验室,湖北 武汉 430079; 2. 武汉大学测绘学院,湖北 武汉 430079
在城市环境中实现完全无人驾驶依赖于准确的环境感知算法,获取道路边界点是环境感知算法的重要任务[1]。精确的道路边界不仅为无人驾驶汽车提供安全的可通行区域,而且可以用于无人驾驶汽车的定位与建图[2]。
城市道路边界大部分(直道、弯道)具有全局连续性特征,结合多种局部特征,边界可以被稳健地探测到,已有多种方法达到了较好的效果。在这些方法中使用的传感器包括:单目摄像头[3-4]、单线激光雷达[5-6]及多线激光雷达[7]。多线激光雷达与其他传感器相比具有以下优点[8]:①相对于视觉传感器[9],对环境的光照变化不敏感;②能够实时、精确地获取车辆周围环境的3D信息。因此,多线激光雷达近年来被广泛应用于无人驾驶汽车的环境感知任务。目前,无人驾驶汽车上常用的多线激光雷达有16线、32线和64线3种,其中64线和32线激光雷达使用最多,公开的数据集大部分也是使用这两种激光雷达,如KITTI数据集[10]、NCLT数据集[11]等。随着激光测量技术的发展,16线激光雷达因为其有竞争力的价格被越来越多的车企、创业公司以及高校采用。实现适用于16线激光雷达的道路边界点提取算法,对推广无人驾驶技术有积极的意义。
国内外对基于多线激光雷达的道路边界点提取方法有深入的研究,目前主要研究成果分为两类:计算单一尺度空间特征的道路边界点提取方法[12-14]和计算多尺度空间特征的道路边界点提取方法[15-16]。第1类研究主要有:文献[12]将3D点云映射到2D栅格中,利用3种局部特征(栅格内高程差、相邻栅格梯度和法向量)提取道路边界栅格,获取道路边界点。栅格映射是道路边界探测中常用的方法,然而由于多线激光雷达获取的点云分布不均匀,导致许多栅格为空,浪费了存储和计算资源。此外,栅格尺寸大小的设置需要根据扫描数据的特性进行多次试验:栅格过大,容易丢失细节,损失探测精度;栅格过小,如果数据稀疏,常常探测不到道路边界点。文献[13]对路面点进行平面拟合,根据道路边界高度进而获取候选道路边界点,最后通过对候选道路边界点进行曲线拟合获得道路边界点。该方法基于道路边界高度特征进行道路边界点的提取,但是由于道路边界特征多样性(草丛路边、石头路边)和路内障碍物遮挡,很难建立固定模型对道路边界进行准确、可靠的识别。文献[14]首先根据光线传播方法对点云进行分割得到多个部分,然后采用滑动窗口方式逐线提取道路边界点。该方法主要根据道路边界点之间空间特征与非道路边界点之间空间特征的区别,提取道路边界点。该方法仅考虑点之间空间特征而忽略了道路趋势信息,容易将非道路边界点识别为道路边界点,方法精确率不高。第2类是计算多尺度空间特征的道路边界点提取方法,目前研究主要有:文献[15]在利用基于滑动窗口的光线传播方法将道路分割成多个部分后,先利用最小二乘拟合平面模型计算大尺度空间特征,随后计算点与点之间的小尺度空间特征,进而提取道路边界点。文献[16]首先利用小尺度空间特征选取后续道路边界点,再利用候选道路边界点进行道路边界拟合,对候选道路边界点进行滤波,提取道路边界点。第1类方法通过计算单一尺度空间特征提取道路边界点,计算速度快但提取道路边界点的精确率较低。第2类方法兼顾了计算大中尺度和小尺度空间特征的优点,但选择的大中尺度和小尺度空间特征,对道路边界点的提取结果会造成较大影响。
基于以上分析,本文提出一种道路空间特征和测量距离相结合的道路边界点提取方法:通过计算多种空间特征,结合激光雷达测量距离,能够准确稳定地从16线激光雷达获取的稀疏点云中提取道路边界点。由于汽车多行驶在城市环境中,本文着重探究城市环境下结构化道路边界点的提取。图1为本文道路边界点提取方法流程。
图1 本文道路边界点提取方法流程Fig.1 The workflow of road curb points extraction method proposed in this paper
利用16线激光雷达进行道路边界点提取,首先需要对激光雷达获取的数据进行预处理。预处理步骤包括16线激光雷达的标定和数据修正。
本文所采用的16线激光雷达从上至下共有16根扫描线,竖直角度跨度为-15°~15°,竖直角度分辨率为2°,每根扫描线对应的竖直角度见表1。16线激光雷达的其他参数为:水平角度跨度为360°,水平角度分辨率为0.2°;扫描频率为10 Hz;测距精度为±3 cm,最小测程为0.5 m,最大测程为150 m。
表1 16线激光雷达扫描线与对应垂直角度
图2 16线激光雷达侧视图和俯视图Fig.2 Side view and top view of 16-ray LiDAR
车辆正前方为载体坐标系Y轴正方向,车辆右侧为X轴正方向,载体坐标系原点为激光雷达中心。16线激光雷达安装在车辆顶部,安装后激光雷达与车辆保持水平,如图3所示。因为本文未使用其他传感器进行边界点提取,且在安装上确保了激光雷达与车体保持水平,本文描述的16线激光雷达标定消除了激光雷达球坐标水平0°方向与载体Y轴方向之间的夹角∂。本文采用的标定方法参考了文献[17—20]。
图3 16线激光雷达安装示意Fig.3 Installation diagram of 16-ray LiDAR
本文中激光雷达的标定原理为:根据同名点在激光雷达坐标系的坐标和载体坐标系下的坐标计算夹角∂。具体步骤为:①将载体驶入有明显标志物的标定场地,在该场地内可以获取标志物在载体坐标系下的坐标;②保存16线激光雷达数据,获取标志物在激光雷达坐标系下的坐标;③计算旋转平移矩阵,并转为欧拉角,获得夹角∂。
(1)
16线激光雷达测量数据修正主要包括以下方面:首先,在激光雷达的一个扫描周期内,无人驾驶汽车的移动使得激光雷达原点的位置发生显著位移,如果不修正无人驾驶汽车行驶过程中对测量数据的影响,会使得在一个扫描周期内的同一条激光线上的测量点出现局部扭曲;其次,在一个扫描周期内,汽车的姿态变化也会对道路边界检测产生较大影响。为了保证道路边界检测的准确性,必须对16线激光雷达测量的原始数据进行修正。图4展示了车辆姿态角γ、β和α。
图4 扫描周期内车辆姿态变化Fig.4 Schematic of vehicles posture changing under vehicle motion condition
16线激光雷达扫描一帧所需要的时间较短,可以认为同一帧内车辆的位置和姿态(位姿)变化近似线性变化,因此一帧内每一时刻车辆的位姿可以通过前后两帧车辆的位姿插值获得。通过无人驾驶汽车上的传感器可以获得每一帧的位置变化量(Xframe,Yframe,Zframe)和姿态变化量(γframe,βframe,αframe),当前帧的位姿与上一帧的位姿相减获得位姿变化量。每一帧中每一时刻的位姿变化量可通过线性插值获得,将位姿变化量进行转换可得到矫正车辆移动的平移向量T和旋转矩阵R。假设当前帧的起始水平旋转角为φ1,多线激光雷达扫描到φ2时,Tφ2和Rφ2通过式(2)获得
(2)
(3)
16线激光雷达数据修正结果如图5所示。
图6展示了结构化道路属性信息,基于多线激光雷达的道路边界点提取即在点云中提取红色扫描点。本文采用多种空间特征,并结合道路边界点的测量模型提出了一种适用于16线激光雷达数据的道路边界点提取算法。
为了保证道路边界点提取方法的实时性和精度,首先对原始点云进行初步处理,去除大量道路外区域的点。初步处理过程如下:选用RANSAC算法进行平面拟合[21]获得平面模型参数,设定高程阈值为0.25 m,将所有点代入平面模型中,保留低于高程阈值的点。RANSAC算法是从一组含有噪声的数据中正确估计数学模型参数的迭代算法。该算法步骤如下:①随机选取可以估计出模型的最小数据集;②计算模型参数;③将所有数据代入模型,计算内点(符合当前模型的数据)数目;④比较当前模型和之前推出的最好的模型的内点数量,记录最大内点数的模型参数和内点数;⑤重复①—④步,直到迭代结束或当前模型符合迭代终止条件。RANSAC算法可以从包含道路外区域点的点云中,精确估计道路平面模型参数。相对于利用最小二乘方法获取道路平面模型参数,RANSAC算法具有更强的稳健性[22]。处理结果如图7所示,初步处理剔除了大部分道路外区域点,在保留点中存在着部分非道路边界点。后续步骤中通过计算小尺度空间特征,逐步剔除非道路边界点,最后提取到正确的道路边界点。
图5 16线激光雷达数据修正Fig.5 16-ray LiDAR data correction
图6 结构化道路属性信息Fig.6 Structured road geometry description
16线激光雷达扫描得到的道路边界点存在很多不同于道路表面点的空间特征,例如道路边界点高度高于道路表面点、同条扫描线中道路边界点之间的水平距离大于道路表面点之间的水平距离以及道路边界点之间的高度变化较大等。本文基于每条扫描线中点与点之间空间特征,并结合道路边界点的测量模型,设计了4种指标来提取道路边界点,如图8所示。
图7 初步处理后的结果Fig.7 The result of preliminary process
图8 小尺度空间特征Fig.8 Interpretation of small-scale spatial features
(1) 水平连续性指标:相邻两点间的水平距离阈值δxy,i
(4)
式中,h为16线激光雷达安装高度(本文中h=2 m);θi为16线激光雷达中Laser ID为i对应的激光线的垂直角度;φ为水平角度分辨率(在本文中φ=0.2)。如果激光扫描在道路边界上,得到的点之间的水平距离大于δxy,i。
(2) 垂直连续性指标:相邻两点间的高度阈值δz,δz设置为固定值(本文中δz=0.02 m)。
(3) 测量距离:最小距离阈值disti_min和最大距离阈值disti_max
(5)
式中,h_curb为道路边界高度(本文中设置为0.15);ε为测量误差,根据16线激光雷达的参数得知,ε=0.03 m。如图8所示,当16线激光雷达扫描到道路边界最下方时,达到测量到道路边界的最大距离,当16线激光雷达扫描到道路边界最上方时,达到测量到道路边界的最小距离。因此测量距离也可以作为一个空间特征加以利用,进而提取道路边界点。
(4) 相邻点构成的水平面向量夹角ρi,j
(6)
输入:Laser ID为0、2、4、6、8、10的激光测量的点云P1,迭代次数K,阈值t,阈值δz
输出:道路边界点P2
(7)
(8)
图9展示了本文提出的道路边界点提取方法的流程以及每一步处理完的效果。从步骤1到步骤5,每次都对候选的道路边界点进行了筛选,直到提取出道路边界点。
图9 各步骤处理结果Fig.9 The results of each step
为了充分评价本文提出的道路边界点提取方法表现,试验选择包含典型交通场景的城区道路环境作为试验区域,5种道路边界点提取方法同本文中提出的道路边界点提取方法进行比较,这5种方法为文献[12]、文献[13]、文献[14]、文献[15]、文献[16]中的方法。
试验区域为典型的城市交通场景(图10),道路长度为5 km。该区域包括直道、“T”形路口和“Y”形路口场景,场景中存在大货车、小汽车、自行车和人等主要交通参与者。试验平台为吉利电动车,采集数据时车辆的行驶速度为40 km/h。总计采集数据本文16线激光雷达测量数据2400帧, 选取了不连续的80帧作为验证道路边界点提取方法性能的数据集 (直道场景50帧,T”形路口场景和“Y”形路口场景各15帧),并对获取数据中的道路边界点进行人工标注。每帧16线激光雷达数据包含约3万个点。
图10 试验场景Fig.10 The experimental scene
本文评价道路边界点提取方法性能的指标参考了机器学习中评价分类器性能的指标。在机器学习中,对于二分类问题常用的评价度量是精确率和召回率[23]。精确率表示判断为正例的例子中,真正为正例的比例;召回率表示所有正例中,被判断为正例的比例。在评价多个分类器性能时,可能存在某个分类器召回率很高,精确率很低,另一个分类器精确率很高,召回率很低,此时仅使用单一的性能度量,不能很好地评价分类器性能。为了解决如何判断分类器性能的问题,文献[24]设计了一些综合考虑精确率和召回率的性能度量,例如F1得分,它是精确率和召回率的调和值。因此本文选用精确率Precision、召回率Recall以及F1得分作为评价道路边界提取方法的指标,3种指标可通过式(9)计算得到
(9)
式中,TP为道路边界点提取方法识别正确的道路边界点数目;FP为道路边界点提取方法识别错误的道路边界点数目;FN为道路边界提点取方法未提取到的边界点数目。
表2列出了5种现有道路边界点提取方法和本文方法在每种场景下的平均评价指标结果和标准差及3种场景的总平均结果。
表2 道路边界点提取结果
由表2可以看出,在精确率方面,本文提出的方法取得了最好的结果。因为文献[12]的方法、文献[13]的方法和文献[14]的方法是计算单一尺度空间特征的道路边界点提取方法,所以这3种方法在精确率上表现较差。文献[15]的方法和文献[16]的方法是计算多尺度空间特征的道路边界点提取方法,这两种方法相对于计算单一尺度空间特征的方法在准确率上有一定的提升。在召回率方面,计算大尺度空间特征可以从稀疏的16线激光雷达数据中保留更多的道路边界点,因此,文献[13]的方法获得了最高的召回率。但计算大尺度空间特征也保留了很多非道路边界点,需要结合其他空间特征对保留的点进行进一步筛选,否则会降低道路边界点提取方法的精确率。只计算单一空间特征是造成文献[13]的方法精确率最低的原因。本文方法结合了多尺度空间特征,同时考虑了道路边界点的测量模型,相对于现有道路边界点提取方法,在确保较好召回率的同时提升了精确率。F1得分是精确率和召回率的调和值,本文提出的方法以精确率和召回率为评价度量时,都取得了最好或较好的表现,所以F1得分高于其他方法。
16线激光雷达扫描的频率通常设置为10 Hz[25],即0.1 s完成1帧点云的扫描。在0.1 s时间内,无人驾驶汽车的多个系统需要协同合作完成下一步决策,道路边界提取只是环境感知中比较重要的一个环节,因此,在0.01 s内完成道路边界点提取是比较合理的实时性要求[26]。本文提出的道路边界点提取方法对500帧点云的处理时间如图11所示,其平均运行时间为3.713 ms,最大运行时间为7.894 ms,满足实时性要求。
图12、图13和图14分别展示了6种方法在不同场景下的边界点提取结果。
图11 本文算法处理500帧点云运行时间Fig.11 Runtime of curb points extraction with proposed algorithm for 500 frames
图12 直道道路边界点提取结果Fig.12 The results of curb points extraction in straightaway
由图12、图13和图14中可以看出,本文的方法相对于其他5种方法取得了较好的效果,但是存在部分不足。首先在不平整道路上,道路边界探测效果不佳,经过分析得出通过原始的测量距离筛选道路边界点依赖于局部相对平整的道路环境。其次对于扫描间隔紧凑的道路边界点没有取得较好的探测结果,该类边界点之间虽然存在一定的高度差,然而其点间高差和点间水平间距较小,与道路表面点近似,本文中设置的水平距离阈值和高差阈值不能很好地将其与道路表面点区分开,会将这类边界点识别为非道路边界点进而去除,如果将高差阈值和点间距阈值设置较小,可以保留扫描间隔紧凑的道路边界点,其夹角特征与其他道路边界点的夹角特征相同,结合测量距离,可以完成该类型道路边界点的提取。虽然将高差阈值和点间距阈值设置较小可以完成扫描间隔紧凑的道路边界点的提取,但也造成了道路表面点的错误识别,降低了算法的精确率。当扫描间隔紧凑的道路边界点不满足文中设置的水平距离阈值和高差阈值的情况下,考虑到该类边界点存在持续的高度增加或高度减少过程,结合测量距离阈值和起始于一点的水平向量夹角阈值,可以完成该类道路边界点的提取。
图13 “Y”形路口道路边界点提取结果Fig.13 The results of curb points extraction in Y-shape intersection
图14 “T”形路口道路边界点提取结果Fig.14 The results of curb points extraction in T-shape intersection
图15 扫描间隔紧凑的道路边界点Fig.15 Compact road curb points
针对目前基于多线激光雷达的道路边界点提取方法在数据较稀疏的16线激光雷达数据中提取道路边界点精确率较低的问题,本文提出了一种稳健的道路空间特征和测量距离相结合的道路边界点提取方法,并在实际道路环境下进行了试验测试。试验结果表明,本文方法在数据稀疏的16线激光雷达数据中,能够准确提取出道路边界点。相对于现有方法,本文方法提高了精确率,并且能够满足无人驾驶汽车实时性要求。该方法在结构化道路环境下具有较好的稳健性,但是当道路边界不具有高程阶跃的特性时,会导致结果不稳定,下一步工作将研究多传感器融合以解决该问题。