Skip to content

ming-bot/17th-BaiDu-Wise-Lane-Line-Detection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

17th-BaiDu-Wise-Lane-Line-Detection

第17界全国大学生智能车竞赛百度智慧国一车道线检测算法

1.文档说明

  • front_image文件夹中存放的是小车行驶一圈所拍摄的照片,用于之后循迹算法的离线学习。
  • src文件夹中是最终给官方提交的项目报告,综述了一些系统设计思路,但是因为时间原因没有讲得很清楚。
  • test_cruise.py文件是传统循迹算法的代码部分。
  • 5.1为之前版本(2022.5.1)可以参考里面的说明文档。

大体思路:正如最终项目报告所述,本次车道线循迹从传统方法出发,在大部分情况下可以对车道线进行模式识别,但是其缺陷也很明显:帧数明显不够,处理时间较长(10Hz)。之后我们利用传统方法的输入输出作为数据集,训练出的模型很好地解决了这个问题,并且结合了传统方法的优点,对齐了后续的双层PID,是一次比较好的尝试。

2. 传统部分算法

2.1 图像预处理部分

图像预处理部分目的是将图像进行二值化,为后续识别车道线提供便利。这里提供几个思路:

  1. 色彩颜色空间分割,容易受到光照等影响,并且容易对和车道线颜色接近的(如地标)不太能分辨出。
  2. 最大连通域分割,提取最大连通域,再进行边缘检测。

2.2 滑动窗口梯度寻线法

将图像纵向分为不同高度的部分,横向分为两个部分(为区分左右车道线)。首先进行横向频域直方图检测,认为左右分别最多的x坐标为起始车道线位置。接下来用窗口在每个纵向空间中框出频数均值,作为这区域y方向的车道线框框。

1

**梯度部分:**主要考虑为后续控制的转角服务,同时也基于车道线的方向应该为连续变化的,具体详见代码中所述思想。主要即通过求解框框上下x之差来求解此车道线之后的生长方向。

这为十字路口这种含直角的车道线提供了一个解决办法:车道线按照既定的方向生长,而不会跟着原图车道线变化,这样子就实现了十字路口补线的功能。

**去重部分:**如上图,视野中不存在左车道线,但其在图像上端将右车道线识别为左车道线,为解决这部分问题,通过车道线前置方框状态的判断,进行左右车道线去重。

**置信度检测:**去除一些置信度低的车道线,只相信大于或者等于3个方向连续,位置连续的车道线提供的信息。

**拟合中线:**这部分就是利用左右车道线x坐标拟合出中线位置。利用左右车道线梯度方向拟合中线之后的大致变化方向。作为输入输进后续的控制部分。

  • 为什么不用曲线拟合?实际赛道车道线存在多种不规则的形状,无法固定出阶次,有些甚至存在多映射的问题,所以最终采用滑动窗口法。

3. 控制部分

接上部分,输入为:车道线坐标位置和视野终点的坐标差$\Delta x$,车道线变化方向$\theta$,进行双层PID调节,保证车辆保持在车道正中,并且方向对齐道路前进方向。

4. 深度学习模型搭建

详见src文件中的文档

5. 致谢

2022清华智能车队队长李尚怡

队员:武晓宙,徐超,曹展翔

其他队友:吴宗桓和车队全体成员

About

第17届全国大学生智能车竞赛百度智慧国一车道线检测算法

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages