车道线检测综述及近期新工作——为ADAS、自动驾驶服务。
部分视频效果展示
https://www.bilibili.com/video/BV1E54y1V7G4

https://www.bilibili.com/video/BV1Lb4y1Z7fT

https://www.bilibili.com/video/BV15q4y1E7gU
0 前言
近期刚入门车道线检测任务,做了一点调研和整理,算是有了一点了解。发现目前车道线相关的资料还比较少,所以决定将部分整理的内容分享出来,希望可以给同样的新人一点帮助。(部分内容来自网页搜集,表示感谢,如有侵权,联系删除)

1 问题定义

如上图所示,车道线检测任务就是对当前行驶道路的车道线进行检测,给出自车道及左右两侧至少各一个车道的相关信息,如车道的ID、方向、曲率、类型(虚线、实线、黄线、白线等)、宽度、长度、速度等信息,并进行可视化输出。

2 主要难点

  • 车道线一般为细长形的外观结构,需要强大的高低层次特征融合来同时获取全局的空间结构关系和细节处的定位精度;
  • 车道线的状态呈现具有不确定性,如被遮挡、磨损、道路变化时本身的不连续性、天气影响(雨、雪)等。需要网络针对不同情况具备较强的推理能力;
  • 车辆的偏离或换道过程会产生自车所在车道的切换,车道线也会发生左/右线的切换。一些提前给车道线赋值固定序号的方法,在换道过程中会产生歧义的情况;
  • 车道线检测必须实时或更快速地执行,以节省其他系统的处理能力;
  • 目前大多数方法不提供源码,导致复用性差;

3 公共数据集

  • Caltech:约1.2k张图,场景比较简单,且视角较好;大小:640x480;
  • VPGNet:20k张图,包含白天(非雨天、雨天、大雨天)、夜晚的数据,同时包含了各种车道线类型,以及其他不同类型的车道标识(左转箭头、直行箭头、斑马线等);

  • TuSimple:72k张图,位于高速路,天气晴朗,车道线清晰,特点是车道线以点来标注;大小:1280x720;

  • CULane:98k张图,包含拥挤、黑夜、无线、暗影等8种难以检测的情况,最多标记4条车道线;大小:1640x590;
    -

  • BDD100k:120M张图, 包含美国4个区的白天、黑夜各种天气状况,二维8类别车道线;大小:1280x720;

  • ApolloScape:140k张图,特点是车道线以掩码的形式标注,包含2维或3维28个类别;大小:3384x2710;

  • CurveLanes:华为弯道检测数据集 135k张图, 采用三次样条曲线手动标注所有车道线,包括很多较为复杂的场景,如S路、Y车道,还有夜间和多车道的场景。训练集10万张,验证集2万张,测试集3万张;大小:2650x1440;

  • LLAMAS:19年新提出的,100k张图,标注不是人工标注,而是高精地图生成的,全是高速场景。

目前,我看到的最新的学术论文里,大都是用的 TuSimpleCULane 两个数据集进行性能对比,也有文章使用 LLAMAS

4 研究方法
4.1 传统图像方法
通过边缘检测滤波等方式分割出车道线区域,然后结合霍夫变换、RANSAC等算法进行车道线检测。这类算法需要人工手动去调滤波算子,根据算法所针对的街道场景特点手动调节参数,工作量大且鲁棒性较差,当行车环境出现明显变化时,车道线的检测效果不佳。主流方式如下:
. 基于霍夫变换的车道线检测;
. 基于LSD直线的车道线检测;
. 基于俯视图变换的车道线检测;
. 基于拟合的车道线检测;
. 基于平行透视灭点的车道线检测;

局限性:
. 应用场景受限;霍夫直线检测方法准确但不能做弯道检测,拟合方法可以检测弯道但不稳定,仿射变换可以做多车道检测但在遮挡等情况下干扰严重。
. 透视变换操作会对相机有一些具体的要求,在变换前需要调正图像,而且摄像机的安装和道路本身的倾斜都会影响变换效果。

4.2 基于深度学习的方法
目前基于深度学习的方法由于具有较高的精度,成为当前的主流方式,大抵可以分为以下四类:
1)基于语义分割的方法
SCNN:对于细长的车道线检测是很有效的但是速度慢(7.5FPS),这阻碍了它在现实世界中的适用性。
SAD:提出了一种自注意蒸馏模块,基于信息蒸馏为了解决大主干网络对速度的影响,可以聚合文本信息。 该方法允许使用更轻量级的骨干,在保持实时效率的同时实现高性能。
CurveLanes-NAS:使用神经架构搜索(NAS)来寻找更好的骨干。 虽然取得了最先进的结果,但在计算上非常耗时。(华为诺亚方舟实验室)

2)行分类方法
一种基于输入图像网格划分的车道检测方法。 对于每一行,模型预测最有可能的单元格包含车道标记的一部分。 由于每一行只选择一个单元格,因此对图像中的每个可能的车道重复此过程。
如: E2E-LMD、IntRA-KD、UFAST等,其中UFAST实现了当前最快的检测速度,达到了300FPS(后面详细介绍)。

3)基于anchor的方法
类似YOLOv3或SSD的单阶段模型,如Line-CNN、LaneATT等,其中LaneATT提出了新的基于anchor的车道检测注意机制,表现SOTA,达到了250FPS(后面详细介绍)。

4)其他方法
FastDraw :不需要后处理,需要分割和行分类的方法。虽然速度高。但是精确度不高。
PolyLaneNet:速度快,但是由于现有的数据集不均衡,造成一些偏差。

附:(本节提到的几篇文章出处)

SCNN—Spatial As Deep: Spatial CNN for Traffic Scene Understanding. AAAI, 2018.

SAD—Learning lightweight Lane Detection CNNs by Self Attention Distillation. ICCV, 2019.

CurveLanes-NAS—CurveLane-NAS: Unifying Lane Sensitive Architecture Search and Adaptive Point Blending. ECCV,2020.

E2E-LMD—End-to-End Lane Marker Detection via Row-wise Classification. CVPR Workshop, 2020.

IntRA-KD—Inter-Region Affinity Distillation for Road Marking Segmentation. CVPR, 2020.

UFAST—Ultra Fast Structure aware Deep Lane Detection. ECCV, 2020.

Line-CNN—Line-CNN: End-to-end traffic line detection with line proposal unit. Intelligent Transportation Systems,2019.

LaneATT—Keep your eyes on the lane: Real-time attention-guided lane detection. CVPR, 2021.

FastDraw—FastDraw: Addressing the Long Tail of Lane Detection by Adapting a Sequential Prediction Network.CVPR, 2019.

PolyLaneNet—PolyLaneNet: Lane Estimation via Deep Polynomial Regression. ICPR, 2020.

5 评价指标
两个当前主流数据集 TuSimple 和 CULane 采用不用的评价指标。
首先,在判断 True or False时,主要有两种方式:
1.End Point,通过判断线的端点间的距离及其包围面积是否超过阈值;(TuSimple数据集)
2.IoU,预测和标注都画出来,像图像分割一样计算IoU的重叠面积,小于阈值判为负;(CULane数据集)

指标1—准确度(TuSimple):

Cclip:预测正确的道路点数;
Sclip:所有的道路点数;

指标2—F1-measure(CULane):

TP: IoU>0.5的预测;
FP: IoU<0.5的预测;
TN: 没有这条车道且预测没有该车道;
FN: 有这条车道但被预测为没有该车道;

其它指标:
Runtime(ms)
MACs(multiply-accumulate operations)
FPS
FDR(false discovery rate)
FNR(false negative rate)

6 近期比较新的方法
2021:

  1. Structure Guided Lane Detection IJCAI 2021 美团
  2. CondLaneNet: a Top-to-down Lane Detection Framework Based on Conditional Convolution
  3. Keep your Eyes on the Lane: Real-time Attention-guided Lane Detection CVPR 2021 代码开源
  4. YOLinO: Generic Single Shot Polyline Detection in Real Time
  5. LaneAF: Robust Multi-Lane Detection with Affinity Fields 代码开源
  6. Robust Lane Detection via Expanded Self Attention
  7. End-to-End Deep Learning of Lane Detection and Path Prediction for Real-Time Autonomous Driving
  8. RESA: Recurrent Feature-Shift Aggregator for Lane Detection AAAI 2021 代码开源
  9. End-to-end Lane Shape Prediction with Transformers WACV 2021 代码开源

2020:

  1. 3D-LaneNet+: Anchor Free Lane Detection using a Semi-Local Representation
    Keep your Eyes on the Lane: Attention-guided Lane Detection 代码开源
  2. RONELD: Robust Neural Network Output Enhancement for Active Lane Detection ICPR 2020 代码开源
  3. CurveLane-NAS: Unifying Lane-Sensitive Architecture Search and Adaptive Point Blending ECCV 2020 Datasets
  4. Towards Lightweight Lane Detection by Optimizing Spatial Embedding ECCV 2020 Workshop
  5. Structure-Aware Network for Lane Marker Extraction with Dynamic Vision Sensor
  6. Lane Detection Model Based on Spatio-Temporal Network with Double ConvGRUs
  7. Heatmap-based Vanishing Point boosts Lane Detection
  8. Synthetic-to-Real Domain Adaptation for Lane Detection
  9. E2E-LMD: End-to-End Lane Marker Detection via Row-wise Classification
  10. SUPER: A Novel Lane Detection System
  11. Ultra Fast Structure-aware Deep Lane Detection ECCV 2020 代码开源
  12. PolyLaneNet: Lane Estimation via Deep Polynomial Regression 代码开源
  13. Inter-Region Affinity Distillation for Road Marking Segmentation CVPR 2020 代码开源
  14. Gen-LaneNet: A Generalized and Scalable Approach for 3D Lane Detection ECCV 2020 代码开源
  15. Detecting Lane and Road Markings at A Distance with Perspective Transformer Layers
  16. Semi-Local 3D Lane Detection and Uncertainty Estimation
  17. FusionLane: Multi-Sensor Fusion for Lane Marking Semantic Segmentation Using Deep Neural Networks 代码开源
  18. PINet:Key Points Estimation and Point Instance Segmentation Approach for Lane Detection 代码开源
  19. Better-CycleGAN + ERFNet: Lane Detection in Low-light Conditions Using an Efficient Data Enhancement : Light Conditions Style Transfer submitted to IV 2020
  20. Multi-lane Detection Using Instance Segmentation and Attentive Voting ICCAS 2019

7 部分文章原理
留待后期陆续更新。。。。,感兴趣的朋友可以关注一下。

车道线检测综述及近期新工作相关推荐

  1. 车道线检测综述及新工作汇总

    编辑丨3D视觉工坊 车道线检测综述及近期新工作--为ADAS.自动驾驶服务. 部分视频效果展示: https://www.bilibili.com/video/BV1E54y1V7G4 https:/ ...

  2. 【论文解读】A review of recent advances in lane detection and departure warning system(车道线检测综述)

    Pattern Recognition 2017 原文链接:https://www.sciencedirect.com/science/article/abs/pii/S003132031730326 ...

  3. 车道线检测新工作VIL-100: A New Dataset and A Baseline Model for Video Instance Lane Detection ICCV2021

    之前写过一篇车道线检测的综述,得到了一些朋友的认可,也因此结识了几个做车道线检测任务的朋友. 之前的车道线检测综述可以点击阅读: 车道线检测综述及近期新工作 https://blog.csdn.net ...

  4. 车道线检测2022新工作整理,2D、3D都有

    车道线检测是自动驾驶中一项基础而重要的任务,学术和工业界一直投入了大量的工作.小汤也一直对车道线检测任务感兴趣,并在公司开发过相关功能.也分享过一些相关的文章: 相关链接(点击进入): 车道线检测综述 ...

  5. CVPR2022车道线检测Efficient Lane Detection via Curve Modeling

    分享前段时间看的一篇车道线检测方向的新工作,也是中了最近公开结果的2022CVPR,是上海交大.华东师大.香港城市大学和商汤科技合作完成的,代码已经开源.关于车道线检测任务,我之前也分享过几篇文章: ...

  6. VIL-100: 一个新的车道线检测数据集和基线模型(ICCV2021)

    作者丨StrongerTang@知乎 来源丨https://zhuanlan.zhihu.com/p/411156533 编辑丨3D视觉工坊 之前写过一篇车道线检测的综述,得到了一些朋友的认可,也因此 ...

  7. 2D车道线检测、车位检测、BEV感知工作总结

    作者 | MrTian  编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/601731464 点击下方卡片,关注"自动驾驶之心"公众号 ADA ...

  8. 实战教程 | 车道线检测项目实战,霍夫变换 新方法 Spatial CNN

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 此文按照这样的逻辑进行撰写.分享机器学习.计算机视觉的基础知识,接着我们以一个实际的项目,带领大家自己 ...

  9. 【深度学习】实战教程 | 车道线检测项目实战,霍夫变换 新方法 Spatial CNN

    此文按照这样的逻辑进行撰写.分享机器学习.计算机视觉的基础知识,接着我们以一个实际的项目,带领大家自己动手实践.最后,分享更多学习资料.进阶项目实战,这部分属于我CSDN上的专栏,最后会按照顺序给出相 ...

最新文章

  1. Lombok经常用,却不知道它的原理是什么
  2. java pdf 多页转换为png格式的图片
  3. 干货丨机器学习和深度学习概念入门
  4. 能直接复制图片中文字,功能远超普通OCR软件,MIT学生开发了一款强大Chrome插件...
  5. NeurIPS审稿引发吐槽大会,落选者把荒唐意见怼了个遍:“我谢谢你们了”
  6. php usort strc,php中usort自定义排序如何使用
  7. 【深度学习】60题PyTorch简易入门指南,做技术的弄潮儿
  8. Ubuntu下载gitea
  9. 小米android停止,小米由于错误而停止将Android 10推广到MiA3
  10. 毕业不到一年的前端开发同学的焦虑
  11. Linux下服务器搭建(5)——CentOS下Redis的安装
  12. 小米开源语音模型 Kaldi-ONNX 转换工具,助力移动端部署!
  13. django迁移数据库错误
  14. .bat 开机自动启动
  15. PyQt5中的下拉框控件(QComboBox)文本居中
  16. 勾股定理计算机语言,勾股定理公式计算器
  17. mysql定义取值范围_mysql的decimal类型取值范围
  18. Charles 访问 HTTPS 链接不是私密连接 (完美解决)
  19. 删除Karabiner-Elements 和 Karabiner-EventViewer提示项目被锁定
  20. ICC2里面多进程任务

热门文章

  1. get请求和post请求乱码问题
  2. oracle级联更新与级联删除
  3. js拼的onclick调用方法需要注意的地方 之二
  4. 数据库写入中文出现乱码的处理方式
  5. Ueditor使用以及遇到的问题
  6. Android之打开闪光灯关键代码
  7. 《Java基础学习笔记》JAVA面向对象之封装
  8. python 列表函数
  9. svn 使用TortoiseSVN server搭建本地SVN服务器
  10. 前端开发人员需知——浏览器详解