本发明属于自动驾驶的模式识别领域,涉及激光雷达点云数据处理及识别方法。

背景技术:

车道线检测在智能车辆辅助安全系统中起着关键的作用,车道偏离警示系统在车道保持辅助系统以及车道换道辅助系统中有着广泛的应用;同时车道线检测是智能车自动导航系统的基础,车辆自动导航的最优行驶路径需要根据已获取的道路环境信息进行规划,车道线检测在具体的车道行驶中是非常重要的。

车道线检测的基本原理是使用传感器获取道路以及周边环境信息,然后经过复杂的分析获取车道线所在的具体位置,最终在车辆自主导航系统和智能车辆辅助安全系统中发挥作用。目前,车道线检测方法有三种:分别是基于雷达的车道线检测、基于视觉的车道线检测和雷达与视觉相结合的车道线检测。目前基于视觉的车道线检测技术已经比较成熟,它是通过相机获取道路信息,通过直接利用道路的视觉特征,这种方式有着很快的处理速度,因此被广泛的应用;但相机本身有个很大的缺陷就是易受外界环境的影响。由于雷达技术的发展使其具有及其不容易受外界环境的影响这一优势,基于雷达的车道线检测成为了研究热点。目前使用在车道线检测上的雷达主要是激光雷达和毫米波雷达,因为激光雷达有着强大的抗外界干扰能力和高分辨率优势,因此被广泛使用。激光雷达分为单线激光雷达、多线激光雷达和三维全向激光雷达。其中因为多线激光雷达探测距离更远、检测精确度更高、扫描范围更广并且返回信息量更大;三维全向激光雷达价格过高而备受青睐。

技术实现要素:

发明目的

本发明使用激光雷达传感器做车道线识别,解决了传统相机在夜晚、雾天等光照条件不好的情况下无法识别车道线的问题。

技术方案

一种基于车载激光雷达的车道线识别方法,其特征在于:步骤如下:

一、读取curb中间的道路点云数据:

使用32线激光雷达传感器,将此传感器竖直的安装在自车的车顶,以获取道路及其周围的环境点云数据;

(1)使用最小二乘算法分别拟合左、右curb的函数关系式yl=alxl+bl和yr=arxr+br,其中yl代表左边curb点云的纵坐标值,xl代表左边curb点云的横坐标值,al为左边curb函数式的系数,bl为左边curb函数式的截距,yr代表右边curb点云的纵坐标值,xr代表右边curb点云的横坐标值,ar为右边curb函数式的系数,br为右边curb函数式的截距;

(2)根据左、右curb的函数关系式yl=alxl+bl和yr=arxr+br使用Visual Studio平台中的C++编程提取curb中间的道路点云数据(x1,y1),(x2,y2)...(xn,yn),其中n代表提取的点云个数,为后续识别车道线做准备;

(3)取由激光雷达的1-22线束获取的点云数据;

二、排序:

首先对路面数据分开处理,以自车坐标为原点,分别将数据根据笛卡尔坐标系的纵坐标0点为基准,存成两类,分别为纵坐标值大于0和纵坐标值小于等于0,路面数据从小到大快速有序进行排列存储;

三、均值滤波:

使用均值滤波算法,对数据进行平滑操作;

四、寻找峰值:

对于通过激光雷达获取的点云数据的强度值,由同一个线束返回的多点云强度值就会出现局部峰值,此局部峰值点即为车道线的强度;

因为实际的数据处理中有噪声的干扰,因此多点云强度值局部会出现很多的峰值点,然而并不是所有的峰值点都是车道线的数据点,根据车道线的强度值要比路面点的强度值大很多这一信息,设置峰值点要比其峰谷点至少大5,才认为是有意义的车道线数据点;

五、车道线高度信息筛选:

车道线是在路面刷了一层涂漆,那么这层涂漆就会高出其周围的路面,根据此信息,我们选取强度峰值周围的点,并在这些点中,找出高度较其他点高的点,这些点就是组成车道线标识的点,这里需要使用均值滤波进行平滑处理;六、多线束联合筛选峰值:

因为车道线是具有线性特征的,那么每个线束提取的峰值如果是车道线标识点,那么其相对应的在其最邻近线束应该具有x轴方向横向距离不超过车道线标识宽度的峰值点;为了剔除噪声点的干扰,这个连续的峰值点还需大于一定数目,将此横向距离阈值设置为0.15m,连续的点数目阈值设置为10,即这个连续的点数目超过10,我们才认为它是组成车道线的峰值点;

由第一线数的峰值点找到第二线束的峰值点,再由第二线束的峰值点找到第三线束的峰值点,以此类推直到搜索到最后一个线束;然后判断找到的峰值点总数是否满足我们设置的阈值,满足则保留,否则丢弃;

然后从第一线数的其余峰值点继续按照上述方法往下找,直到遍历完所有峰值点,已经遍历过的点不再参与遍历操作;

以上多线束联合,将基于自车坐标的y轴上、下部分分开操作;

如此,为了减小计算量和无用信息的干扰,首先通过curb限制,提取了道路信息点,然后根据车道线的强度特征,使用峰值法粗筛选车道线点,最后根据车道线的线性特征,使用多线束联合法筛选掉干扰点,进而将自车前方和后方的车道线识别出来。

上述步骤二-步骤六的数据分析均采用单线束独立分析。

优点及效果

本发明的识别方法通过使用激光雷达获取的点云数据进行车道线识别,很好的克服了传统视觉算法检测的缺点,即使在下雨、大雾等天气不好的情况下也能很好的进行车道线检测。并且激光雷达分辨率高,扫描范围广,通过复杂的数据分析和多帧联合能够快速且精确的检测出车道线。

附图说明

图1、原始点云数据图;

图2、单线束自车上半部分强度趋势图;

图3、均值滤波之后的强度数据趋势;

图4、原数据高度趋势;

图5、均值滤波后数据高度趋势;

图6、原图;

图7、平滑后的数据图;

图8、多线束联合;

图9、识别效果图1;

图10、识别效果图2;

图11、识别效果图3;

图12、耗时统计。

具体实施方式

下面结合附图对本发明做进一步的说明:

基于车载激光雷达的车道线识别方法,步骤如下:

一、读取curb(curb即为马路牙子)中间的道路点云数据:

本实施例中,使用32线激光雷达传感器,将此传感器竖直的安装在自车的车顶,以获取道路及其周围的环境点云数据;

(1)首先为了限制道路分析区域,使用最小二乘算法分别拟合左、右curb的函数关系式yl=alxl+bl和yr=arxr+br,其中yl代表左边curb点云的纵坐标值,xl代表左边curb点云的横坐标值,al为左边curb函数式的系数,bl为左边curb函数式的截距,yr代表右边curb点云的纵坐标值,xr代表右边curb点云的横坐标值,ar为右边curb函数式的系数,br为右边curb函数式的截距;

(2)根据左、右curb的函数关系式yl=alxl+bl和yr=arxr+br使用Visual Studio平台中的C++编程提取curb中间的道路点云数据(x1,y1),(x2,y2)...(xn,yn),其中n代表提取的点云个数,为后续识别车道线做准备;

缩编程序代码:

(3)根据数据统计结果以及雷达线束扫描方式,发现并不是雷达所有线束都能打到地面获取数据,取由激光雷达的1-22线束获取的点云数据;

以下步骤二-步骤六的数据分析均采用单线束独立分析;

二、排序:

为了更好的使用强度信息进行车道线和道路分离,首先对路面数据分开处理,以自车坐标为原点,其坐标系如图1坐标线所示,分别将数据根据笛卡尔坐标系的纵坐标0点为基准,存成两类,分别为纵坐标值大于0和纵坐标值小于等于0,路面数据从小到大快速有序进行排列存储(即如图1虚线箭头所示,从左到右的方向);

三、均值滤波:

对排序好的数据,观察其强度变化趋势如图2所示,从图2我们可以发现数据并不平滑,不利于寻找峰值,于是这里使用本技术领域的均值滤波算法,对数据进行平滑操作,滤波后的数据趋势如图3所示;

四、寻找峰值:

对于通过激光雷达获取的点云数据的强度值,物体材质不同返回的强度数据是不一样的,通常车道线的强度值要大于道路强度值;那么,由同一个线束返回的多点云强度值就会出现局部峰值,此局部峰值点即为车道线的强度,如图3中代表的点(圆圈里的值);

因为实际的数据处理中有噪声的干扰,因此多点云强度值局部会出现很多的峰值点,然而并不是所有的峰值点都是车道线的数据点,根据车道线的强度值要比路面点的强度值大很多这一信息,设置峰值点要比其峰谷点至少大5,才认为是有意义的车道线数据点;

五、车道线高度信息筛选:

车道线是在路面刷了一层涂漆,那么这层涂漆就会高出其周围的路面,根据此信息,我们选取强度峰值周围的点,如图4所示,并在这些点中,找出高度较其他点高的点,如图5所示圆圈里的点,这些点就是组成车道线标识的点,因为在实际道路中车道线会有磨损等一些外力的干扰,其呈现的数据趋势并不是我们理想中很明显的找出有高度特征的趋势,如图6原始数据和图7使用均值滤波处理后的数据对比所示,所以这里需要使用均值滤波进行平滑处理;

六、多线束联合筛选峰值:

因为车道线是具有线性特征的,那么每个线束提取的峰值如果是车道线标识点,那么其相对应的在其最邻近线束应该具有x轴方向横向距离不超过车道线标识宽度的峰值点;为了剔除噪声点的干扰,这个连续的峰值点还需大于一定数目,我们才认为它是构成车道线的峰值点;根据《道路交通标志和标线》国家标准(GB5768-1999)的规定,我国现行的道路交通指示标线宽10-20cm,并且分析现在处理的数据后,我们将此横向距离阈值设置为0.15m,连续的点数目阈值设置为10,即这个连续的点数目超过10,我们才认为它是组成车道线的峰值点;

如图8所示,由第一线数的峰值点1找到第二线束的峰值点2,再由第二线束的峰值点2找到第三线束的峰值点3,以此类推直到搜索到最后一个线束N;然后判断找到的峰值点总数是否满足我们设置的阈值,满足则保留,否则丢弃;

然后从第一线数的11点继续按照上述方法,往下找,直到遍历完所有峰值点,注意,已经遍历过的点不再参与遍历操作;

因为考虑到车道线标识有错开的情况,所以以上多线束联合,将基于自车坐标的y轴上、下部分分开操作;

如此,为了减小计算量和无用信息的干扰,我们首先通过curb限制,提取了道路信息点,然后根据车道线的强度特征,使用峰值法粗筛选车道线点,最后根据车道线的线性特征,使用多线束联合法筛选掉干扰点,进而将自车前方和后方的车道线识别出来。

识别效果如图9、图10和图11所示,图中圆点即为识别出来的车道线的点。

选取高速路上的200帧数据的耗时进行分析,如图12所示,平均耗时为37ms。

matlab点云中值滤波,基于车载激光雷达的车道线识别方法与流程相关推荐

  1. matlab与逆透视变换,基于逆透视变换的车道线检测方法与流程

    本发明属计算机视觉.图形处理技术领域,具体涉及一种通过照度不变及逆透视变换进行车道线快速鲁棒检测的方法. 背景技术: 车道线检测作为自动驾驶技术的第一个环节,能够有效感知车辆周围世界,并获取可行驶区域 ...

  2. 基于linux火焰识别算法,一种基于深度学习模型的火焰识别方法与流程

    本发明属于通信领域,具体涉及一种基于深度学习模型的火焰识别方法. 背景技术: 随着我国工业化与城镇水平的不断提高,现代设施大型公共建筑朝着空间大.进深广功能复杂的多元化方向发展,这对于防烟火朝着空间大 ...

  3. 电容屏物体识别_一种基于触摸屏触摸点的物体识别方法与流程

    本发明涉及触摸屏触摸点物体识别技术领域,具体为一种基于触摸屏触摸点的物体识别方法. 背景技术: 多触点触摸屏支持多个触点同时输入,通过触摸屏的点的特征,进行物体识别是一个成熟的技术,以下简称物体识别为 ...

  4. 基于视觉的车道线识别技术在智能车导航中的应用研究

    密级:公开 摘  要 摘  要 室外移动机器人的研究是机器人研究领域的重要分支,同时也是备受关注的热点领域.面向高速公路等结构化道路的室外移动机器人研究已成为现阶段民用交通运输领域移动机器人研究的主流 ...

  5. 基于OpenCV的实时车道线分割&车道保持系统(源码&教程)

    1.研究背景 汽车主动安全系统能够实现风险的主动预防和规避,其能有力缓解当前我国汽车交通事故频发的困境,故对其的相关研究得到了国家的大力支持. 车道保持辅助系统(LKAS,Lane Keeping A ...

  6. 基于opencv的车道线识别(python)(极易实现)

    简易车道线识别方法 文章目录 简易车道线识别方法 1.先上效果图 1.1原图: 1.2结果图 2.源代码 3.阈值脚本 4.谈谈优缺点 优点: 缺点: 1.先上效果图 1.1原图: 1.2结果图 2. ...

  7. 自动驾驶系统进阶与项目实战(九)基于行锚框和全局信息的深度学习车道线检测方法

    自动驾驶系统进阶与项目实战(九)基于行锚框和全局信息的深度学习车道线检测方法 目前多数基于深度学习的车道线检测方法通常把车道线的识别问题处理为车道线像素分割问题,单纯的像素级语义分割模型的推理的实时性 ...

  8. 自动驾驶入门(十二):基于Opencv的车道线识别

    车道线识别有两种方法: 基于Opencv的传统视觉车道线识别方案 基于深度学习的车道线识别方案 本文将介绍基于Opencv的传统视觉车道线识别方案. 传统的车道线识别解决方案流程图如下: 代码实现如下 ...

  9. matlab中基于十字形窗口的滤波算法,#215;字形滤波窗口在Matlab自适应中值滤波算法中的应用 - 21ic中国电子网...

    由于种种原因,图像在生成.传输.变换等过程中往往会受到各种噪声的污染,从而导致图像质量退化.噪声信号的滤波是图像处理的基本任务之一,主要有线性滤波和非线性滤波两种方法.线性滤波方法一般具有低通特性,而 ...

最新文章

  1. flutter学习(排雷)一
  2. 如何识别一个指针式的时种的时间?
  3. MyBatis(二)MyBatis基本流程源码分析
  4. PowerTip of the Day from powershell.com上周汇总(六)
  5. jmeter 设置环境变量
  6. java clock计时_Java Clock类| systemDefaultZone()方法与示例
  7. (68)SPI工作模式有哪些?分为几种极性模式。
  8. iPhone 12 或10月13日发布;微信支付正计划加码存款市场;Swift正式登陆Win 10 | 极客头条
  9. 关于ST-Link下载STM32程序的使用
  10. pagex,screenx,clientx的差别
  11. C语言中学生成绩管理系统
  12. framework层Service的基础知识和常见问题
  13. Nginx基本配置参数说明与文档
  14. 【Turtle合集】提前祝大家圣诞快乐,我为大家献歌一首,叮叮当,叮叮当,穷的响叮当——快开门,我送礼物来了哟~(圣诞树代码)
  15. 选择重新做程序员 作者:Pisces Lee
  16. 片段音乐歌词生成工具
  17. vue+axios上传文件的几种方式及步骤(以上传图片为例)
  18. [附源码]java毕业设计基于的高校学生考勤管理系统
  19. rgb sw 线主板接口在哪_自带RGB风扇,支持神光同步的九州风神小堡垒120I水冷散热器...
  20. Mac电脑快速切换输入法!自动切换输入法!

热门文章

  1. 金仓数据库KingbaseES安全指南--5.2. 数据完整性保护
  2. aliyun视频点播vod
  3. Centos7安装Torque
  4. python检测屏幕亮点_使用Python和OpenCV检测图像中的多个亮点
  5. mysql高并发insert_高并发insert语句的解决方法
  6. Selenium之如何定位隐藏div弹窗
  7. android字体好看,Android:更好的自定义字体方案
  8. 基于海康威视网络摄像机的Android二次开发
  9. 分别从中序、后续中组成二叉树(likou106)
  10. 百度世界2020大会技术干货硬核来袭,百度大脑6.0跃升AI新型基础设施