车道线检测

传统图像处理方法(2015年以前)

核心思想

车道线的低层次视觉特征,如:颜色、边缘、梯度进行检测。

典型流程

1.图像预处理:灰度化、滤波、逆透视变换(IPM)将图像转换为鸟瞰图。

2.特征提取:使用Canny、Sobel等算子提取边缘。

3.车道线拟合:使用霍夫变换(Hough Transform)或滑动窗口搜索(Sliding Window Search)结合RANSAC等算法拟合直线或曲线(如二次、三次样条)。

优点

原理简单,计算资源要求低。

缺点

严重依赖手工特征,在光照变化、遮挡、复杂路况下鲁棒性差。

代表工作

基于霍夫变换的方法(1972)、ALVANA(2000)等。

霍夫变换:将图像空间中的点映射到参数空间,通过投票机制检测直线。计算量大(特别是传统实现),需要精细的参数调优。概率霍夫变换计算效率更高,但可能遗漏较短的直线

ALVANA:改进的霍夫变换,检测到清晰车道线就二次曲线拟合,未检测到就根据道路特征预测,最后卡尔曼滤波。

基于深度学习的检测方法(2015年至今)

深度学习通过端到端学习高层次特征,成为主流。可进一步细分为:

A. 基于分割的方法

将车道线检测视为逐像素的二值或多类别分类任务。

关键思想:使用编码器-解码器结构(如FCN、U-Net、DeepLab)预测每个像素是否属于车道线。

优点:能提供精细的车道线形状和实例信息(如果做实例分割)。

处理任意形状:不受直线/曲线模型的限制

端到端学习:直接从像素到分类,减少中间步骤误差

提供丰富信息:知道每个像素的属性,不仅仅是线的位置

挑战:后处理(将像素聚类成线实例)较复杂,对小目标和细长目标不友好。

代表工作:

SCNN:首次提出在行和列方向进行切片卷积 ,有效传递空间信息,处理长而连续的结构。

ENet-SAD:使用自注意力蒸馏,提升模型效率与精度。

LaneNet:使用两个分支,分别进行二值分割和实例嵌入(聚类),实现实例级车道线检测。

B. 基于检测的方法

将每条车道线视为一个需要检测的"目标",但形式不同于通用目标检测。

关键思想:

锚点/关键点检测:在图像预定义的网格或行上预测车道线关键点的存在性和位置。

曲线参数回归:直接回归车道线的多项式系数。

优点:输出结构化和参数化的车道线表示,后处理简单。

代表工作:

LaneATT:使用锚点(Anchor)作为车道线提议,并引入注意力机制聚合全局特征,在速度与精度间取得优秀平衡。

CondLaneNet:基于条件卷积和行分类器,逐行生成车道线点,对复杂车道线(如Y型岔口)有很好效果。

PolyLaneNet:直接回归图像中每条车道线的多项式系数,方法极其简洁。

C. 基于Transformer的方法

利用Transformer强大的全局建模能力,将车道线视为一组可学习的"车道查询"。

关键思想:使用DETR-like的架构,让查询(Query)与图像特征交互,最终输出一组车道线参数或点集。

优点:无需预定义锚点或后处理聚类,端到端输出实例级结果,擅长处理长距离依赖和复杂场景。

代表工作:

LSTR:首次将Transformer引入车道线检测,使用查询向量直接回归车道线参数。

Persformer:将Transformer与透视变换(Perspective Transformation)结合,在2D图像和3D鸟瞰图特征间进行交互。

CLRNet:采用交叉层Refine机制和ROI提取,逐步优化车道查询,性能达到SOTA。

2.3 基于3D/多模态的方法(新兴趋势)

不满足于2D检测,旨在直接输出3D空间中的车道线信息,或融合多传感器(如LiDAR、IMU)数据。

动机:为自动驾驶提供更具空间感知能力的输出。

方法:利用单目深度估计、视觉几何约束,或直接使用BEV(鸟瞰图)空间进行特征学习和预测。

代表工作:3D-LaneNet、Gen-LaneNet、以及诸多基于BEV感知框架(如BEVFormer)的车道线检测模块。

车道线问题主要挑战

遮挡与极端天气:车辆、阴影、雨雪导致的车道线不连续或不可见。

策略:利用时序信息(视频检测)、上下文推理、数据增强(模拟遮挡/天气)。

复杂场景:弯道、岔路、汇合路、无清晰车道线。

策略:更强的全局建模能力(如Transformer、大感受野网络)、更灵活的表示(如贝塞尔曲线、多项式)。

光照变化:黄昏、夜间、隧道入口/出口的强烈明暗对比。

策略:使用光照不变特征、数据归一化技术、在大量不同光照数据上训练。

实时性要求:需在车载嵌入式平台(如Jetson, Mobileye EyeQ)上实时运行(> 30 FPS)。

策略:模型轻量化(如知识蒸馏、剪枝、神经架构搜索)、设计高效网络(如LaneATT、Ultra-Fast Lane Detection)。

数据集与评估指标

常用数据集:

TuSimple:早期基准,高速公路场景,以准确率为主要指标。

CULane:大规模复杂城市道路场景,包含9种不同挑战类别(遮挡、夜间等),是当前主流测试集。

LLAMAS:在自动驾驶仿真环境中生成的高精度标注数据集。

OpenLane/ApolloScape:包含3D车道线标注和更丰富的场景。

CurveLanes:包含大量复杂弯道场景。

评估指标:

准确率(Accuracy):针对TuSimple,计算预测点与真值点的匹配比例。

F1分数:针对CULane等,将检测结果与真值视为二值图像,计算精确率(Precision)和召回率(Recall)的调和平均。

每秒帧数(FPS):衡量推理速度。

未来趋势

端到端3D车道线检测:绕过2D到3D的转换,直接在3D空间(尤其是BEV空间)中进行感知和预测,与自动驾驶其他模块(如规划、控制)更紧密结合。

时序/视频车道线检测:充分利用连续帧的时间一致性,提升稳定性和对遮挡的鲁棒性。

弱监督/无监督学习:减少对大量精细标注数据的依赖,利用自监督、半监督或合成数据。

泛化与域适应:提升模型在未见过城市、国家、天气条件下的泛化能力。

多任务联合学习:与可行驶区域分割、目标检测、道路结构理解等任务共享主干网络,提升系统效率与一致性。

大模型与基础模型:探索视觉基础模型(如SAM)在车道线检测上的零样本/少样本能力,或利用大型多模态模型进行场景理解和推理。

关于传统方法

图像预处理

灰度化:降低了数据的复杂度,极大减少了计算,提升了实时性。对于车道线而言,只要与背景车道区分开即可,重点在于明暗亮度差异,无需关注色差。设计良好的灰度化公式(如 Gray = 0.299R + 0.587 G + 0.114*B)会突出人眼敏感的绿色和红色分量,恰好能保持黄、白车道线与沥青/水泥路面的对比度。

滤波:许多边缘检测算法(如Canny)对噪声非常敏感。图像在采集和传输过程中会引入随机噪声(如传感器噪声),在后续的边缘检测中会产生大量伪边缘,严重干扰真正的车道线边缘。高斯滤波是一种线性平滑滤波器,能有效抑制高频噪声。它本质上是让图像信号"更干净",突出真正的结构变化。

逆透视变换:根据相机标定参数(内参和外参)和假设的道路平面,将图像从前视图(驾驶员视角)变换为鸟瞰图(俯视视角)。

关于噪声

  1. 图像采集过程(硬件与物理层面)
    传感器噪声(光子、热噪声):在图像上表现为细密的"椒盐"状或"雪花"状随机斑点。如果不经滤波直接进行Canny等边缘检测,这些斑点会变成无数个微小的、错误的边缘点,彻底淹没真正的车道线边缘。

光子噪声:光本质上是离散的光子流。即使在恒定光照下,传感器单位时间接收的光子数量也存在随机波动。这种噪声是固有且不可避免的,服从泊松分布,在低光照条件下尤为明显。

暗电流噪声:即使在没有光照的情况下,由于热能,传感器的像素点也会产生自由电子,形成电流。这导致图像中出现随机的亮点。温度越高,暗电流噪声越严重。

热噪声:也叫约翰逊-尼奎斯特噪声。由传感器和电路中的电子热运动引起,存在于所有有电阻的元件中。它是一种宽频带的白噪声。

读出噪声:在将传感器每个像素点的电荷转换为电压并读出为数字信号的过程中,放大器和其他电路元件引入的噪声。

固定模式噪声:由于传感器制造工艺的微小差异,每个像素点对光的响应灵敏度不完全相同。这导致在均匀光照下,图像会呈现固定的"明暗花纹"。这不是随机噪声,但会影响图像的一致性。

  1. 环境与传输过程
    光照条件变化:突然的阴影、反光(如水面、前车保险杠)、隧道出入口的明暗急剧变化等,对算法而言是一种严重的"干扰噪声"。

天气与遮挡:雨滴、雪花、雾、泥浆附着在镜头或车身上,会直接导致图像模糊、对比度下降,并引入随机的不规则斑点。

运动模糊:车辆自身高速运动或相机抖动,导致场景在曝光时间内发生位移,使图像边缘变得模糊不清。这对于需要精确边缘的车道线检测是致命干扰。

量化噪声:在模数转换过程中,将连续的电压信号离散化为有限的数字级别(如0-255)时产生的舍入误差。比特位数越低,这种噪声越明显。

  1. 图像处理与压缩过程
    压缩伪影:为了节省存储空间或传输带宽,图像常被压缩(如JPEG格式)。有损压缩会引入块效应、振铃效应和模糊,尤其是在高压缩比下。这些人工痕迹对于算法来说就是噪声。

重采样噪声:在对图像进行缩放、旋转等几何变换时,需要进行插值计算,这个过程可能引入新的不自然像素值。

噪声应对

高斯滤波:主要应对高频随机噪声(如传感器噪声)。它通过加权平均来平滑图像,使孤立的噪声点被周围像素"同化"。它是一种低通滤波器。

中值滤波:特别擅长去除椒盐噪声。它用邻域像素的中值代替中心像素值,能很好地消除孤立的极亮点或极暗点,同时更好地保持边缘的锐利度(相比高斯滤波)。

双边滤波:在平滑噪声的同时,能更好地保持边缘。它不仅考虑空间距离的权重(像高斯滤波),还考虑像素值相似性的权重,避免跨越边缘进行模糊。

针对光照不均:可能需要更高级的预处理,如直方图均衡化、同态滤波(将照度分量和反射分量分开处理)或Retinex算法,而不仅仅是空间域滤波。

结论:噪声的来源是多层次、多方面的,从物理定律到环境干扰再到数据处理本身。滤波的目的是在尽可能保留图像真实结构信息(尤其是边缘) 的前提下,抑制或消除这些非目标、随机的干扰信号,为后续的关键特征提取任务创造一个"干净"的信号环境。选择哪种滤波器,取决于对主要噪声类型和任务需求的判断。在传统的车道线检测流程中,高斯滤波因其计算高效和对高斯白噪声的良好抑制能力,成为了一个通用且可靠的选择。

关于逆透视变换

目的

1.消除透视效应:在前视图中,平行的车道线在图像中会相交于远处的消失点。IPM通过数学变换,将图像"拉平",使得现实世界中平行的车道线在鸟瞰图中也恢复为平行。这极大地简化了车道线建模,例如,可以用两条平行直线或固定宽度的曲线来拟合。

2.获得真实世界的几何关系:在鸟瞰图中,**图像像素与真实世界的地面坐标(通常是X, Y)建立了近似的比例关系。**这使得我们可以直接测量车道的宽度、车辆的横向偏移、车道线的曲率等关键物理量,这些信息对于车辆的控制和决策是必不可少的。

3.提供一个结构化、稳定的检测区域:鸟瞰图通常将兴趣区域(ROI)映射成一个规则矩形,方便后续处理。同时,变换后的图像受车辆颠簸(俯仰角变化)的影响较小,增加了检测的稳定性。

相关推荐
西岸行者4 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意4 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码4 天前
嵌入式学习路线
学习
毛小茛4 天前
计算机系统概论——校验码
学习
babe小鑫4 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms4 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下4 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。4 天前
2026.2.25监控学习
学习
im_AMBER4 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J4 天前
从“Hello World“ 开始 C++
c语言·c++·学习