--关注、星标、回复“26262”--
↓↓免费领取:ISO 26262↓↓
光照变化:日照强度的变化、阴影、反光等都可能导致车道线难以检测。例如,在太阳直射或低日照条件下,车道线的可见性会大大降低。
道路材料和颜色的多样性:不同的道路可能使用不同的材料或颜色来标记车道线,这增加了检测的复杂性。
遮挡问题:其他车辆、行人或其他物体可能会遮挡车道线,特别是在交通繁忙的路段。
道路磨损和老化:随着时间的推移,**车道线可能会因磨损、污渍或其他因素而变得模糊或不清晰。 **
复杂的道路几何形状:例如,弯道、交叉口和分叉路口可能导致车道线形状的快速变化。
道路条件变化:雨、雪或冰可能会改变车道线的外观或完全遮盖车道线。
近似并行的非车道线:如路边的缝隙、道路维修标记或其他临时标记可能被误识别为车道线。
视角和相机校准:摄像机的位置、角度或校准可能会影响到车道线的检测。
实时性要求:在自动驾驶或驾驶辅助系统中,车道线检测需要实时进行,这对算法的效率提出了挑战。
多车道和交叉车道的处理:在多车道道路或交叉口,车道线的数量、方向和模式变得更加复杂。
与其他道路标记的区分:需要将车道线与其他道路标记(如行人横道、停车区域等)区分开。
TuSimple:一共72k张图片,位于高速路,天气晴朗,车道线清晰,特点是车道线以点来标注;图片大小:1280x720;
CULane:一共98k张图片,包含拥挤,黑夜,无线,暗影等八种难以检测的情况,最多标记4条车道线;图片大小:1640x590;
Caltech:一共约1.2k张图片,场景比较简单,且视角较好;图片大小:640x480;
VPGNet:一共20k张图片,包含白天(非雨天、雨天、大雨天)、夜晚的数据,同时包含了各种车道线类型,以及其他不同类型的车道标识(左转箭头、直行箭头、斑马线等等);
BDD100k:120M张图片, 包含美国4个区的白天、黑夜各种天气状况,二维8类别车道线;图片大小:1280x720;
ApolloScape:140k张图片,特点是车道线以掩码的形式标注,包含2维或3维28个类别;图片大小:3384x2710;
CurveLanes:华为弯道检测数据集 135k张图片,采用三次样条曲线手动标注所有车道线,包括很多较为复杂的场景,如S路、Y车道,还有夜间和多车道的场景。分为训练集10万张,验证集2万张,测试集3万张;图片大小:2650x144;
OpenLane:OpenLane包含20万帧、超过88万条实例级车道、14个车道类别(单白色虚线、双黄色实体、左/右路边等),以及场景标签和路线邻近目标(CIPO)注释,以鼓励开发车道检测和更多与工业相关的自动驾驶方法。
车道线检测方法可以分为传统图像处理方法和现代深度学习方法。传统方法主要基于图像处理技术来识别车道线,而深度学习方法利用神经网络来实现。
语义分割方法:
这种方法将图像中的每一个像素分配给一个特定的类别。对于车道线检测,像素可能被分为“车道线”或“非车道线”。
全卷积网络(FCN):FCN是一个早期的用于语义分割的深度学习模型。它利用卷积层代替了传统的全连接层,使得网络能够接收任意尺寸的输入图像并输出相同尺寸的分割图像。
实例分割方法:
与语义分割不同,实例分割不仅区分每个像素的类别,还区分每个物体实例。这对于车道线检测特别有用,因为车道线通常需要被单独识别,尤其是在多车道的情境下。
Mask R-CNN:它是基于Faster R-CNN的一个扩展,除了输出物体的边界框外,还输出一个对象掩码来区分各个实例。
ENet与SCNN:
这两种网络特别为道路场景和车道线检测设计。它们是轻量级且高效的网络,特别适合嵌入式系统和实时应用。
ENet:这是一个实时语义分割网络,旨在实现高效的前向传播。
SCNN:空间卷积神经网络利用了车道线在水平和垂直方向上的空间关系,它在传统的卷积基础上增加了空间信息,从而增强了车道线检测的准确性。
Post-processing:
在分割完成后,可能还需要后处理步骤,例如利用滤波器、形态学操作、或拟合技术(如多项式拟合)来提炼和完善车道线的结果。
总体而言,基于分割的车道线检测方法通常能够提供更高的准确性和更好的鲁棒性。但它们通常需要更多的计算资源,尤其是当使用深度学习模型时。分割模型大,处理速度慢。在严重遮挡情况下表现差,没有充分利用车道线的先验知识。
使用经典的物体检测算法: 这些算法被修改和调整以适应车道线的特点。
Faster R-CNN: 该网络能够同时进行目标分类和位置回归。虽然它通常用于检测物体,但可以通过训练特定的数据集来定位车道线。
YOLO (You Only Look Once): YOLO 是一个实时物体检测系统。对于车道线检测,可以通过调整YOLO来检测和分类车道线,尤其是当车道线在特定的场景或形状中时。
SSD (Single Shot MultiBox Detector): 类似于YOLO,SSD也可以被调整用于车道线检测任务。
锚点 (Anchors) 的调整: 对于车道线检测,传统的方形或矩形锚点可能不是最佳选择,因为车道线是细长的。为此,需要调整或自定义锚点的形状以更好地匹配车道线的形态。
后处理: 由于车道线的连续性,经常需要后处理步骤来进一步完善检测结果,如使用形态学操作、平滑滤波器或线性拟合来优化检测到的车道线。
融合其他传感器数据: 在某些复杂的驾驶环境下,基于检测的方法可能会受益于与其他传感器(如激光雷达)的数据融合,以提高检测的准确性。
用于场景中的其他目标检测任务,可以同时检测车辆、行人和车道线。车道线的细长特点可能使得基于检测的方法不如基于分割的方法准确。另外,为了捕获复杂的车道线模式,需要更大量的、具有各种场景的数据。
基于关键点的车道线检测方法的核心思想是检测车道线上的特定关键点,并使用这些关键点来估计和绘制整条车道线。以下是基于关键点的车道线检测的主要方法和概念:
关键点检测:这一阶段的目的是在车道线上定位特定的关键点。可以使用传统的图像处理技术或现代的深度学习方法(如OpenPose、HRNet等)来检测这些关键点。
曲线拟合:一旦检测到关键点,可以使用多项式拟合、样条拟合或其他曲线拟合方法来估计整条车道线的形状。这是因为,理论上,只需要车道线上的三个点就可以估计其形状,但在实际应用中,使用更多的点可以提高准确性。
迭代优化:为了进一步提高车道线检测的准确性,可以采用迭代方法,如RANSAC,以剔除异常的关键点并优化曲线拟合的结果。
时间连续性:在视频流中进行车道线检测时,可以利用前一帧的结果来预测当前帧的关键点位置,从而提高检测的速度和准确性。
总的来说,基于关键点的车道线检测方法提供了一个在复杂场景中快速准确检测车道线的有效方法。然而,它也需要与其他方法结合,以处理车道线的遮挡、断裂和高密度问题。
5.2.4 基于实例分割的方法
核心思想:
实例分割方法的目的是为图像中的每个物体实例分配一个唯一的标签,这与语义分割不同,后者只为每个像素分配一个类别标签。
在车道线检测的情境中,这意味着每条车道线会被标记为一个独特的实例,与其他车道线区分开来。
主要模型:Mask R-CNN:
Mask R-CNN 是一个流行的实例分割模型,它基于 Faster R-CNN 的架构,并增加了一个分支来预测对象的分割掩码。
在车道线检测的场景中,Mask R-CNN 可以被训练来识别并分割每条车道线。
训练与预测:
需要一个带有分割掩码的数据集,其中每条车道线都被标记为一个独立的实例。
在预测阶段,模型会为每条检测到的车道线提供一个掩码,这可以用于进一步的道路分析或车辆导航。
优点:
更好的精度: 通过将每条车道线视为一个独立的实例,可以更精确地检测和定位车道线,尤其是在多车道或交叉车道的情况下。
更丰富的信息: 可以获取每条车道线的形状、位置和方向,这在交通分析和路径规划中很有价值。
总的来说,基于实例分割的车道线检测为道路分析和车辆导航提供了一个强大的工具,但也需要更多的数据和计算资源。
以下是基于端到端的车道线检测方法的概述:
核心思想:
利用深度神经网络直接从原始图像到车道线检测结果的映射,学习从数据中捕获的复杂模式和上下文信息。
网络结构:
通常使用卷积神经网络(CNN)结构,例如VGG、ResNet或更复杂的架构。
可以使用全卷积网络(FCN)直接预测每个像素是否属于车道线。
也可以使用回归模型预测车道线的关键点或参数化形式。
训练与预测:
使用大量标记的车道线图像进行训练。
在预测时,可以实时处理输入的视频流,生成车道线位置或相关属性。
优点:
自适应性: 能够自动从数据中学习有用的特征。
减少手动干预: 无需手动特征工程或规则定义。
可能的更好性能: 如果训练数据足够丰富和多样,端到端方法可能会达到更好的性能。
挑战与限制:
需要大量数据: 为了充分训练深度神经网络,需要大量标注的训练数据。
计算要求: 端到端的方法可能需要更多的计算资源,特别是在实时应用中。
解释性: 与传统方法相比,端到端的深度学习方法可能缺乏解释性。
总结:基于端到端的方法为车道线检测提供了一个强大且自适应的工具,但它的成功在很大程度上取决于可用的训练数据量和质量,以及计算资源。
如图所示是直观介绍从(a)中2D到(b)中BEV执行车道检测的动机:在平面假设下,车道将在投影BEV中分叉/汇聚,考虑到高度的3D解决方案可以准确预测这种情况下的平行拓扑结构。首先,将空间特征转换建模为一个学习过程,该过程具有一种注意机制,捕获前视图特征中局部区域之间以及两个视图(前视图到BEV图)之间的交互,从而能够生成细粒度的BEV特征表示。
该文构建了一个基于Transformer模块来实现这一点,同时采用了可变形的注意机制来显著降低计算内存需求,并通过交叉注意模块动态调整keys,捕捉局部区域的显著特征。与通过逆透视映射(IPM)进行的直接1-1变换相比,生成的特征更具代表性和鲁棒性,因为它关注周围的局部环境并聚合相关信息。
如图是整个PersFormer流水线:其核心是学习从前视图到BEV空间的空间特征转换,关注参考点周围的局部环境,在目标点(target point)生成的BEV特征将更具代表性;PersFormer由自注意模块组成,用于与本身BEV查询进行交互;交叉注意模块从基于IPM的前视图特征中获取key-value对,生成细粒度BEV特征。
这里主干网将resized图像作为输入,并生成多尺度前视图特征。主干网采用了流行的ResNet变型,这些特征可能会受到尺度变化、遮挡等缺陷的影响,这些缺陷来自前视图空间中固有的特征提取。最后,车道检测头负责预测2D和3D坐标以及车道类型。2D/3D检测头被称为LaneATT和3D LaneNet,其中对结构和锚点设计进行了一些修改。
进一步的目标是统一2-D车道检测和3-D车道检测任务,采用协同学习(co-learning)进行优化。一方面,透视图中,2D车道检测仍然作为大家的兴趣;另一方面,统一2D和3D任务自然是可行的,因为预测3D输出的BEV特征来自2D分支中的对应项。
如图是在2D和3D中统一锚点设计:首先在BEV空间(左)放置策划的锚点(红色),然后将其投影到前视图(右)。偏移量xik和uik(虚线)预测真值(黄色和绿色)到锚点的匹配。这样就建立了对应关系,并一起优化了特征。更加详尽内容,请参考PersFormer
数据集:https://github.com/OpenDriveLab/OpenLane
丰富的模型库:MMDetection3D 包括了许多现代和经典的3D检测模型,如 PointPillars、SECOND、Part-A^2 等,允许用户在同一框架下尝试和对比不同的方法。
高效性:通过针对性地优化代码和整合PyTorch的高级功能,MMDetection3D确保了高效的训练和推理速度。
模块化设计:框架的模块化设计使得添加新的组件和模型变得非常容易。这有助于研究人员快速实验和迭代自己的想法。
灵活性:与其前身MMDetection类似,MMDetection3D允许用户通过配置文件轻松地更改模型的各个部分、优化器、学习率策略等,使得调参和模型组合更加灵活。
高质量的代码:代码遵循严格的质量标准,提供了详细的注释,这有助于研究人员理解并修改框架的各个部分。
社区支持:由于其开源性质和受欢迎程度,该项目有着活跃的社区支持,为用户和研究人员提供了持续的更新和问题解答。
跨任务和跨模态性:MMDetection3D不仅支持3D目标检测,还支持其他任务,如点云分割,多模态/多传感器融合等,这为多任务学习和更复杂的应用提供了便利。
集成了先进的训练策略:例如学习率调整、多尺度训练、混合精度训练等,这有助于更快地得到更好的性能。
可扩展性:可以轻松地与其他工具和框架集成,例如与其前身MMDetection的2D目标检测模型集成,以支持2D-3D多任务学习。
MMDection3D框架: 源码地址 https://github.com/open-mmlab/mmdetection3d 官方文档 https://mmdetection3d.readthedocs.io/en/latest/ 新一代3D目标检测通用框架 https://zhuanlan.zhihu.com/p/165647329
转载自知乎@小酒馆燃着灯,文中观点仅供分享交流,不代表本公众号立场,如涉及版权等问题,请您告知,我们将及时处理。
-- END --