一种基于点云局部凹凸特征的道路边界实时检测方法转让专利

申请号 : CN202010098357.3

文献号 : CN111325138B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王智灵杨浩哲林玲龙余结

申请人 : 中国科学院合肥物质科学研究院

摘要 :

本发明涉及一种基于点云局部凹凸特征的道路边界实时检测方法,是应用于智能车辆上的一种实时道路边界检测算法。本发明将激光雷达点云数据,展开为深度图像的形式;针对水平和垂直方向的点云密度差异,设计了双向不等密度的滤波算子预处理,滤除异常点;设计了点云局部凹凸特征的检测算子,检测水平旋转角度下最近的凹凸特征区域作为潜在点,计算相邻潜在点的垂直差异,将潜在点分成不同类别。使用最小二乘法计算不同道路边界在水平投影面曲线。筛去同一水平角度下较近处由道路内障碍物产生的曲线,得到最终的道路边界。本发明适用于城市道路边界检测;可检多条边界;不受道路中障碍物影响;计算复杂度低,实时好;不受光照环境影响。

权利要求 :

1.一种基于点云局部凹凸特征的道路边界实时检测方法,其特征在于:

包括如下步骤:

步骤1:将原始点云数据预处理,转换为深度展开图像;所述深度展开图像是指将点云深度展开图像中的深度值映射到0~255的像素值,即将点云深度距离表示为深度图像像素值的形式,图像横向排布按点云的水平旋转角度展开,纵向按垂直角度由上向下排布,得到点云的深度展开图像,实际的深度值以米为单位,再使用双向滤波算法,双向滤波模板内,若有与邻域差值大于阈值的极大极小值杂点,除去该杂点,并根据结果补全该点;

步骤2:在预处理后的深度展开图像中,使用局部区域的三维凹凸特征检测算子,该局部凹特征检测算子能够得到中心点周围上下左右四个相邻面的法向量,计算相对平面法向量的夹角,得到有关于中心点在不同方向上的凹特征的度量值,提取出深度展开图像中深度值变化的凹区域,包括潜在的道路边缘、物体轮廓边缘区域;

步骤3:在已完成的凹凸特征边缘提取后的深度展开图像上,按照水平旋转角度的顺序,即列序号方向,从下至上检测最靠近传感器的边缘区域,将这些凹特征边缘作为潜在道路边缘点存储;

步骤4:计算潜在道路边缘之间的所对应的点云的邻域距离,若连续的水平角度的潜在道路边缘的垂直距离小于一定阈值,则将其归为一类,将同一类的潜在道路边缘点投影到XY水平坐标系下,使用最小二乘法拟合二次曲线作为潜在道路边缘曲线;

步骤5:计算不同类的二次曲线的关联程度,若参数空间内相差小于阈值,则将两类合并为一类;计算所有的类别的二次曲线,若从传感器出发,在某一水平角度下,有两条曲线出现,则离传感器较近的曲线可能是道路内障碍物产生,将其剔除;最后留下的曲线便是最终的道路边缘。

2.根据权利要求1所述的一种基于点云局部凹凸特征的道路边界实时检测方法,其特征在于:所述步骤1中进一步包括以步骤:

步骤1.1,将三维激光雷达得到的点云按照旋转角度作为深度展开图存储的列标号,按激光雷达的通道数从上到下作为行标号,每一个行列中存储以下信息:到传感器的距离、点云的x、y、z坐标值,其中距离值单位为米,存储为浮点型;

步骤1.2,由上至下,由左至右遍历深度展开图的所有元素,比较每个元素和周围八个元素之间的距离值,若该元素的距离值是周围元素中的最大值,且距离大于预定阈值或是周围元素中的最小值,且距离小于预定阈值,则将该元素中的距离值重新赋值为周围所有元素的距离值的中间值。

3.根据权利要求1所述的一种基于点云局部凹凸特征的道路边界实时检测方法,其特征在于:所述步骤3中进一步包括以步骤:

步骤3.1,按行序列从左到右列序列由下而上地遍历深度图像,将当前点作为中心点,分别取中心点的八邻域点,按田字分别划分为四个区域,计算每个区域中对角线中心点的中间坐标,作为区域中心,得到四个区域中心,分别位于中心点的右上、右下、左上、左下;

步骤3.2,连接相邻的两个区域中心和中心点,构成四个三角形,产生中心点周围上下左右四个邻域平面,计算四个平面的法向量,若上下和左右两组法向量的夹角在预定阈值内,则该点为符合凹凸特征的潜在点;若找到潜在点,则该列后续的点不再遍历,一个列仅保存一个潜在点。

4.根据权利要求1所述的一种基于点云局部凹凸特征的道路边界实时检测方法,其特征在于:所述步骤4中进一步包括以步骤:

步骤4.1,从深度展开图像的一侧按列序号计算每一个潜在道路边界点与邻近两个潜在点之间的行序号之差,若与某一侧邻近潜在点的行序号相差大于阈值,则将该邻近潜在点作为新的一类道路边界;

步骤4.2,将所有的潜在点分成若干类后,将同一类的所有的潜在点投影到XY水平面上,对该类所有的潜在点进行最小二乘拟合二次函数曲线,并投影在水平面栅格图上。

5.根据权利要求1所述的一种基于点云局部凹凸特征的道路边界实时检测方法,其特征在于:在深度展开图像中,所用的凹凸特征算子需要对展开图最后一列与第一列视为相邻列,得到符合实际的点云360度的展开情况的深度展开图。

6.根据权利要求2所述的一种基于点云局部凹凸特征的道路边界实时检测方法,其特征在于:所述步骤1.1中,首先将一帧点云数据中的每一点云计算其水平旋转角度,水平旋转角度计算公式: 表示第i个点云在水平投影面下与传感器坐标系x轴的夹角,i为点云序号,即该点云在整幅场景下的序号;x,y表示该点云三维坐标的x、y值;x轴水平向右,即车辆前向右侧,y轴方向水平向前即车头前向方向,z轴垂直于水平面。

7.根据权利要求2所述的一种基于点云局部凹凸特征的道路边界实时检测方法,其特征在于:所述步骤1.2中,对于每一个激光通道的所有点云数据均有各自不同的水平旋转角,计算不同垂直角度的激光通道中具有最接近的点云水平旋转角的多个点,即水平旋转角之间的差值小于预定阈值的多个点,将其归为一列中,以最接近y轴负半轴即车尾方向为第一列按顺时针旋转方向即雷达工作旋转方向,按水平旋转角度大小递增的次序作为深度图像的列序号,按激光通道顺序由上到下开始递增排序作为行序号存储深度展开图像;存储的形式为:G(i,j)={d,x,y,z},

i,j代表深度展开图像的行序号与列序号,d为距离值,即深度值,x、y、z为三维坐标值。

说明书 :

一种基于点云局部凹凸特征的道路边界实时检测方法

技术领域

[0001] 本发明涉及自动驾驶车辆环境感知领域,尤其一种在自动驾驶中利用三维激光雷达点云数据的道路边界检测方法。

背景技术

[0002] 对于自动驾驶车辆的感知系统,其最基础的要求是能够快速检测到车辆周围的道路区域。目前道路边界的检测方法主要是通过图像和雷达点云数据进行处理的。使用图像提取道路边界的方法,利用了图像信息的丰富程度和信息的连续性及稠密性,通过检测明显特征的区域得到道路边界信息,但使用图像来检测道路边界会因为不同的光照条件,不同的道路边缘形式,导致检测算法不能确保在不同环境下能够准确地检测到道路边界。使用雷达点云数据来提取道路边界,虽然雷达能够得到实际中障碍物的距离信息,且不易受到光照条件的影响,但点云信息本身具有稀疏性,且容易受到道路上障碍物的遮挡影响。
[0003] 现有的利用三维激光雷达进行道路边界检测的方法主要有:
[0004] 公告号为CN104850834A的发明专利,公开了一种将三维激光雷达采集的点云数据生成二值栅格图进行提取道路边界的方法。此种方法将点云数据生成二值栅格图后再进行距离变换操作,填充狭小空间,使用区域生长法,获得道路路面区域轮廓图,提取道路轮廓拟合得到最终的道路边界图。此种方法通过将三维数据降维,精度会因栅格尺寸的选取不同程度的降低,无法满足高精度的要求,且需要进行区域生长,耗时较多。
[0005] 公告号为CN106842231A的发明专利,公开了一种道路边界检测及跟踪方法,此种方法将雷达点映射到极坐标网格中,根据网格中延伸顶点的高度提取地面点;利用同一扫描线下近邻扫描点在道路边界处径向距离和高度突变的性质以及结合道路延伸方向提取道路边界点,再采用随机采样一致性方法进行滤波,采用最小二乘法对滤波后的道路边界点进行拟合,最后采用卡尔曼滤波器进行跟踪。此方法需要对于随机拟合时将进行多次迭代,会耗费大量的时间,影响道路边界提取的时间,对算法的实时性造成影响。

发明内容

[0006] 为了克服现有方法中的精度较低或计算方法复杂,计算时间长等存在的难点,本发明提供一种采用从三维激光雷达原始数据结构本身出发,利用激光点云数据之间的邻域关系,引入基于深度值邻域关系的凹特征检测算子,提取出点云数据中变化较大的道路边界区域,选取距离车辆中心较近的边界区域,进行道路边界的拟合与判别。
[0007] 本发明所采用的技术方案是:一种基于点云局部凹凸特征的道路边界实时检测方法,对三维激光雷达的原始数据按不同垂直角度的激光通道和水平旋转角度作为行和列保存每一帧的数据,对于特定行和列的数据存储该水平角度和垂直角度下点云的深度值,即到传感器的距离值。按此方法存储的三维点云数据的行列自带邻域关系,在本发明称其为点云深度展开图像,该点云深度展开图像是在雷达点云中是按360度展开得到的深度图像,所以在这里称为点云深度展开图像。在此存储结构上,首先进行预处理,专门针对有序点云的深度值设计了一种双向滤波器,去除杂点干扰点,其次设计局部凹凸特征提取算子提取三维空间中不同区域产生凹凸特征区域的点云。选取每个不同水平旋转角度下距离传感器最近的特征点云,作为道路边界种子点,对这些种子点按水平角度进行连续性判断,对连续的种子点进行曲线拟合作为道路边界备选区域,计算多个道路边界备选区域拟合程度,得到最终的道路边界。
[0008] 本发明的一种基于点云局部凹凸特征的道路边界实时检测方法,具体包括如下步骤:
[0009] 步骤1:将原始点云数据预处理,转换为深度展开图像;所述深度展开图像是指将点云深度展开图像中的深度值映射到0~255的像素值,即将点云深度距离表示为深度图像像素值的形式,图像横向排布按点云的水平旋转角度展开,纵向按垂直角度由上向下排布,得到点云的深度展开图像,实际的深度值以米为单位,再使用双向滤波算法,双向滤波模板内,若有与邻域差值大于阈值的极大极小值杂点,除去该杂点,并根据结果补全该点;
[0010] 步骤2:在预处理后的深度展开图像中,使用局部区域的三维凹凸特征检测算子,该局部凹特征检测算子能够得到中心点周围上下左右四个相邻面的法向量,计算相对平面法向量的夹角,得到有关于中心点在不同方向上的凹特征的度量值,提取出深度展开图像中深度值变化的凹区域,包括潜在的道路边缘、物体轮廓边缘区域;
[0011] 步骤3:在已完成的凹凸特征边缘提取后的深度展开图像上,按照水平旋转角度的顺序,即列序号方向,从下至上检测最靠近传感器的边缘区域,将这些凹特征边缘作为潜在道路边缘点存储;
[0012] 步骤4:计算潜在道路边缘之间的所对应的点云的邻域距离,若连续的水平角度的潜在道路边缘的垂直距离小于一定阈值,则将其归为一类,将同一类的潜在道路边缘点投影到XY水平坐标系下,使用最小二乘法拟合二次曲线作为潜在道路边缘曲线;
[0013] 步骤5:计算不同类的二次曲线的关联程度,若参数空间内相差小于阈值,则将两类合并为一类;计算所有的类别的二次曲线,若从传感器出发,在某一水平角度下,有两条曲线出现,则离传感器较近的曲线可能是道路内障碍物产生,将其剔除;最后留下的曲线便是最终的道路边缘。
[0014] 进一步的,所述步骤1中进一步包括以步骤:
[0015] 步骤1.1,将三维激光雷达得到的点云按照旋转角度作为深度展开图存储的列标号,按激光雷达的通道数从上到下作为行标号,每一个行列中存储以下信息:到传感器的距离、点云的x、y、z坐标值,其中距离值单位为米,存储为浮点型;
[0016] 步骤1.2,由上至下,由左至右遍历深度展开图的所有元素,比较每个元素和周围八个元素之间的距离值,若该元素的距离值是周围元素中的最大值,且距离大于预定阈值或是周围元素中的最小值,且距离小于预定阈值,则将该元素中的距离值重新赋值为周围所有元素的距离值的中间值;
[0017] 进一步的,所述步骤3中进一步包括以步骤:
[0018] 步骤3.1,按行序列从左到右列序列由下而上地遍历深度图像,将当前点作为中心点,分别取中心点的八邻域点,按田字分别划分为四个区域,计算每个区域中对角线中心点的中间坐标,作为区域中心,得到四个区域中心,分别位于中心点的右上、右下、左上、左下。
[0019] 步骤3.2,连接相邻的两个区域中心和中心点,构成四个三角形,产生中心点周围上下左右四个邻域平面,计算四个平面的法向量,若上下和左右两组法向量的夹角在预定阈值内,则该点为符合凹凸特征的潜在点;若找到潜在点,则该列后续的点不再遍历,一个列仅保存一个潜在点。
[0020] 进一步的,所述步骤4中进一步包括以步骤:
[0021] 步骤4.1,从深度展开图像的一侧按列序号计算每一个潜在道路边界点与邻近两个潜在点之间的行序号之差,若与某一侧邻近潜在点的行序号相差大于阈值,则将该邻近潜在点作为新的一类道路边界;
[0022] 步骤4.2,将所有的潜在点分成若干类后,将同一类的所有的潜在点投影到XY水平面上,对该类所有的潜在点进行最小二乘拟合二次函数曲线,并投影在水平面栅格图上。
[0023] 进一步的,在深度展开图像中,所用的凹凸特征算子需要对展开图最后一列与第一列视为相邻列,得到符合实际的点云360度的展开情况的深度展开图。
[0024] 进一步的,所述步骤1.1中,首先将一帧点云数据中的每一点云计算其水平旋转角度,水平旋转角度计算公式: 表示第i个点云在水平投影面下与传感器坐标系x轴的夹角,i为点云序号,即该点云在整幅场景下的序号;x,y表示该点云三维坐标的x、y值;x轴水平向右,即车辆前向右侧,y轴方向水平向前即车头前向方向,z轴垂直于水平面。
[0025] 进一步的,所述步骤1.2中,对于每一个激光通道的所有点云数据均有各自不同的水平旋转角,计算不同垂直角度的激光通道中具有最接近的点云水平旋转角的多个点,即水平旋转角之间的差值小于预定阈值的多个点,将其归为一列中,以最接近y轴负半轴即车尾方向为第一列按顺时针旋转方向即雷达工作旋转方向,按水平旋转角度大小递增的次序作为深度图像的列序号,按激光通道顺序由上到下开始递增排序作为行序号存储深度展开图像;存储的形式为:
[0026] G(i,j)={d,x,y,z},
[0027] i,j代表深度展开图像的行序号与列序号,d为距离值,即深度值,x、y、z为三维坐标值。
[0028] 本发明与现有技术相比,显著优点为:
[0029] (1)直接使用原始数据生成的深度图,无需做过多的投影转化和复杂的处理;
[0030] (2)能够有效消除道路内的障碍物对道路边界检测的影响;
[0031] (3)计算复杂度低,能够达到实时运行,无需专门设计区分地面点算法,也无需使用区域生长等时间较多的算法。

附图说明

[0032] 图1:本发明点云展开原理示意图;
[0033] 图2:本发明凹凸特性四邻近平面示意图;
[0034] 图3:本发明凹凸特性检测法向量示意图;
[0035] 图4:本发明潜在边界筛选示意图;
[0036] 图5:本发明边界筛选结果示意图。

具体实施方式

[0037] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅为本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域的普通技术人员在不付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0038] 根据本发明的一个实施例,提出一种基于点云局部凹凸特征的道路边界实时检测方法,具体包括如下步骤:
[0039] 步骤1,将原始点云数据预处理,转换为深度展开图像;
[0040] 步骤1.1,激光雷达的原始点云数据在同一时刻并不是处于同一垂直方向,首先将一帧点云数据中的每一点云计算其水平旋转角度,水平旋转角度计算公式: 表示第i个点云在水平投影面下与传感器坐标系x轴的夹角,i为点云序号,即该点云在整幅场景下的序号。x,y表示该点云三维坐标的x、y值。x轴水平向右(车辆前向右侧),y轴方向水平向前(车头前向方向),z轴垂直于水平面,参见图1所示。
[0041] 步骤1.2,对于每一个激光通道的所有点云数据均有各自不同的水平旋转角,计算不同垂直角度的激光通道(激光通道不同代表了垂直发射角度不同,即与z轴的夹角不同,比如斜向上多少度)中具有最接近的点云水平旋转角的多个点,即水平旋转角之间的差值小于预定阈值的多个点,将其归为一列中,以最接近y轴负半轴(车尾方向)为第一列按顺时针旋转方向(雷达工作旋转方向),按水平旋转角度大小递增的次序作为深度图像的列序号,按激光通道顺序由上到下开始递增排序作为行序号(实际采集一圈在水平旋转角度下有2000个点,角度间隔不到一度,按次序进行标号第一列为车尾方向采集到的值,最后一列为车尾方向相邻的方向,当重新采集到车尾方向,就开始新的一幅图的第一列数据)存储深度展开图像。存储的形式如下:G(i,j)={d,x,y,z},i,j代表深度展开图像的行序号与列序号,d为距离值,即深度值,x、y、z为三维坐标值。
[0042] 步骤1.3,遍历深度展开图像所有元素,以当前元素为中心点,分别取行方向左右邻域各三个深度值,列方向上下邻域各一个深度值(第一行和最后一行除外,从第二行和倒数第二行开始),计算出八个邻域区域的均值坐标为 其中:
[0043]
[0044] i,j分别是深度图像的横向和纵向序列,k为点云邻域范围,范围为‑3到3,即横向左右相邻各三个点云坐标, 由该点云所处水平角度和垂直角度计算出,若则认为该元素代表的点云是杂点,将其距离值d更新为 并重新计算其三维坐标值,至此完成双向滤波部分功能。
[0045] 步骤2,预处理后的深度展开图像,使用三维局部凹凸特征检测算子进行边缘检测;
[0046] 步骤2.1,在深度展开图像上首先将距离值除以10作为像素值,以距离值生成一副图像。
[0047] 步骤2.2,开始遍历整幅图像,以当前元素为中心点,分别取其标准的八邻域区域,分别计算出中心点周围四个区域的中心点位置(对应于图2中四个实心圆点),计算方法如下:
[0048]
[0049]
[0050]
[0051]
[0052] 上式 为图2中心点(同心圆)周围四个平面的中心坐标(实心圆点),其中中心点坐标为 取相邻两实心圆点和中心点三点的平面(图中1,2,3,4四个区域),计算其法向量(以区域1为例求 法向量,其余区域2、3、4的法向量 类似)如下:
[0053]
[0054]
[0055]
[0056] 其中g1x和cx对应于g1和中心点c的x坐标,其余坐标表述与此方法一致; 和 表示由中心点(同心圆)指向两个平面中心(实行圆点)g1和g2的法向量。
[0057] 对于上述四个法向量分别计算相对的两个平面法向量之间的夹角,如图3中所示角度:
[0058]
[0059] 若th1<θ1orθ2<th2,则认为其符合局部三维凹凸特征,将该点标记为潜在的道路边界点,其中阈值th1和阈值th2分别为30和150。
[0060] 步骤2.3,对于第一列和最后一列,将这两列作为相邻列,更新这两列上的像素值。
[0061] 步骤3:提取潜在道路边界点;
[0062] 步骤3.1,按列序号从小到大,由下至上地搜索完成边缘提取的图,找到第一个边缘点,将其对应的深度展开图像中对应的点云数据存储到潜在道路边界的向量Vp中。
[0063] 步骤4,将潜在道路边界点分类和拟合曲线;
[0064] 步骤4.1,新建一个向量,将第一个潜在点存入,按列序列的顺序,从左至右地计算每一个潜在道路边界点与其两侧潜在点在行序列上的差值,若相邻两个潜在点的行序列的差值小于5,则这两个潜在点属于相同的类,将该邻近点加入该类,若差值超过阈值,认为该边界已结束,该点作为终止点,则新建向量,存储为新的一类边界。直至完成所有的潜在点分类。优选的,所述阈值可以是8~10。
[0065] 步骤4.2,将已经分好类的道路边缘潜在点,按类别投影到水平平面上,使用最小二乘的方法,拟合每一类的潜在点二次函数曲线,并计算每一类潜在道路边缘,计算其长度。
[0066] 步骤4.3,对每一类拟合出的曲线,计算每两类的曲线之间的Frechet弗雷歇距离距离,若小于阈值0.3米时,则将该两条曲线视为同一条曲线,将该两类所有潜在点重新计算合并后的拟合二次函数曲线。
[0067] 步骤5:筛选合适的曲线作为道路边界;
[0068] 步骤5.1,对于已有的潜在道路边界点生成的多条曲线,我们需要进行判断其是否是真正的道路边界,对每一条曲线,若其对应的潜在点所在的弧的长度小于3米,认为其长度过短,不是连续的道路边界,将其剔除(由于上一步已完成拟合,即间断的边界已整合到一条,长度是整条边界,不会是一小段,故对于边界长度过小的,认为不是连续边界)。
[0069] 步骤5.2,对于剩下的曲线,我们从车辆位置,产生多条射线,根据城市交通环境,优选射线间的角度间隔为2~5度,如图4所示,若通过某一曲线的射线,在通过该曲线后还会通过其他曲线(如图4中穿过潜在边界一和潜在边界二的几条射线,穿过潜在边界一的射线,还穿过了潜在边界,即在这个角度下穿过了一条边界,发现外侧还有边界),且两条曲线被相同的射线穿过根数大于3条,两条曲线被穿过的区域最近处距离超过1米,则认为两条曲线有较多的重叠区域,近处曲线是由于路中障碍物产生的,遮挡了远处真实道路边界(图示中虚线所示,但能由其他曲线拟合得到),故将距离车辆位置较近的曲线剔除,根据前面提取潜在边界的方法,是在每个旋转角度下提取最近的,若同一方向上有两条曲线,说明近处的是直接提取了一段潜在边界,而远处是曲线拟合在该角度较远处得到的边界,那么在该角度下直接提取到的潜在点就是路中障碍物所产生的,才导致远处的曲线遮挡无法提取,需靠道路边界其他曲线拟合得到(图示虚线),所以近处的曲线是障碍物,所以剔除;(如图4中的潜在边界二和潜在边界三),最终得到的即为最终曲线,如图5所示。
[0070] 尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,且应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。