道路边界可以将道路区域和非道路区域分开,从而为无车驾驶车提供安全可靠的可通行区域[1-2],同时检测到的道路边界可以缩小对障碍物的搜索范围从而提高障碍物检测的准确率[3-4].此外,当GPS数据不准确甚至信号丢失时,道路边界可以作为有效的特征用于无人车的自身定位[5-7].因此,准确的道路边界检测对无人车的自主导航具有重要意义.
近年来,国内外学者对道路边界检测进行了大量的研究.不同的传感器被应用到道路边界的检测中,其中包括单目视觉[8-10]、立体视觉[11-13]、2D激光雷达[14-18]以及3D激光雷达[7, 19-22].
单目视觉体积小、价格低且能提供丰富的纹理、颜色等信息,然而易受到环境中的阴影以及复杂背景的影响且没有深度信息.立体视觉虽具有深度信息,但视场角小且需要计算视差才能获得深度信息,实时性较差.2D激光雷达不受外界光照变化的影响,可以直接获取深度信息,但只能在一个固定的角度上扫描,无法提供足够的信息进行道路环境建模.与以上传感器相比,3D激光雷达除具有2D激光雷达的优点外,还能实时、精确地获得车辆周围环境的3D信息, 近年来被广泛用于无人车的环境感知.
基于3D激光雷达,栅格映射是道路边界检测中常用的方法,解决了单一传感器检测可靠性差的难题.Zhao等[19]将3D雷达点云映射到2D栅格中,并利用3种局部特征提取道路边界栅格.刘健等[20]利用道路趋势信息和道路宽度信息从障碍物栅格中提取边界种子点,最后通过二次曲线拟合得到完整的道路边界形状.然而,由于激光雷达点分布的不均匀性,导致许多栅格为空,浪费了存储和计算资源.此外,当道路上存在障碍物遮挡道路边界时,栅格不能真正反映道路边界的结构.另一种常用的边界检测方法是无向图方法,每个点可以看作图的一个节点,位于相同扫描线上的左右最近邻点和相邻扫描线上的前后最近邻点构成了该节点的4个最近邻节点,该方法充分利用了存储和计算资源,可以对密度不均、包含噪声等复杂场景下的点云进行分割并且可以获得更高的检测精度.Hata等[7, 21]将激光雷达点云数据组织成无向图,通过计算相邻扫描线间的径向差来识别道路点.Zhang等[22]采用滑动窗口的方式逐线提取道路边界点,采用抛物线拟合道路边界.然而建立图的拓扑结构和计算图节点之间权重时间复杂度大,对于处理数据量较大的点云耗费时长,难以满足无人车对检测算法实时性的要求.
此外,现有的算法仅利用了道路边界的局部特征,没有考虑道路中存在动态障碍物、边界被遮挡以及边界不规则等问题,很难将这些方法实际应用到无人车的自主导航中.本文结合栅格映射和无向图,提出一种鲁棒的城市道路边界检测方法,并在多种复杂场景下对算法的有效性进行定性和定量分析.
1 系统配置和点云数据预处理 1.1 系统配置如图 1(a)所示,无人车平台是在比亚迪“速锐”的基础上进行改装的,感知系统主要由1台Velodyne HDL-32E 3D激光雷达,3个SICK 2D激光雷达,2个RGB相机,1个视觉系统,1套RT3000组合导航系统组成,其中3D激光雷达安装在车顶用于对无人车周围的环境进行全方位感知.
![]() |
图 1 长安大学“信达号”无人车及其车载3D激光雷达采集的一帧3D激光雷达点云图 Fig. 1 "Xinda" autonomous vehicle from Chang'an University and captured frame of cloud map using vehicle-mounted 3D LIDAR |
如表 1所示,3D激光雷达有32个激光发射单元,以10 Hz的频率进行360°旋转,水平角度分辨率为0.16°,垂直角度分辨率约为1.33°,旋转一周可产生约70 000点,可以检测车辆周围100 m范围内的目标[23],俯仰角较低的雷达扫描一周投射到地面上会形成同心圆,如图 1(b)所示的一帧激光雷达点云图.RT3 000惯性导航系统由三轴角速度传感器、三轴加速度计和1个GPS接收机组成,可以通过以太网、串口或者CAN线的方式以100 Hz的频率输出高精度的航向、位置、车辆姿态等信息[24].
![]() |
表 1 Velodyne HDL-32E LIDAR性能参数 Table 1 Parameters of Velodyne HDL-32E LIDAR |
如图 2(a)所示为雷达在垂直方向辐射的角度分布,横坐标表示扫描线编号,纵坐标d表示扫描线间的相隔距离,从中可以看出前24条扫描线向下辐射,其后8条向上辐射,在检测道路边界时,只需考虑向下辐射的扫描线.图 2(b)和(c)分别为前24条扫描线辐射范围和相邻2条扫描线间的径向差,从图 2(b)可以看出雷达最大检测距离约为100 m,前22条相邻扫描线之间的水平间距小于10 m,而从第22条扫描线以后相邻扫描线间的径向差超过了15 m, 超出了一般道路宽度,为了提高处理速度和保持检测边界连续性,只保留前22条扫描线的点云作为有效数据.
![]() |
图 2 HDL-32E激光雷达扫描线辐射分布图 Fig. 2 Radiation distribution map of HDL-32E LIDAR scanning lines |
3D激光雷达输出的原始数据以球体坐标表示,以雷达中心为原点,输出信息包括激光点发射时的垂直辐射角α、水平旋转角β、所在的扫描线ring、径向距离dist以及时间.为了将这些雷达数据统一到车体坐标系下,需要将原始雷达点云转换到直角坐标系下,直角坐标系如图 1(a)中所示,对任意一点pi(αi, βi, γi, ri)转换方式如下:
$ \left[{\begin{array}{*{20}{c}} {{z_i}}\\ {{y_i}}\\ {{x_i}}\\ {{\rm{rin}}{{\rm{g}}_\mathit{i}}} \end{array}} \right] = \left[{\begin{array}{*{20}{c}} {{\rm{dis}}{{\rm{t}}_\mathit{i}}{\rm{sin}}\left( {{\alpha _i}} \right)}\\ {{\rm{dis}}{{\rm{t}}_\mathit{i}}{\rm{cos}}\left( {{\alpha _i}} \right){\rm{sin}}\left( {{\beta _i}} \right)}\\ {{\rm{dis}}{{\rm{t}}_\mathit{i}}{\rm{cos}}\left( {{\alpha _i}} \right){\rm{cos}}\left( {{\beta _i}} \right)}\\ {{\rm{rin}}{{\rm{g}}_\mathit{i}}} \end{array}} \right]. $ | (1) |
雷达数据中存在一些异常反射点,可导致无人车感知系统误检,导致无人车在可通行区域无法正常行驶.通过分析雷点云的分布情况,发现在同一扫描线上这些错误的测量点相对于其近邻点分布比较孤立,因此对每一条扫描线上的点pi(xi, yi, zi)按照3次的检测距离进行中值滤波.在1个扫描周期内,车辆的运动会使雷达原点的位姿发生显著的移动.例如无人车以10 m/s的速度行驶,雷达扫描一周原点会向前移动近1 m.因此如果不考虑车辆自身的运动,获取的扫描数据会出现局部扭曲,如图 3(a)所示,一个扫描周期内同一扫描线上的点呈现类椭圆分布.此外,当无人车在起伏的道路上行驶时,车辆的姿态会出现起伏、左右晃动,这也会改变传感器坐标系的原点和方向, 如图 3(b)和(c)所示的车辆在起伏道路上行驶时横滚和俯仰模型.当车辆的俯仰变化比较大时,无人车很容易将前方路面错误的识别为障碍物.因此,为了保证无人车在室外能够安全行驶必须将这些因素考虑进去.
![]() |
图 3 车辆运动时3D激光雷达扫描过程及姿态变化示意图 Fig. 3 Schematic of 3D LIDAR scanning process and vehicles posture changing under vehicle motion condition |
为此,获得每一帧点云的起始时刻,并从GPS/INS导航系统中提取车辆的位姿信息,以此修正当前帧的雷达点云数据,保证同一帧中的数据相对一致.雷达扫描一周的时间C非常短,在同一帧内车辆的位置和姿态近似线性变化,因此每一时刻车辆的位姿可以通过相邻两帧的位姿插值获得.假设当前帧的扫描起始水平旋转角为θ1,那么雷达旋转扫描到θ2时需要的时间为
$ t = C\left( {{\theta _2} - {\theta _1} + 2\pi } \right)/2\pi . $ | (3) |
从导航系统中提取车辆每一帧中位姿变化量,包括俯仰角αframe,横滚角βframe, 航向角γframe以及位移xframe, yframe, zframe.为了修正位于θ2处的点,需要计算从当前帧的起始位置到θ2处的平移矩阵Tθ2和旋转矩阵[αθ2, βθ2, γθ2]T,采用线性插值计算变换矩阵,计算方式如下:
$ \begin{array}{l} \;\;\;\;\;\;\;\;\;\;{\mathit{\boldsymbol{T}}_{{\theta _2}}} = \left( {1 - t/C} \right){\left[{{x_{{\rm{frame}}}}, {y_{{\rm{frame}}}}, {z_{{\rm{frame}}}}} \right]^{\rm{T}}}, \\ {\left[{{\alpha _{{\theta _2}}}, {\beta _{{\theta _2}}}, {\gamma _{{\theta _2}}}} \right]^{\rm{T}}} = \left( {1 - t/C} \right){\left[{{\alpha _{{\rm{frame}}}}, {\beta _{{\rm{frame}}}}, {\gamma _{{\rm{frame}}}}} \right]^{\rm{T}}}. \end{array} $ | (4) |
那么位于θ2处的点P矫正计算过程如下,点P′为矫正后的点:
$ \left. \begin{array}{l} {R_{{\theta _2}}} = {R_z}\left( {{\gamma _{{\theta _2}}}} \right){R_y}\left( {{\beta _{{\theta _2}}}} \right){R_x}\left( {{\alpha _{{\theta _2}}}} \right), \\ P' = {R_{{\theta _2}}}P + {T_{{\theta _2}}}. \end{array} \right\} $ | (5) |
HDL-32E激光雷达每秒可以产生70万个点的数据,如果对所有的点进行处理,时间复杂度较大,难以满足无人车对算法实时性的要求,道路边界点是地面点的一部分,因此可以采用一个快速有效的方法提取出地面点,这样既可以提高道路边界检测的速度同时可以消除诸如行人、车辆、树木等障碍物对道路边界的干扰,提高道路边界检测的精度.
由于3D激光雷达360°旋转,每个水平旋转角产生32个点,随着距离中心的距离不断增大,点的密度变得越来越稀疏,因此首先采用栅格映射方法构建一个2.5维的极坐标栅格图,可以加快地面点的提取速度,同时能减少空栅格的数量.如图 4(a)所示,首先将车辆周围区域分成等圆周的扇形区域,对每个扇形区域再进行划分.不同于传统的将栅格划分成固定大小,而是根据雷达扫描线的分布情况划分成不同大小的栅格,如图 4(c)所示,首先根据3D激光雷达的安装高度h和测量范围[b0, bk],确定雷达的最小俯仰角ϑ0和最大俯仰角ϑk,其中,
$ {\vartheta _i} = {\rm{arctan}}\left( {{\mathit{b}_\mathit{i}}/\mathit{h}} \right), {\rm{ }}i = 0, k. $ | (6) |
![]() |
图 4 柱状极坐标栅格示意图 Fig. 4 Schematic of columnar polar grid map |
根据图 4(b)中的扫描线的分布模型, 每个扇形中的栅格bi的位置计算过程如下:
$ {b_i} = h \cdot {\rm{tan}}\left( {{\vartheta _0} + i \cdot \lambda \cdot \Delta \vartheta } \right), \;\;i = 0, \cdots, k. $ | (7) |
其中,k是总的栅格数
$ k = \left\lfloor {\frac{{{\vartheta _k} - {\vartheta _0}}}{{\lambda \cdot \Delta \vartheta }}} \right\rfloor, $ |
Δϑ是3D激光雷达的垂直辐射角度分辨率,λ是调和因子用于确定每个极坐标栅格中包含的扫描线数,本文取λ=2,以确保至少栅格中包含两条扫描线.
极坐标栅格图建立后,根据每个点的极坐标映射到对应的极坐标栅格中.映射后的每个极坐标栅格中既有地面点,也有可能包含车辆、行人、树木等障碍点.在点云图中,车辆、行人等都是与地面相连并且垂直地面向上延伸,可根据每个栅格中点的延伸高度快速提取地面点.针对每个栅格中的点集,首先根据点的高度按照升序的方式排序,排序后的点集合可表示为
$ {\rm{PolarGrid}}(\mathit{m}, \mathit{n}) = \{ {p_i}, i = 1, 2, \cdots, N\}, $ |
其中,N表示在该栅格中总点数;然后从排序后点集中搜索连续最高点, 如图 4(b)所示,具体的搜索策略如下:
1) 从最低点(i=1)开始计算相邻点pi和pi+1之间的高度差Hdiff;
2) 当且仅当Hdiff大于一个给定阈值Lth时,点pi被标记为和地面连接部分的最高点,停止搜索当前栅格;如果Hdiff小于给定的阈值Lth,并且点pi+1是当前栅格中的最后一个点,则将点pi+1标记为和地面连接部分的最高点,停止搜索当前栅格;否则i=i+1,重复1)和2).
3) 搜索下一个极坐标栅格直到所有栅格都被搜索完成.取Lth=25 cm,以确保雷达投射到同一目标上的相邻扫描线上的点在栅格中是连续的.
对每一个极坐标栅格PolarGrid (m, n),如果该栅格中的最高点pi与p1之间的高度差小于阈值Hth,则将该栅格标记为地面栅格,并将最高点及其以下的点标记为地面点,在最高点之上的点标记为悬空障碍点;如果该栅格中最高点的高度超过给定的阈值,则将该栅格标记为障碍物栅格,并将该栅格中的所有的点标记为地面障碍点.由于道路边界高度一般低于30 cm,取Hth=30 cm可以适应城市的不同环境.
通过上述步骤可以快速地将大部分的地面点提取出来,但仍有部分地面点存在于障碍栅格中无法提取.在和地面栅格相邻的障碍栅格中仍然存在一些地面点,因此通过联通域标记法标记出边界栅格,然后提取其八邻域中地面栅格中的地面点并计算出地面的均值高度μ和方差σ,然后将边界栅格中所有高度介于[μ-3σ, μ+3σ]的点标记为地面点.
通过这种方式,可以快速地将地面点提取出来,如图 5所示为采用上述方法对道路上比较空旷、有悬挂障碍物以及有较大起伏3种典型场景提取地面的结果,其中,灰色部分表示地面点.从图中可以看出,该方法可以精确地提取出地面点.
![]() |
图 5 3种典型场景下提取的地面点云图 Fig. 5 Extracted ground point cloud in three typical scenarios |
为了从提取的地面点云中分离道路区域和非道路区域,需要根据车辆周围道路的几何结构提取一些道路边界关键特征.由于栅格高程图在边界高度相对低以及边界被遮挡的情况下不能真实反应道路边界的几何结构,并且大量的非地面点已经被消除,可以充分利用基于无向图的边界检测方法提取道路边界点.
在同一条扫描线上,位于道路表面上的点之间的坡度变化比较平缓,而位于道路边界上的点之间的坡度变化比较大,因此同一条扫描线上点pi(xi, yi, zi)与其左右近邻点之间的坡度差可以作为一个有效的特征检测道路边界点.点pi和其近邻点{pi-n, …, pi, …, pi+n}之间的坡度差可以表示为
$ \begin{array}{l} {S_i} = {\rm{arctan}}\left( {\frac{{{z_{i + n}} - {z_{i - n}}}}{{\sqrt {{{\left( {{x_{i + n}} - {x_{i - n}}} \right)}^2} + {{\left( {{y_{i + n}} - {y_{i - n}}} \right)}^2}} }}} \right) - \\ \;\;\;\;\;\;\;\;{\rm{arctan}}\left( {\frac{{{z_i} - {z_{i - n}}}}{{\sqrt {{{\left( {{x_i} - {x_{i - n}}} \right)}^2} + {{\left( {{y_i} - {y_{i - n}}} \right)}^2}} }}} \right). \end{array} $ | (8) |
如果坡度差Si大于给定阈值,即Si>Sthr,则点pi可能为道路边界点.
在室外复杂的环境下,如果仅使用坡度特征,可能会出现过分割.例如当车辆行驶在起伏的道路上时,打在稍微凸起或略微凹进路面上的雷达点会具有较大的坡度值,如果仅根据坡度判断雷达点的类型,这些点将会被错误识别为边界点.为此可使用另外2种特征以提高边界点检测的准确率.
在同一扫描线中,位于道路表面上连续点近似共线,而位于道路边界上的连续点呈现分段分布,因此道路表面上的点在不同尺度下的法向量近似相等而位于道路边界处的点在不同尺度下的法向量相差很大[25],如图 6所示的不同尺度下的边界点法向量,因此同一扫描线上的点在不同尺度下的法向量差可以作为一个非常有效的特征检测道路边界点.
![]() |
图 6 边界点在不同尺度下的表面法向量 Fig. 6 Surface normal vector of boundary points on different scales |
对扫描线中的点p, 借鉴了文献[25]中的方法计算法向量差,首先利用不同半径rl和rs下的近邻点估计该点的法向量n(p, rl)和n(p, rs),并将在不同半径尺度下得出的法向量归一化并计算法向量差,该点的法向量差定义如下:
$ \Delta \mathit{\boldsymbol{n}}\left( {p, {r_{\rm{s}}}, {r_{\rm{l}}}} \right) = \left| {\mathit{\boldsymbol{n}}\left( {p, {r_{\rm{l}}}} \right) - \mathit{\boldsymbol{n}}\left( {p, {r_{\rm{s}}}} \right)} \right|. $ | (9) |
式中:rs, rl∈R,rs<rl,n(p, r)是点p在给定半径估计的表面法向量,如果Δn(p, rs, rl)大于一个给定阈值,即Δn(p, rs, rl)>nth, 则点p可能为道路边界点.
此外,该方法利用在同一扫描线中连续扫描点之间的高度差作为另一个局部特征.对于某条扫描线中的点pi,其连续邻域点的集合可表示为
$ S = \left\{ {{p_{i - n}}, \cdots, {p_i}, \cdots, {p_{i + n}}} \right\}, $ |
然后计算S中最大高度值Hmax和最小高度值Hmin, 如果S中的最大最小高度差在给定范围内,即Hth1<Hmax-Hmin<Hth2,点pi可能为道路边界点,由于道路边界高度一般在10~25 cm,在本实验中,取Hth1=5 cm,Hth2=30 cm.
为了提高道路边界检测的速度,提取的道路边界点首先存储在一个二维的数组内,数组中的行号表示雷达扫描线的索引,数组的列号表示扫描线中点对应的索引.该方法首先从数组的中间向两边标记边界点,即标记过程是从道路向边界方向进行,如果点pi满足以上述3个特征,则将该点标记为道路边界候选点,否则标记为非道路边界点.在平衡检测时间和检测精度的前提下,通过实验结果及分析,在无人车两边分别保留离车最近的5个边界候选点.
植被等障碍物有类似于道路边界的几何特征,因此很容易与道路边界混淆而引入伪边界点,而道路边界点和其他目标点最大的不同在于道路方向上的连续性.因此,采用边界点在连续的道路边界上具有相似的几何特征来消除检测中混淆的伪边界点,主要步骤如下.
1) 边界点聚类分割.采用K最近邻方法对道路边界点聚类分割.K的初始值是根据所采用的雷达扫描线数来确定的,取值要保证每个聚类中的点至少来自于2条扫描线.通过一次K近邻算法得到一次聚类中心.对于得到的聚类中心,根据得到的K个聚类的距离情况,合并距离最近的类,因此聚类中心数减小,当将其用于下次聚类时,相应的聚类数目也减小了,经过几次迭代就可以得到合适数目的聚类数.对于初始聚类中心的选择,采用选择批次距离尽可能远的K个点,为了解决K最近邻方法只能获取球状簇的问题,在聚类中,距离测度采用点的横坐标的值和反射强度值的欧拉距离.在局部区域,道路边界点的分布近似直线,如图 7(a)所示.图 7(b)显示了使用聚类分割后的标记结果.
![]() |
图 7 边界点滤波示意图 Fig. 7 Principle diagram of boundary points filtering |
2) 噪声点移除.为了消除伪边界点,分割段中少于2个点的聚类被去除,如图 7(c)所示.
3) 完善道路边界.噪声移除后,如果相邻的2个分割段近似共线,则这两个相邻的分割段中的点会合并如图 7(d)所示; 长度较小的段将会被舍弃.如图 7(e)所示为最后保留的道路边界点.对保留的边界点采用随机采样一致性算法进行拟合,从而估算出道路边界相对车的位置和方向,然后根据剩余点到估计边界的距离区分左右道路边界点,从而在一定程度上解决了当车辆偏离道路边界时拟合出现震荡的问题.
3D激光雷达以固定的水平角度分辨率Δφ进行旋转扫描,投射到地面上的扫描线距离雷达中心越远,扫描线上相邻两点之间的距离就越大.因此,当道路边界距离车较远时,道路边界的位置就有可能落到相邻扫描点之间,如图 8所示雷达以固定角度分辨率Δφ扫描道路表面,黑点表示道路边界点(xc, yc),白点表示雷达投射到地面上的点,雷达有限的水平角度分辨率造成了道路边界点检测位置的不确定性.在道路平坦的情况下,3D激光雷达的每条扫描线具有固定的扫描距离:
$ \mathit{d} = \sqrt {x_{\rm{c}}^2 + y_{\rm{c}}^2} . $ |
![]() |
图 8 道路边界点的测量模型 Fig. 8 Measurement model of curb points |
其中,yc可看作近似常数.因此,由有限的水平分辨率引起的不确定性反应在道路边界点的横坐标xc的测量模型上.
假设道路边界点的测量值表示为(zx, zy),则边界点的横坐标xc位于(zx, zx+Δd),其中Δd是由有限的角度分辨率Δφ引起的量化误差.由几何关系可知,Δd与Δφ之间的几何关系定义如下:
$ \left. \begin{array}{l} {z_x} + \Delta d = {z_y}{\rm{tan}}\;\left( {\varphi + \Delta \varphi } \right), \\ {\rm{tan}}\;\varphi = {z_y}/{z_x}. \end{array} \right\} $ | (10) |
对(10)进行化简后可得
$ \Delta d = \frac{{\left( {z_x^2 + z_y^2} \right)}}{{{z_y} - {z_x}{\rm{tan}}\;\Delta \varphi }}{\rm{tan}}\;\Delta \varphi . $ | (11) |
假设xc的概率在[zx, zx+Δd]服从均匀分布,则概率密度函数f(x)可以定义为
$ f\left( x \right) = \left\{ \begin{array}{l} \frac{1}{{\Delta d}}, {z_x} < x < {z_x} + \Delta d;\\ 0, \;\;\;其他. \end{array} \right. $ | (12) |
则xc概率分布的均值mean(xc)和方差var (xc)为
$ {\rm{mean}}\left( {{x_{\rm{c}}}} \right) = {z_x} + \frac{{\Delta d}}{2}, \;{\rm{var}}\left( {{\mathit{x}_{\rm{c}}}} \right) = \frac{{\Delta {d^2}}}{{12}}. $ | (13) |
均匀分布的量化误差使用均值为零、方差为var(xc)的高斯概率分布.因此,边界点(zx, zy)的测量模型可表示为
$ \left. \begin{array}{l} {z_x}\left( k \right) + \frac{{\Delta d}}{2} = {\mathit{x}_{\rm{c}}}\left( k \right) + {w_x}\left( k \right), \\ {z_y}\left( k \right) = {y_{\rm{c}}} + {w_y}\left( k \right). \end{array} \right\} $ | (14) |
其中,wx(k)、wy(k)分别表示测量值zx、zy的测量噪声.最后测量模型可表示为
$ \mathit{\boldsymbol{z}}\left( k \right) = \mathit{\boldsymbol{Hx}}\left( k \right) + \mathit{\boldsymbol{w}}\left( k \right). $ | (15) |
其中,z(k)=[zx(k)+Δd/2, zy(k)]T分别表示测量向量,H是2×2的单位矩阵,x(k)=[xc(k), yc(k)]T表示道路边界点的状态向量,w(k)=[wx(k), wy(k)]T表示高斯测量噪声.
2.3 边界拟合与更新为了获得连续和平滑的道路边界,对修正的边界点进行拟合.通过与霍夫变换、增量采样一致性等拟合方法对比,发现二阶多项式相对简单并且在多种场景下表现更稳定,因此选择二阶多项式来拟合检测的左右道路边界点.
相较于漏检,错误的道路边界检测结果对无人车决策会产生更为严重的后果,如果当前雷达检测的道路边界和前一帧中检测的边界相差很大也会造成边界扰动,使得无人车作出错误的决策.因此,在无人车导航的实际应用中,必须对边界检测的结果进行评估.
首先采用修正后的道路边界点占总边界点的比例评估道路边界检测的结果,比例大小在一定程度上反映了检测的道路边界完整程度,比例越大,则说明越多的检测点位于道路边界上,检测的道路边界可能越完整,如果比例过小,说明道路边界检测不够完整,拟合的道路边界不能反映道路边界真实的情况.
虽然比例大小可以说明检测边界点中有多少位于道路边界上,但不能反映检测的边界点在道路边界上的分布情况.检测的边界点分布越分散,越能反映当前道路边界整体的形态,道路边界检测点的分布情况对于道路边界的检测质量至关重要.因此,采用同一帧中检测的起始点和终止点之间的纵坐标差值作为另一个评价标准.此外,由于雷达扫描周期较短,相邻2帧中道路边界的横坐标变化不大,采连续2帧中边界结尾处的横坐标绝对差值作为第3个测度来衡量当前边界检测结果.
当且仅当道路边界中最终检测的有效边界点占检测的总边界点数50%, 并且当前帧和前一帧结尾处的横坐标绝对差值小于30 cm,则接受当前边界拟合结果,并取当前帧和前一帧的拟合参数的均值作为最终结果,以保障连续检测的道路边界变化平顺;否则继续采用原先的道路边界检测结果.
![]() |
表 2 3种道路边界检测算法的平均运行时间和准确率对比 Table 2 Comparison between average period and accuracy of three different curb detection algorithms |
为了评估提出的道路边界检测方法,在各种不同的场景中进行了大量的实验.实验主要可以分为两部分,第一部分是为了验证算法的有效性,第二部分是为了对算法性能进行定量的分析, 实验中3D激光雷达:HDL-32E安装高度为2.01 m, 有效范围为5~50 m, b0=5,和bk=50 m,Sthr=300,nth=0.25[25].
3.1 第一部分实验结果及分析如图 9所示,选择长安大学综合汽车试验场作为测试场地,并从中选择3个典型场景的检测结果进行定性的分析.
![]() |
图 9 实验测试场地以及其中的3种不同的典型测试场景 Fig. 9 Test field in experiment and three different typical testing scenes |
图 10展示的是相对复杂的直道(场景一),如图 10(a)所示,道路边界近似直线,无人车前方有6个圆形锥筒并且后面有1辆过往的车辆,锥筒和车辆的存在遮挡了左边的道路边界.此外,这些目标在雷达中具有和道路边界相似的局部几何特征,因此很容易被误识别为道路边界.如图 10(b)所示,提出的方法检测出的道路边界,图中白色点表示左边界上的点,白色点表示右边界上的点.所提方法正确检测出了道路边界点,并且没有障碍点被误识别为道路边界点.主要原因是采用了一种快速有效的方法消除了非地面点,并基于多种道路边界几何特征仅检测地面区域中的道路边界,因此在有障碍物存在的情况下仍然有很好的鲁棒性.如图 10(c)所示,该方法可很好地拟合线性道路边界.
![]() |
图 10 复杂直道场景下的道路边界检测 Fig. 10 Curb detection under complex straight road scene |
场景二是典型的弯曲道路场景,如图 11(a)所示,道路两边有许多垂柳,有一些垂柳已经伸展到道路的表面,如图 11(a)矩形框中所示.如图 11(b)所示, 提出的方法仍然可以将大部分的道路边界点精确的提取出来.如图 11(c)所示的道路边界点被拟合成两条平滑的道路边界,实验结果表明在复杂弯道场景下该方法依然能获得较好的检测结果.
![]() |
图 11 典型的弯道场景道路边界检测 Fig. 11 Curb detection of typical curved road scene |
场景三也是典型的弯道场景,但是与场景二不同,道路的左边界由低矮的草坪组成,右边是由石块组成,道路左侧边界的结构特征很不明显,如图 12(a)中的矩形框所示,提出的方法依然可以检测出大部分的道路边界点如图 12(b)所示,其中主要原因是该方法在地面点云提取的基础上采用逐线检测道路边界点,这种方式检测精度高,在道路边界相对较低、边界局部几何特征不明显以及道路边界不规则的情况下仍然能获得很好的检测结果.对检测后的结果进行拟合如图 12(c)所示,结果表明,所提出的方法仍然能够很好适应不规则道路的场景.
![]() |
图 12 典型不规则边界弯道场景的道路边界检测 Fig. 12 Curb detection of typical irregularly curved road |
为了定量分析算法的可靠性,第二部分实验仍然选择试验场进行测试.无人车共行驶了约2.1 km,连续采集了2 573帧雷达数据,测试包含了直道、弯曲道路和交叉口等多种场景.
为了评估算法的计算效率,本实验采用一台配有Intel 4核i7的处理器,3.1 GHz的主频和8 G的RAM的车载工控机作为计算平台.算法采用C++并在Linux+ROS环境下实现.算法的运行时间如图 13所示.由于采用了点云映射和无向图相结合的方式,保障了检测精度,同时提高了计算速度,每帧雷达的平均处理时间小于35 ms,完全满足无人车对算法实时性的要求.
![]() |
图 13 提出算法在2 573帧中检测道路边界的运行时间 Fig. 13 Runtime of curb detection with proposed algorithm for 2 573 scans |
为了评估道路边界检测精度,试验中采用了Zhang等[22]使用的评估方法.选取前1 000帧作为测试集,以手工标记的结果作为基准,将提出的方法和文献[7]、[22]的工作进行对比.实验结果如表3所示, 其中A表示该方法提取1帧点云图中的道路边界平均消耗的时间,P表示该方法的平均检测精度.文献[22]中的道路边界检测精度为86.7%, 每帧的处理时间相对较长为41.7 ms,主要原因是该方法仅采用了单扫描线中高度差的方法却没有考虑路上存在障碍物的情况,因此,在相对复杂的环境下该方法会造成很多道路边界点误检.此外,由于扫描线中所有的点都要计算局部特征值,时间消耗比较大.文献[7]中的方法没有使用绝对高度信息而是使用了扫描线间的梯度信息来检测道路边界点.由于梯度能更好地反映边界和非边界之间本质的差异,尤其是当道路边界距离无人车较远的情况下,所以文献[7]中提出的方法精度达到了90.3%, 略高于文献[22]中的检测结果,此外,文献[7]中的边界检测方法采用了极坐标栅格的方式组织点云数据,降低了点云的平均处理时间,每帧处理时间约为27.4 ms. 本文提出的方法不仅考虑了障碍物存在的道路和道路边界被遮挡的情况,同时采用了多种局部特征相结合的方式检测道路边界点,并利用道路边界连续性的特征改善检测的道路边界点,获得了比文献[7]具有更高的检测精度,达到了93.6%.由于在数据处理过程中,采用了点云映射和基于图的方式相结合的方式,平均每帧的处理时间为33.2 ms,比文献[7]中的方法处理时间略微长一些,但比文献[22]中的方法处理时间要短.
3 结语针对道路边界检测中存在的道路边界不规则和易受障碍物遮挡的问题,本文提出了一种新颖的基于3D激光雷达的道路边界检测方法,并在各种道路环境下进行了定性和定量的实验测试.实验结果表明,所提出的方法在道路边界不规则、道路边界被遮挡的场景中仍然能保持较高的检测精度和鲁棒性.此外,该方法已成功用于长安大学“信达号”无人车,并在2016年国家自然基金委举办的无人车城市未来挑战赛和2017年天津市政府举办的世界智能驾驶挑战赛中取得了优异的成绩.
该方法在道路边界连续的情况下具有较好的鲁棒性,但在道路交叉口时,由于道路连续性的全局特征不明显,导致道路边界检测的结果不稳定.下一步的工作将会继续研究道路交叉口处的边界检测问题.
[1] |
LUETTEL T, HIMMELSBACH M, WUENSCHE H J. Autonomous ground vehicles:concepts and a path to the future[J]. Proceedings of the IEEE, 2012, 100(5): 1831-1839. |
[2] |
HILLEL A B, LERNER R, LEVI D, et al. Recent progress in road and lane detection:a survey[J]. Machine Vision and Applications, 2014, 25(3): 727-745. DOI:10.1007/s00138-011-0404-2 |
[3] |
FRITSCH J, KUHNL T, GEIGER A. A new performance measure and evaluation benchmark for road detection algorithms[C]//201316th International IEEE Conference on Intelligent Transportation Systems (ITSC). Hague: IEEE, 2013: 1693-1700. http://ieeexplore.ieee.org/xpls/icp.jsp?arnumber=6728473
|
[4] |
LI Q, CHEN L, LI M, et al. A sensor-fusion drivable-region and lane-detection system for autonomous vehicle navigation in challenging road scenarios[J]. IEEE Transactions on Vehicular Technology, 2014, 63(2): 540-555. DOI:10.1109/TVT.2013.2281199 |
[5] |
QIN B, CHONG Z J, BANDYOPADHYAY T, et al. Curb-intersection feature based monte carlo localization on urban roads[C]//2012 international IEEE conference on Robotics and automation (ICRA). Saint Paul: IEEE, 2012: 2640-2646. http://ieeexplore.ieee.org/xpls/icp.jsp?arnumber=6224913
|
[6] |
LEE H, PARK J, CHUNG W. Localization of outdoor mobile robots using curb features in urban road environments[J]. Mathematical Problems in Engineering, 2014, 2014(4): 1-12. |
[7] |
HATA A Y, WOLF D F. Feature detection for vehicle localization in urban environments using a multilayer LIDAR[J]. IEEE Transactions on Intelligent Transportation Systems, 2016, 17(2): 420-429. DOI:10.1109/TITS.2015.2477817 |
[8] |
SEIBERT A, HÄHNEL M, TEWES A, et al. Camera based detection and classification of soft shoulders, curbs and guardrails[C]//2013 IEEE Intelligent Vehicles Symposium (Ⅳ). Gold Coas: IEEE, 2013: 853-858. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=6629573
|
[9] |
ENZWEILER M, GREINER P, KNÖPPEL C, et al. Towards multi-cue urban curb recognition[C]//2013 IEEE Intelligent Vehicles Symposium (Ⅳ). Gold Coas: IEEE, 2013: 902-907. http://ieeexplore.ieee.org/xpls/icp.jsp?arnumber=6629581
|
[10] |
ZHOU H, KONG H, WEI L, et al. Efficient road detection and tracking for unmanned aerial vehicle[J]. IEEE Transactions on Intelligent Transportation Systems, 2015, 16(1): 297-309. DOI:10.1109/TITS.2014.2331353 |
[11] |
ONIGA F, NEDEVSCHI S. Polynomial curb detection based on dense stereovision for driving assistance[C]//201013th International IEEE Conference on Intelligent Transportation Systems (ITSC). Funchal: IEEE, 2010: 1110-1115. http://www.mendeley.com/research/polynomial-curb-detection-based-dense-stereovision-driving-assistance/
|
[12] |
KELLNER M, HOFMANN U, BOUZOURAA M E, et al. Multi-cue, model-based detectionnd mapping of road curb features using stereo vision[C]//201518th International IEEE Conference on Intelligent Transportation Systems (ITSC). Las Palmas: IEEE, 2015: 1221-1228. http://ieeexplore.ieee.org/xpls/icp.jsp?arnumber=7313293
|
[13] |
SIEGEMUND J, FRANKE U, FÖRSTNER W. A temporal filter approach for detection and reconstruction of curbs and road surfaces based on conditional random fields[C]//2011 IEEE Intelligent Vehicles Symposium (Ⅳ). Baden-Baden: IEEE, 2011: 637-642. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5940447
|
[14] |
WIJESOMA W S, KODAGODA K R S, BALASURIYA A P. Road-boundary detection and tracking using ladar sensing[J]. IEEE Transactions on Robotics and Automation, 2004, 20(3): 456-464. DOI:10.1109/TRA.2004.825269 |
[15] |
LIU Z, WANG J, LIU D. A new curb detection method for unmanned ground vehicles using 2D sequential laser data[J]. Sensors, 2013, 13(1): 1102-1120. |
[16] |
HAN J, KIM D, LEE M, et al. Road boundary detection and tracking for structured and unstructured roads using a 2D lidar sensor[J]. International Journal of Automotive Technology, 2014, 15(4): 611-623. DOI:10.1007/s12239-014-0064-0 |
[17] |
康俊民, 赵祥模, 徐志刚. 基于特征几何关系的无人车轨迹回环检测[J]. 中国公路学报, 2017, 30(1): 121-135. KANG Jun-min, ZHAO Xiang-mo, XU Zhi-gang. Loop closure detection of unmanned vehicle trajectorybased on geometric relationship between features[J]. China Journal of Highway and Transport, 2017, 30(1): 121-135. |
[18] |
康俊民, 赵祥模, 徐志刚. 无人车行驶环境特征分类方法[J]. 交通运输工程学报, 2017, 16(6): 140-148. KANG Jun-min, ZHAO Xiang-mo, XU Zhi-gang. Classification method of running environment features for unmanned vehicle[J]. China Journal of Highway and Transport, 2017, 16(6): 140-148. |
[19] |
ZHAO G, YUAN J. Curb detection and tracking using 3D-LIDAR scanner[C]//201219th IEEE International Conference on Image Processing (ICIP). Orlando: IEEE, 2012: 437-440. http://ieeexplore.ieee.org/document/6466890/
|
[20] |
刘健, 梁华为, 梅涛, 等. 基于道路形态分析的道路边界提取[J]. 机器人, 2016, 38(3): 322-328. LIU Jian, LIANG Hua-wei, MEI Tao, et al. Road curb extraction based on road shape analysis[J]. Robot, 2016, 38(3): 322-328. |
[21] |
HATA A Y, OSORIO F S, WOLF D F. Robust curb detection and vehicle localization in urban environments[C]//2014 IEEE Intelligent Vehicles Symposium Proceedings. Dearborn: IEEE, 2014: 1257-1262. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=6856405
|
[22] |
ZHANG Y, WANG J, WANG X, et al. 3D LIDAR-based intersection recognition and road boundary detection method for unmanned ground vehicle[C]//2015 IEEE 18th International Conference on Intelligent Transportation Systems (ITSC). Las Palmas: IEEE, 2015: 499-504. http://ieeexplore.ieee.org/xpls/icp.jsp?arnumber=7313180
|
[23] |
Velodyne HDL-32E LIDAR. User's Manual and programming guide[EB/OL]. (2007-01-01)[2017-07-04]. http://www.velodynelidar.com/lidar/hdlproducts/hdl32e.aspx.
|
[24] |
RT3000 User's Manual and programming guide[EB/OL]. (2010-01-01)[2017-07-04]. http://www.oxts.com/Download/Products/RT3000/RT3000%brochure.pdf.
|
[25] |
IOANNOU Y, TAATI B, HARRAP R, et al. Difference of normals as a multi-scale operator in unorganized point clouds[C]//2012 Second International Conference on 3D Imaging, Modeling, Processing Visualization and Transmission (3DIMPVT). Zurich: IEEE, 2012: 501-508. http://ieeexplore.ieee.org/abstract/document/6375034/
|