点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

针对车道线检测的任务,我们需要弄清楚几个问题:

1.车道线的表示形式?

  • 输出类型:掩码/点集/矢量线条

  • 实例化:每个车道线是否形成实例

  • 分类:是否对车道线进行了分类(单白、双黄等)

  • 提前定义的参数:是否只能检测固定数量的车道线

  • 车道标记:是否对车道上的行车标记也做了检测

这会影响到数据的标注和网络的输出形式,而且最终需要的是车道线在世界坐标系下的方程。而神经网络更适合提取图像层面的特征,直接回归方程参数有较多限制。所以,网络推理输出后需要相对复杂的后处理去解决真实坐标的问题。

2.神经网络推理到哪一步?

  • 图像分割方案倾向于像素点的分类,该像素点是否属于车道线标识并对标识类别进行判断;

  • 图像检测方案倾向于抽象出分割边界线,在设定的一系列anchor中判断是否存在车道线,以及回归车道线的位置参数。

逐像素的车道线标识本身 or 表征出抽象的车道分隔边界线。

数据集

  • 需要各场景类别的数据平衡,比如高速公路,辅路,盘山路,夜晚,雨天等数据

  • 检查筛选出质量较好的图片,比如高速公路夜间的数据和雨中驾驶的视频较为模糊

  • 相近的图片抽帧标注,可以每10张抽取1张,比如低速的多张图片相似会造成准确率虚高

  • 增广小类别的图片,比如查看车道线系数直方图,再小幅度旋转使每个系数分布更为合理

  • 缩放并归一化数据,加速收敛

开源车道线数据集包括:

Caltech:一共约1.2k张图片,场景比较简单,且视角较好;图片大小:640x480,如下图

VPGNet:一共20k张图片,包含白天(非雨天、雨天、大雨天)、夜晚的数据,同时包含了各种车道线类型,以及其他不同类型的车道标识(左转箭头、直行箭头、斑马线等等),如下图

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

CULane:一共98k张图片,包含拥挤,黑夜,无线,暗影等八种难以检测的情况,最多标记4条车道线;图片大小:1640x590,如下图

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

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

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

传统图像方法

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

  • 基于霍夫变换的车道线检测;

  • 基于LSD直线的车道线检测

  • 基于俯视图变换的车道线检测;

  • 基于拟合的车道线检测;

  • 基于平行透视灭点的车道线检测;

难点

  • 应用场景受限;霍夫直线检测方法准确但不能做弯道检测,拟合方法可以检测弯道但不稳定,仿射变换可以做多车道检测但在遮挡等情况下干扰严重。

  • 透视变换操作会对相机有一些具体的要求,在变换前需要调正图像,而且摄像机的安装和道路本身的倾斜都会影响变换效果。

深度学习方法

车道线检测的应用场景具有时序信息特性,为了利用时序特征通常会引入RNN模块,加上Encoder-Decoder的形式已经成为CNN特征提取的标配,所以一般的做法是对Encoder提取的Features进行进一步加工,提取连续帧带来的历史信息。或者借助一些额外的相关业务更好的引导车道线的回归。主流深度学习的车道线检测方法:包括二值语义分割产生掩码图部分和掩码图的线拟合部分。

二值语义分割主要采用CNN方法并引入一些方式提高语义分割精度,在 线的拟合阶段可以采用学习到的转换矩阵先将分割结果转换为鸟瞰图视角,然后,采用均匀取点+最小二乘法拟合,拟合方程可选三次方程。

1.《Robust Lane Detection from Continuous Driving Scenes Using Deep Neural Networks》:采用CNN+RNN的方式,在Encoder和Decoder之间插入LSTM模块,对连续帧的输入预测二值分割图。

2.《Unifying Lane-Sensitive Architecture Search and Adaptive Point Blending》:采用CNN的方式,通过多尺度融合和输出的方式提高定位精度,最后采用一种类似于NMS方法,将低层输出中位置精度回归较高的点逐步向高层输出替换,得到最后融合优化的车道线点输出。

3. 《Heatmap-based Vanishing Point boosts Lane Detection》:采用Encoder-Decoder结构,在车道线的预测Head以外,增加了一个Head用于消失点的预测;这种结构将特征提取阶段的输出和车道线预测的输出进行信息融合,再经过卷积层的处理后,输出消失点的预测结果。(类似VPGNet)

4. 《Lane Detection Model Based on Spatio-Temporal Network with Double ConvGRUs》:采用Encoder+RNN+ Decoder的方式,在Encoder和Decoder之间插入GRU模块,同样对连续帧的输入预测一张二值图。

5.《RESA: Recurrent Feature-Shift Aggregator for Lane Detection》:采用Encoder-Decoder的方式,在Encoder和Decoder部分之间,插入RESA模块,增强空间结构信息在全局的传播能力。(类似SCNN)

6. 《Real-Time LaneDtection Networks for Autonomous Driving》:采用Encoder+LSTM的方式,分割出车道线后采用聚类算法将不同的车道线进行区分,然后再通过一个HNet变换到鸟瞰视角去检测车道线。

7. 《Key Points Estimation and Point Instance Segmentation Approach for Lane Detection》:PiNet算法将车道线用点表示转换成点的回归问题,然后使用聚类算法区分不同车道线上的点和去掉一部分多余的点。

8. 《Ultra Fast Structure-aware Deep Lane Detection》:将车道线检测定义为寻找车道线在图像中某些行的位置的集合,即基于行方向上的位置选择、分类。

区别于上述车道线检测和曲线拟合分开两步去做的方式,还有一种端到端的车道线拟合,输入图片,输出车道线曲线模型参数。比如:《End-to-end Lane Detection through Differentiable Least-Squares Fitting》

性能指标

在评判True or False时,主要有两种方式:

  • End Point,通过判断线的端点间的距离及其包围面积是否超过阈值

  • IOU,直接计算IOU的重叠面积

面临挑战

(1)车道线这种细长的形态结构,需要更加强大的高低层次特征融合,来同时获取全局的空间结构关系,和细节处的定位精度。

(2)车道线的形态有很多不确定性,比如被遮挡,磨损,以及道路变化时本身的不连续性。需要网络针对这些情况有较强的推测能力。

(3)车辆的偏离或换道过程会产生自车所在车道的切换,车道线也会发生左/右线的切换。一些提前给车道线赋值固定序号的方法,在换道过程中会产生歧义的情况。

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近3000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

一文详解车道线检测技术分析相关推荐

  1. 详解车道线检测算法之传统图像处理

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 / 导读 / 车道线检测算法分为传统图像处理方法和深度学习方法.本文详细介绍用传统图像处理方法来解决车 ...

  2. 详解车道线检测数据集和模型 VIL-100: A New Dataset and A Baseline Model for Video Instance Lane Detection

    本文介绍一个新的车道线数据集 VIL-100 和检测模型 MMA-Net,论文已收录于 ICCV2021,重点是理解本文提出的 LGMA 模块,用于聚合局部和全局记忆特征. 论文链接:https:// ...

  3. 一文详解回环检测与重定位

    标题:VINS-Mono代码解读-回环检测与重定位 pose graph loop closing 作者:Manii 来源:https://blog.csdn.net/qq_41839222/cate ...

  4. 一文详解知识图谱关键技术与应用 | 公开课笔记

    讲师 | 桂洪冠 来源 | AI科技大本营在线公开课 视频回放地址:https://edu.csdn.net/huiyiCourse/detail/844 本课程从知识图谱的历史由来开展,讲述知识图谱 ...

  5. hfss仿真时间过长怎么解决_一文详解相控阵天线仿真技术

    天线是移动通信系统的重要组成部分,随着移动通信技术的发展,天线形态越来越多样化,并且技术也日趋复杂.进入5G时代,大规模MIMO.波束赋形等成为关键技术,促使天线向着有源化.复杂化的方向演进.天线设计 ...

  6. 一文详解跨链的技术点及难点:从完美跨链谈起

    转载于:https://learnblockchain.cn/article/1553 关于跨链需要知道的第一件事情是,我们永远没有办法把一条链上的资产真正的转移到另一条链上 关于跨链需要知道的第一件 ...

  7. 无人驾驶之高级车道线检测-AdvanceLane_finding_release

    本篇博客整个项目源码:github 引言 前面我们介绍车道线检测的处理方法:车道线检测之lanelines-detection 在文章末尾,我们分析了该算法的鲁棒性,当时我们提出了一些解决方法,比如说 ...

  8. 无人驾驶汽车系统入门(六)——基于传统计算机视觉的车道线检测(1)

    无人驾驶汽车系统入门(六)--基于传统计算机视觉的车道线检测(1) 感知,作为无人驾驶汽车系统中的"眼睛",是目前无人驾驶汽车量产和商用化的最大障碍之一(技术角度), 目前,高等级 ...

  9. 论文解析:基于激光雷达的车道线检测 LLDN-GFC---K-Lane: Lidar Lane Dataset and Benchmark for Urban Roads and Highways

    1.摘要 车道检测功能是检测本车道和相邻车道的准确位置和曲率,为路径规划功能提供必要的输入. 出发点: 随着大量的基于图像的车道线检测数据集出现,基于摄像头的车道线检测网络发展迅速,但这些算法依赖于图 ...

最新文章

  1. Hadoop配置学习
  2. 三丰三坐标编程基本步骤_三丰三坐标CRYSTA APEX S776
  3. 谷歌guava_使用Google Guava进行馆藏创建和不变性
  4. html 三大标签,网站三大标签的正确书写
  5. [转]JAVA自动装箱和拆箱
  6. 最详尽的 JS 原型与原型链终极详解(1)(2)(3)===转载
  7. easyui 提示框组件_jQuery EasyUI 教程-Tooltip(提示框)
  8. 谷歌地球Google Earth打不开的解决办法
  9. python unmatched_Python
  10. 如何修改计算机ip 地址子网掩码,如何查看和修改主机的ip地址和子网掩码
  11. 通过CSS实现 文字渐变色 的两种方式
  12. 第7章 Stata相关性分析
  13. [读书笔记]自控力内容整理
  14. 如何正确计算LINUX内存使用率
  15. Python网络爬虫入门(五)—— 巧用抓包,爬遍SCU玻璃杯事件所有神回复
  16. OPPOEncoFree2配对
  17. Anaconda学习总结
  18. 【IOT】智能楼宇 - HVAC 暖通技术
  19. 计算机主板和硬盘连接吗,我的计算机主板只有一个SATA2接口. 如何连接硬盘和光驱? -...
  20. 数据结构——冒泡排序

热门文章

  1. 微信小程序 开发第三方自定义组件
  2. 假如让你从 0 到 1 实现一个直播弹幕系统
  3. 系统架构师进阶(Believe Youself)
  4. 解决 错误: 在类XXX中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) 否则 JavaFX 应用程序类
  5. CSDN博客给我带来的一些诱惑和选择机会
  6. 技术经理成长复盘-处理线上问题
  7. Day527528529.图灵学院之面试题③ -面经
  8. matlab 扫雷小游戏
  9. 电脑使用技巧 快捷键
  10. 【kaggle】Airbnb新用户的民宿预定结果预测