基于激光雷达扫描的路沿检测方法与流程

文档序号:11772185阅读:792来源:国知局
基于激光雷达扫描的路沿检测方法与流程

本发明涉及路面环境检测技术领域,特别是涉及一种基于激光雷达扫描的路沿检测方法。



背景技术:

近年来,自动驾驶技术由于道路安全与运输效率的需求迅速发展。路沿是城市道路的必要组成元素,路沿检测是无人车环境感知系统的重要部分。现有技术主要采用相机,利用图像的边缘检测法获取路沿,这种方法易受天气和光照影响,使用受到限制。



技术实现要素:

基于此,有必要提供一种不受天气和光照影响的路沿检测方法。

一种基于激光雷达扫描的路沿检测方法,用于在道路环境中获取道路的路沿,包括:

以路面为x-y平面、激光雷达在x-y平面的投影点为原点以及垂直于路面向上的方向为z轴方向,建立三维坐标系;

通过激光雷达扫描获取环境的多帧激光数据,用于形成点云数据;所述点云数据包括多个包含三维坐标信息的扫描点;

对每一帧激光数据,对扫描线上的扫描点进行梯度滤波获取路沿候选点;

对符合条件的路沿候选点进行二次曲线拟合,得到路沿检测结果。

在其中一个实施例中,所述对扫描线上的点进行梯度滤波获取路沿候选点的步骤包括:

获取与当前点相邻的前一扫描点的第一高度值、与当前点相邻的后一扫描点的第二高度值;

计算所述第一高度值和第二高度值之间的高度差值;并将所述高度差值除以2作为当前点的梯度;

根据当前点到坐标系原点的距离设定梯度阈值;

若当前点的梯度大于设定的梯度阈值,则当前点为路沿候选点。

在其中一个实施例中,所述激光雷达为多线雷达,所述对扫描线上的扫描点进行梯度滤波获取路沿候选点的步骤中,是对一帧激光数据中的每条扫描线上的点进行梯度滤波。

在其中一个实施例中,选定道路走向为y轴方向,指向路沿的方向为x轴方向,获取符合条件的路沿候选点的步骤包括判断是否同时符合以下三个条件:

路沿候选点的数量大于设定的数量阈值;

y轴方向上的相距最大的两个路沿候选点之间的距离大于设定的长度阈值;

各路沿候选点与x轴的垂直距离的平均值与上一帧的该平均值的差值小于设定的阈值。

在其中一个实施例中,在对每一帧激光数据进行处理之前,还包括:将点云数据中的散乱点去除的步骤。

在其中一个实施例中,所述将点云数据中的散乱点去除的步骤包括:

对扫描线上的所有点进行聚类划分:计算每个扫描点与相邻的前一扫描点的空间距离;若所述空间距离小于设定的阈值,则将当前处理的扫描点和前一扫描点作为同一聚类,否则当前处理的扫描点为不同聚类;

若聚类中的扫描点数量少于设定的数量阈值,则将聚类中的点作为散乱点去除。

在其中一个实施例中,对扫描点设置聚类标记,划分到相同聚类的扫描点具有相同的聚类标记,划分到不同聚类的扫描点具有不同的聚类标记。

在其中一个实施例中,在对每一帧激光数据进行处理之前,还包括:将点云数据进行坐标校正的步骤。

在其中一个实施例中,所述将点云数据进行坐标校正的步骤包括:

将每一帧数据进行栅格化处理;

计算每个栅格中的所有数据点的高度最大值与高度最小值之差和高度平均值;

若所述高度差小于设定的高度差阈值,且高度平均值小于设定的高度均值阈值,则将栅格中的数据点作为地面点;

对得到的地面点进行随机采样一致性处理,拟合得到地面所在平面以及地面的法向量;

将点云数据与地面的法向量相乘得到数据点在z轴方向上的校正值。

在其中一个实施例中,还包括:还包括判断得到的二次曲线是否符合设定条件,若是,则取设定符合条件的二次曲线得到最新的路沿检测结果,否则沿用上一路沿检测结果;所述设定条件包括:

当前帧的二次项系数与上一帧的二次项系数的差值在设定的范围内;

当前帧的各次项系数与上一帧的对应次项系数的差值的绝对值之和小于设定的阈值。

上述路沿检测方法,采用激光雷达进行数据采集,并利用得到的点云数据根据梯度滤波获得路沿候选点,进一步根据符合条件的路沿候选点进行二次曲线拟合得到路沿数据。该方法不受天气和光照的影响,适用面更广。

附图说明

图1为道路上采用激光雷达扫描的示意图;

图2为一实施例的路沿检测方法流程图;

图3为一帧激光数据在x-y平面的投影示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下实施例提供一种基于激光雷达扫描的路沿检测方法,可以用于在道路环境中检测道路的路沿,为辅助驾驶等应用提供参考数据。下面以自动驾驶为例进行介绍。应用上述方法的自动驾驶车辆上配置激光雷达,如图1所示,激光雷达以一定的倾角向地面发射激光并环绕360度扫描,激光反射回来的信号被接收和分析,可以得到环境的点云数据。对于多线激光雷达,可以不同的倾斜角度同时发射多束激光,同时得到多个扫描数据。

如图2所示,一实施例的路沿检测方法包括以下步骤s110~s140。

步骤s110:以路面为x-y平面、激光雷达在x-y平面的投影点为原点以及垂直于路面向上的方向为z轴方向,建立三维坐标系。如图1所示,与路沿大致平行的方向为y方向,一般为车辆的行驶方向;x轴指向路沿。

步骤s120:激光雷达扫描获取环境的多帧激光数据。所述多帧激光数据用于形成点云数据;所述点云数据包括多个包含三维坐标信息的点。激光束环绕360度扫描得到一帧激光数据。以行进中的车辆为例,在道路上扫描得到的点云数据在x-y平面的投影如图3所示,图中,密集的点虚线为点云数据在x-y平面的投影,其上的点均为扫描点;稀疏的短划线虚线为扫描线被遮挡缺失的部分;方块为相邻的其他车辆。扫描线上的点可以是来自路面、路沿、或者可能还来自路过的其他车辆的反射。对于多线雷达,多条扫描线以车辆(激光雷达)为中心的同心圆向外扩散,每条扫描线上的点同样都可以是来自路面、路沿、或者可能还来自路过的其他车辆的反射。一帧激光数据可以同时包含多条扫描线上的点。

步骤s130:对每一帧激光数据,对扫描线上的点进行梯度滤波获取路沿候选点。通常地,可以认为道路的路面与路沿之间存在高度差。点云数据包含三维坐标信息,所以也包含高度信息。梯度滤波即是以扫描点的高度差作为过滤条件,得到可能是路沿点的扫描点,称为路沿候选点。

在一个实施例中,步骤s130可以包括以下步骤s131~s134:

步骤s131:获取与当前点相邻的前一扫描点的第一高度值、与当前点相邻的后一扫描点的第二高度值。在进行激光扫描时,激光束要扫过360度,并且以一定的频率,例如30hz发射激光,每一次发射和接收都能获得一个扫描点。当激光束扫过360度之后,就得到扫描线上的多个扫描点。在对每一帧激光数据进行处理时,是对扫描线上的每个扫描点进行处理,确定其是否可以作为路沿候选点。当激光雷达为多线雷达时,是对一帧激光数据中多条扫描线上的扫描点进行处理。

在对每个扫描点进行处理时,当前处理的扫描点即为当前点。由于每个扫描点都具有三维坐标信息,即具有高度信息。

步骤s132:计算所述第一高度值和第二高度值之间的高度差值;并将所述高度差值除以2作为当前点的梯度。

步骤s133:根据当前点到坐标系原点的距离设定梯度阈值。当前点距坐标系原点过远时,数据的分辨率较低,可以设置较小的梯度阈值;反之可以设置较大的梯度阈值。梯度阈值的具体值可以根据实验确定。

步骤s134:若当前点的梯度大于设定的梯度阈值,则当前点为路沿候选点。

可以理解,计算各扫描点梯度还可以采用其他变形方式,例如获取相邻4个点的高度差等等。

步骤s140:对符合条件的路沿候选点进行二次曲线拟合,得到路沿检测结果。如图3所示,由于扫描线也有可能扫描到近距离的其他车辆,所以要挑选符合条件的路沿候选点来获得路沿。在一个实施例中,采用如下条件来判断路沿候选点是否符合要求。当同时满足以下三个条件时,路沿候选点符合要求:(1)路沿候选点的数量大于设定的数量阈值,该数量阈值可以为20,即一条扫描线上能形成路沿的路沿候选点的数量必须大于20;(2)行进方向上的相距最大的两个点之间的距离大于设定的长度阈值,该长度阈值可以为4米,即路沿候选点的最大y轴坐标和最小y轴坐标之间的差值大于4米,这样可以在较大程度上排除其他车辆的扫描点;(3)路沿候选点与车辆的垂直距离的平均值大于上一帧的该平均值。

获取到符合条件的路沿候选点后,认为这些路沿候选点是路沿的点云数据,可以将其用于还原路沿。本步骤使用路沿候选点进行二次曲线拟合,以拟合的二次曲线作为路沿。对于点云数据中的第i帧激光数据,获得的二次曲线为:

x=pi(0)+pi(1)*y+pi(2)*y2

上述步骤s120~s140是对一帧激光数据进行处理的过程,对一帧激光数据进行处理可以得到一条路沿,该路沿可用于辅助驾驶。可以理解,自动驾驶时,车辆是不断移动的,路沿也会发生变化。因此一般地,需要不断地重复上述步骤s120~s140对每一帧最新的激光数据进行处理。每一帧最新激光数据获得的路沿就是最新的路沿数据,保证路沿数据的实时性。

上述路沿检测方法,采用激光雷达进行数据采集,并利用得到的点云数据根据梯度滤波获得路沿候选点,进一步根据符合条件的路沿候选点进行二次曲线拟合得到路沿数据。该方法不受天气和光照的影响,适用面更广。

进一步地,上述方法还包括对得到二次曲线进行验证的步骤,保证计算结果的合理性。在一个实施例中,判断拟合得到的二次曲线的二次项系数与上一帧的二次项系数的差值是否处于合理区间。即二次项系数差值△pi(2)是否满足:lth<△pi(2)<hth。如果二次项系数差值过小,说明存在一定的随机扰动,如果二次项系数差值过大,说明计算结果有误差,因为一般来说道路的曲率不会太大。如果根据一帧激光数据获得的路沿不合理,则不将其作为最新路沿,而将前一帧激光数据获得路沿作为参考。

在一个实施例中,还判断两帧拟合参数之间各项系数差的绝对值之和是否小于特定阈值,即:

|pi(0)-pi-1(0)|+|pi(1)-pi-1(1)|+|pi(2)-pi-1(2)|<δpth

同样的,如果根据一帧激光数据获得的路沿不合理,则不将其作为最新路沿,而将前一帧激光数据获得路沿作为参考。

进一步地,在步骤s130对每一帧激光数据进行处理之前,还包括:将点云数据中的散乱点去除的步骤。散乱点是指点云数据中比较分散的点,其不足以构成物体的表面点,散乱点的存在会加大数据处理量,并且有可能影响处理结构。因此,在优选的实施例中,可以首先将散乱点去除,提高后续处理的效率和准确度。

在一个实施例中,所述将点云数据中的散乱点去除的步骤包括:

步骤s151:对扫描线上的所有点进行聚类划分:计算每个扫描点与相邻的前一扫描点的空间距离;若所述空间距离小于设定的阈值,则将当前处理的扫描点和前一扫描点作为同一聚类,否则当前处理的扫描点为不同聚类。该设定的阈值可以为0.1米。在处理时,可以为每个扫描点设置聚类标记,属于同一个聚类的扫描点使用相同的聚类标记。属于不同聚类的扫描点使用不同的聚类标记。

步骤s152:若聚类中的扫描点数量少于设定的数量阈值,则将聚类中的点作为散乱点去除。根据聚类标记可以统计出属于同一聚类的扫描点的数量。如果一个聚类中的扫描点太少,则可以认为这些点为散乱点,可以去除。上述的数量阈值可以设定为30或其他合适的值。即当一个聚类中的扫描点的数量少于30时,这个聚类中的扫描点为离散点。

进一步地,在对每一帧激光数据进行处理之前,还包括:将点云数据进行坐标校正的步骤。在一些情况下,激光雷达在安装在车辆上时,会发生安装偏差,导致整个激光雷达会存在倾斜。这样采集出来的数据相对于设定的坐标系实际上也产生了倾斜。因此,在一些实施例中,有必要针对这种情况将点云数据的坐标进行校正。

在一个实施例中,所述将点云数据进行坐标校正的步骤包括:

步骤s161:将每一帧激光数据进行栅格化处理。栅格化处理即将一帧激光数据划分为多个小的方块区域,每个方块区域中包括若干数量的扫描点。栅格的大小可以是20cm×20cm或者其他合适的大小,可以根据处理的精度或运算能力综合考虑。

步骤s162:计算每个栅格中的所有数据点的高度最大值与高度最小值之差和高度平均值。

步骤s163:若所述高度最大值与高度最小值之差小于设定的高度差阈值,且高度平均值小于设定的高度均值阈值,则将栅格中的数据点作为地面点。

步骤s164:对得到的地面点进行随机采样一致性处理,拟合得到地面所在平面以及地面的法向量。

步骤s165:将点云数据与地面的法向量相乘得到数据点的新z值。数据点在x-y平面上的坐标一般不会改变,根据地面所在平面的法向量即可对所有的数据点的z轴坐标进行校正,获得数据点准确的三维坐标。

上述处理可以将采集的点云数据的坐标进行校正,进一步保证处理的准确度。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1