APP下载

基于激光雷达的道路和障碍物检测方法∗

2021-05-25

舰船电子工程 2021年4期
关键词:栅格激光雷达障碍物

(南京理工大学计算机科学与工程学院 南京 210094)

1 引言

对道路环境的感知是智能车辆的核心技术之一,道路检测是无人驾驶技术的一个重要研究内容,为智能车提供可靠的可通行区域[1]。可靠鲁棒的道路边界检测为智能车的路径规划提供关键的信息。

随着近年来计算机视觉[2~6]技术的发展,相机被广泛应用于道路边缘检测。相机的分辨率很高,图像可以获取十分丰富的环境信息,并利用颜色、纹理等特征进行区域的生长和分割。不过相机容易受到自然环境的干扰,如光照、天气等。激光雷达是一种主动式传感器,测量距离远、精度高、不受光照和阴影遮挡的影响[7~12],能够在雨雪、雾霾等恶劣环境条件下稳定工作。高分辨率激光雷达对于复杂环境下的环境感知能力十分强大,三维激光雷是智能驾驶中不可或缺的传感器。

栅格映射法[13~14]是常用的道路检测以及障碍物检测方法,将三维点云利用高程差映射到二维的栅格地图中,这大大减小了计算量,然后提取边界种子点并进行曲线拟合的方式拟合出道边,然而对于道路边缘与道路无明显高度差的环境效果不好。文献[15]的地面分割基于每个扇形中提取的直线,此方法可用于平坦场景,在颠簸路面或起伏较大场景效果不佳,且易于受路内障碍物干扰。基于无向图的方法[16]充分利用了存储和计算资源,可对包含噪声的复杂场景下的点云进行分割并可以获得较高的检测精度,然而时间复杂度大,处理数据量较大的点云耗费时长。由于道路边界具有多样性、道路颠簸起伏、道路中存在障碍物以及车辆运动复杂性等情况,因此很难建立固定的模型对道路进行准确、可靠的识别。本文基于64线激光雷达点云的空间邻域多特征进行点云分割,建立相应的栅格地图,并基于栅格地图检测道路边界以及道路区域的障碍物。

2 基于激光线多特征的道路检测

2.1 点云数据预处理

64线激光雷达一帧数据大约有11万个点,数据量巨大,首先通过滤波处理数、去噪以及位姿修正。

1)使用直通滤波器确定点云在x、y、z方向上的范围,较快得到感兴趣区域。横向上保留距离车身左右各20m范围内的点,纵向上保留车后20m、车前60m范围内的点云;

2)由于激光雷达安装的周围车体有可能被扫描到,可将雷达周围2m左右范围的点滤波处理掉以消除干扰;

3)使用统计滤波器去除离群点;

4)利用惯导的位姿信息对点云进行位姿修正。

2.2 点云分割

栅格法将三维点云映射到二维的栅格地图中,大大减小了计算量,不过对于道路边缘及无明显高程差的场景不适用。首先使用最大最小栅格法粗分割:利用栅格内最大最小高度差特征对预处理后的点云进行提取,能够较快得到障碍物栅格以及地面栅格,分离出地面栅格内的点云与障碍物栅格内的点云。

激光雷达安装高度是固定的,且雷达的垂直角分辨率、水平角分辨率也是固定值,因此理想情况下,激光扫描线在路面上的投影是一个个同心圆,不同激光束扫描在地面上的距离是固定的,于是不同扫描线间的距离固定,而且一条激光束上的相邻点云间的距离也是固定的。假设激光雷达安装高度为H,某束激光线的垂直角度为ω,角度分辨率为β,则该束激光线扫描在地面上的距离Le为

该束激光线上相邻点云的间距ΔSe为

根据单束激光扫描线上相邻点的距离、高度差特征对上面地面栅格内的点云进行分割。理想情况下一束激光线上相邻点云的距离是固定的且无高度差,当道路中有高障碍遮挡时,激光点间的距离会离得较远,且高度差也较大;当扫在路牙等障碍物上时,相邻点云的距离及高度差也会发生明显变化。计算相邻点间的高度差Ti,当Ti大于阈值Th时,则取为障碍物候选点;当Ti小于阈值Th时,计算相邻点的距离Si,如果Si大于ΔSe,则取为障碍物点。但是道路边缘高度差不是很明显时检测效果不好,因此引入二维平面单束激光扫描线的曲率特征,一束激光线上相邻三点构成的三角形在俯仰和侧倾的情形下,三角形的变化很小。但是在碰到路牙障碍等,三角形会发生明显变化。假定在XOY 平面坐标分别为A(x1,y1,z1),B(x2,y2,z2),C(x3,y3,z3),根据余弦定理,三个点中间点B的角度θ可以由式(6)计算得出:

当激光束扫描到路面上时,cosθ保持在一个比较稳定的值,当激光束扫描到道路障碍物或者道路边界时,cosθ会发生明显变化,通过计算cosθ的变化便可以获得一系列平滑度发生变化的数据点,当道路边界不是很明显时也能提取出有效的候选点。

因此点云分割的流程为

1)利用栅格内最大最小高度差特征对预处理后的点云S进行粗提取,可分离出较明显的障碍物点Sng及地面点Sg;

2)利用单束激光线上相邻点的距离及高度差特征、曲率特征对地面点Sg进行细分割,分离出其中低矮的障碍物,得到最终的分割结果。

2.3 道路边界检测

根据点云分割结果构建栅格地图,然后利用逐行扫描法对边界进行提取,假设当前车辆行驶方向与道路方向保持一致,沿车头朝前方向逐扫描线进行扫描,车左右分别搜索边界候选点。当道路中出现车辆、行人等障碍物遮挡,逐行扫描会将道路中的障碍物识判别为边界,当道路边界本身存在缺口时会将道路缺口外部识别为边界,造成道路边界识别错误。为解决道路边界遮挡、断开等问题,需使用道路的固有属性:连续性以及宽度不会突变的特性来排除干扰。基本流程如下。

1)基于逐行扫描算法提取道路边界候选点,计算道路的宽度信息,获取道路宽度分布直方图,如图1。道路边界的最大特性是连续性,可以统计道路宽度分布直方图的分布范围获取道路的最大似然宽度,依此作为道路宽度的估计值Wp。

图1 道路宽度分布图

2)道路边界存在障碍物遮挡时,计算出的道路宽度比估计值要小于Wp,道路边界存在缺口时,计算的道路宽度比估计值大,利用两端正常的边界候选点进行过插值补充,得到最终的边界候选点。排除干扰前后如图2。

图2 排除干扰前以及排除干扰后的路沿候选点

3)基于RANSAC算法拟合出左右道路边界线。

3 道路区域障碍物检测

3.1 区域生长法聚类

根据上一章节中得到的障碍物栅格地图以及根据栅格地图得到的道路边界信息,然后对属于道路区域的障碍物进行聚类检测。栅格地图中的每个栅格间相互独立、互不影响,不过根据激光雷达的点云分布情况以及栅格地图的构建,一个障碍物会由多个障碍物栅格组成,且其距离比较近,因此如果某个障碍物栅格的邻域也是障碍物栅格,那么它们很有可能是同一类且共同组成同一个障碍物。基于这样的认识,本文采用图像处理中十分常用的二维连通域标记法,利用区域生长法对障碍物栅格的邻域进行聚类处理,这充分利用了栅格地图,避免了对点云数据的直接处理,大大减少了数据处理量,处理效率高。该方法能够将相同特征的连通区域分割出来,同时保证良好的边缘信息,且步骤简洁。

区域生长法聚类的基本流程如下:

Step1:输入要进行障碍物聚类的道路栅格区域Grids,并初始化要输出的障碍物列表Objects;

Step2:遍历Grids中栅格,跳过空闲状态的栅格,对于占据状态的栅格,将其从Grids列表中删除,将此栅格标记为objecti(i=1,2,3…)并加入到障碍物列表Objects中;

Step3:对Step2中的占据栅格进行8邻域方向的生长操作,如果邻域中栅格为占据状态,则将栅格标记为objecti并从Grids列表删除,然后对此占据状态的栅格继续进行8邻域生长,直到无法继续生长下去;

Step4:重复执行 Step2~Step3,直到 Grids中的所有占据状态的点都被处理;

Step5:若某objecti目标中栅格数量小于阈值,则将其去除,得到最终的障碍物目标列表Objects。

3.2 基于主成分分析法的目标特征提取

障碍物栅格被聚成不同类后,得到组成不同目标对象的栅格集合,由于点云打在障碍物上只能表示障碍物的部分轮廓信息,为了描述障碍物的大小、整体轮廓信息以及中心点特征,一般使用矩形框描述目标的状态特征,用矩形框把每一个聚类好的物体框出来。AABB包围盒是和坐标轴对齐的边界框,比较简单但是紧密性较差,且无法描述目标的朝向;而有向包围盒OBB能够描述目标的位置与大致朝向。考虑到道路环境中障碍物大多为车辆、行人等,因此使用主成分分析法(PCA)获取目标对象的最小外接矩形框,使用OBB包围盒描述对象。

PCA是一种十分常用的数据降维方法,其主要思想是通过线性变换的方法,将一组高维数据投影成互不相关的低维数据,保留原始数据中最关键、最具代表性的数据,以压缩数据量从而加速运算过程。PCA将N维特征投影映射到k维上(其中k

对于经过聚类得到的某个目标栅格集合ob⁃ject,假设有m条数据,栅格的位置使用(x,y)来表示,因而是二维的数据。PCA获得OBB包围盒的过程为

Step1:将原始数据按照列组成两行m列的矩阵X;

Step2:计算栅格中心点的x、y坐标值,中心点坐标通过x、y方向的均值得到;

Step3:将X矩阵中的每一个属性(x,y)进行零均值化,即减去对应的均值;

Step5:计算协方差矩阵的特征值以及对应的特征向量;

Step6:两个特征向量所指向的方向代表该目标的方向,也就是目标最小矩形框的长、宽的方向;

Step7:根据中心点位置确定两个特征向量的位置,分别计算聚类中的点到两个特征向量的最大距离,将距离乘以2就是障碍物目标对象的最小外接矩形框的尺寸。

PCA过程可以得到最小外接矩形的中心点、长度、宽度、最大特征值所对应的特征向量与x轴正半轴间的夹角也就是目标的朝向特征。根据目标对象的高度值,还能得到每个目标聚类的外接长方体。

4 实验结果与分析

为了验证本文方法,通过安装在地面试验平台的Velodyne64线激光雷达采集数据,雷达安装高度为1.8m;雷达在水平方向测量范围为0~360°,水平分辨率为0.09°;垂直方向测量范围为向上+2°到向下-24.8°,垂直角分辨率为0.42°。

如图3所示为点云分割结果,图中蓝色点云为利用最大最小高度差特征得到的障碍物栅格内的点云,即表示高障碍;红色点云为为对属于地面栅格内的点云进行二次分割得到的非地面点云,即表示低矮障碍;绿色区域为得到的地面点云。

图3 不同场景点云分割效果

场景1中道路边界比较明显,道路比较平坦,因此道路区域点云比较光滑,基于最大最小栅格法能够基本分离出车辆,行人等,在障碍物完整保留的基础上,路面被完整分割,没有产生漏分割和过分割现象。场景2中道路左侧的车辆都得到有效分离,车辆右侧为多条铁路轨道,因此初次分割时只检测到近处的部分非地面点云,较低的障碍并没有检测出来,不过经过二次分离后,铁轨处的点云基本都能检测出。

图4为道路边界检测的结果。场景3中在道路左侧有车辆遮挡,但是拟合过程中利用道路的固有属性排除了车辆遮挡的干扰,准确拟合出道路边界;场景4中车辆前方障碍物过多,导致道边拟合受到了干扰,将打在车辆上的点误认为是道路的边界点,在车辆附近拟合出道路边界。

图4 不同场景道边检测结果

图5为在障碍物栅格地图中聚类检测效果,道路前方有车辆、行人以及骑自行车的人,其中行人以及车辆沿着道路向前进,骑自行车的人向左侧拐弯。障碍物栅格地图5(a)中可见分离出合适的道路区域且拟合出准确的道路边界,前方障碍物都得到有效检测。图5(b)中对道路区域的障碍物使用区域生长算法进行聚类,并绘制了黄颜色的有向包围盒,其描述了目标的轮廓特征,通过包围盒可见行人以及车辆的运动方向与本车大致平行,而骑自行车的人向左前方运动的特征也能通过包围盒看出。

图5 栅格图中障碍物聚类检测效果

实验中采集了2000帧的数据,算法运行时间如图6所示,平均运行时间为40.3ms,点云分割准确率达到96.13%,运行时间满足智能驾驶的实时性的需求。

图6 算法运行时间图

5 结语

针对智能驾驶中道边检测以及障碍物检测的问题,本文首先利用栅格法粗分割点云,减少了计算量,然后利用相邻点云的距离、高度、角度差等空间邻域特征对点云进行二次分割,然后建立相应的障碍物栅格地图,并利用道路的连续性特征进行道路边界的拟合,能适用于有少量障碍物遮挡的情景;基于栅格地图利用区域生长法进行障碍物聚类检测,并基于PCA得到目标特征。算法的准确性以及运行效率满足智能驾驶的需求,但是对于遮挡过多的情形,道边检测的准确性还有待提高。

猜你喜欢

栅格激光雷达障碍物
激光雷达实时提取甘蔗垄间导航线
栅格环境下基于开阔视野蚁群的机器人路径规划
法雷奥第二代SCALA?激光雷达
超声速栅格舵/弹身干扰特性数值模拟与试验研究
融合激光雷达与超声波数据的障碍物检测方法
Ouster发布首款全固态数字激光雷达
高低翻越
赶飞机
月亮为什么会有圆缺
反恐防暴机器人运动控制系统设计