车道线检测----CLRERNet

CLRerNet:利用LaneIoU提升车道检测置信度

摘要

车道标检测在自动驾驶和驾驶辅助系统中至关重要。现代深度车道检测方法在车道检测基准测试中表现出色。通过初步的预言机实验,我们首次拆解车道表示组件以确定研究方向。我们表明,正确的车道位置已存在于现行车道检测器的预测中,并且准确表示与真实值IoU的置信度分数最有益。基于这一发现,我们提出了LaneIoU,它通过考虑局部车道角度与评估指标更相关。我们开发了一种名为CLRerNet的新检测器,其在目标分配成本和损失函数中采用LaneIoU,旨在提升置信度分数质量。通过仔细设计的基准测试,包括交叉验证,我们证明CLRerNet大幅超越现有技术——在CULane上的F1分数为81.43%,相比现有方法的80.47%;在CurveLanes上为86.47%,相比86.10%。代码和模型可在 GitHub 上获取。

1. 引言

车道检测在自动驾驶和驾驶辅助系统中起着重要作用。与其他计算机视觉任务一样,卷积神经网络(CNN)的出现推动了车道检测性能的快速发展。现代车道检测方法按车道实例表示可分为四类。分割基准[18,27]和关键点基准[21]分别将车道视为分割掩码和关键点。参数表示方法[25,16]利用曲线参数回归车道形状。行基准表示[24,28,19,20,15]将车道视为特定水平线上的坐标集。前两类被用于自下而上的检测范式,直接在图像中检测车道位置,随后将其分组为车道实例。后两类被用于自上而下的实例检测方法,每个车道检测被视为全局车道实例和局部车道点集。行基准表示在检测性能方面已成为事实上的标准。我们选择CLRNet作为基线。

车道检测的性能依赖于车道点定位和实例级分类。车道检测基准[18,7]采用基于分割掩码的IoU作为评估指标。预测车道中得分高于预设阈值的被视为有效预测以计算F1分数。因此,预测车道与真实车道的分割基准IoU应较大,分类分数应较高。为确定研究方向,我们首先进行初步预言机实验。将置信度分数替换为预言机值后,F1分数接近完美(98.47%)。这表明正确车道已在预测中,置信度分数需更准确地表示与真实值的IoU。图1(中)显示了所有预测(蓝色)和真实值(虚线橙色)的比较。预测的置信度分数与颜色深度成正比。最左侧的预测是高置信度假阳性,错过了真实值,但在真实值附近存在高IoU的低置信度预测。

下一个问题是:如何将基于分割的IoU作为学习目标?在行基准方法中,预测和真实车道均表示为固定行上的x坐标。[28]引入LineIoU损失逐行测量交集和并集并分别求和。但这种方法与基于分割的 IoU 不等价,特别是对于非垂直、倾斜车道(例如图1底部)或曲线。我们引入新的IoU——LaneIoU,考虑车道的局部角度。LaneIoU整合每行的角度感知交集和并集以匹配基于分割的IoU。行基准方法为每个锚点学习全局车道概率分数。最近目标检测器中采用的动态样本分配[4,5]在车道检测训练中也有效[28]。IoU矩阵和成本矩阵分别确定每个真实车道分配的锚点数量和分配的锚点。置信度目标被设置为正(一)。因此,样本分配负责学习置信度分数。我们引入LaneIoU到样本分配中,使检测器的置信度分数接近基于分割的IoU。LaneIoU动态确定每个真实车道分配的锚点数量,并作为成本函数优先分配锚点。此外,用于回归水平坐标的IoU 损失也被我们的LaneIoU替代,以适当惩罚不同倾斜角度的预测车道。将LaneIoU集成到CLRNet中,使检测器训练更直接,因此我们将其命名为CLRerNet。我们通过在CULane和CurveLanes上的广泛实验展示了LaneIoU的有效性,并报告了最新的基准测试结果。重要的是,为确保基准测试的可靠性和公平性,我们采用五种模型的平均分数作为每个实验条件的结果,而以往工作仅显示单一模型的分数。此外,由于车道检测评估中的F1指标对检测器的车道置信度阈值极为敏感,我们利用训练集的5折交叉验证确定阈值。我们的贡献如下:

  • 明确研究方向:通过初步预言机实验,我们表明正确的车道位置已存在于现检测器的预测中,并且表示与真实值的IoU的置信度分数最有益于提升性能。

  • 明确训练方法:我们采用与评估指标高度相关的LaneIoU作为车道相似性函数并将其集成到训练中作为样本分配成本和回归目标。

  • 明确基准测试:采用多模型评估和基于交叉验证的分数阈值确定,确保公平基准测试。LaneIoU的有效性和通用性得到验证,CLRerNet在CULane和CurveLanes基准测试中达到最新水平。

2. 相关工作

2.1 目标检测

样本分配:样本分配是目标检测的主要研究重点。从检测头生成的提议被分配给真实样本。[22,13,8,12]通过在特征图网格和真实框之间静态计算IoU来分配真实样本。[4]为对象检测器的训练样本分配引入最优传输分配(OTA),动态分配预测框给真实样本。[5]简化OTA并实现无迭代分配。IoU函数:提出了几种IoU函数的变体[23,29,30],用于准确的边界框回归和快速收敛。例如,广义IoU(GIoU)[23]引入最小凸包的概念,即使边界框不重叠,也能使IoU可微。我们的LaneIoU基于GIoU,但新增了在行基准表示中计算曲线之间的IoU功能。

2.2 车道检测

车道检测范式根据车道表示类型分为四类,即基于分割、基于关键点、基于行和基于参数的表示。

  • 基于分割的表示:这类工作是基于像素的车道存在概率估计。SCNN[18]和RESA[27]采用语义分割范式,在每个像素上将车道实例分类为不同类别。车道与类别的对应关系由注释确定,因此不够灵活(例如某些车道位置可能属于两个类别)。基准数据集[18,7]采用像素级IoU比较预测车道与真实车道,对基于分割的方法较为友好。然而,这些方法不将车道视为整体实例,需要计算成本高昂的后处理。[19,28]仅在训练期间利用分割任务作为辅助损失以改进骨干网络。我们遵循这些方法,采用辅助分支和损失。

  • 基于行的表示:车道实例被表示为固定行上的x坐标集。LaneATT[24]采用车道锚点来学习每个锚点的置信度分数和局部x坐标偏移。锚点被定义为固定角度和起点。训练目标根据每个锚点与真实车道之间的水平距离静态分配CLRNet[28]采用可学习的锚点参数(起点xa、ya和θa)和长度l对于样本分配,采用简化最优传输分配[5]动态分配最近的预测给每个真实车道。这两种方法通过锚点池化特征图,并将提取的特征输入到头部网络。头部网络输出每个锚点的分类和回归张量。这种范式对应于两阶段目标检测方法,如[13,8]。UFLD[19]通过展平特征图捕获全局特征,并学习行-wise车道位置分类。UFLDv2[20]扩展[19],增加列-wise车道表示以处理近水平车道。CondLaneNet[15]从车道起点的概率热图中学习,并从中提取动态卷积核。动态卷积被应用于特征图,从而完成行-wise车道点分类和x坐标回归。LaneFormer[6]采用具有行和列注意力的变换器,以端到端的方式检测车道实例。此外,车辆检测结果被输入到解码器中,使管道具备对象感知能力。在四种表示类型中,基于行的表示在检测性能方面已成为事实上的标准。

3. 方法

3.1 网络设计和损失函数

基于行的表示[28,15,24]采用了四种类型中最准确但简单的检测流程。我们从基于行的方法中选择性能最佳的CLRNet[28]作为基线。网络示意图如图2所示。骨干网络(例如ResNet[9]和DLA[26])和上采样网络提取多级特征图,其空间维度为输入图像的1/8、1/16、1/32。初始锚点由Na个可学习的锚点参数(xa、ya、θa)形成,其中(xa、ya)是起点,θa是锚点的倾斜度。沿每个锚点采样特征图并输入到卷积和全连接(FC)层。FC层输出分类 logits c、锚点细化 δxa、δya、δθa、长度 l 和局部x坐标细化 δx张量通过δxa、δya和δθa细化的锚点重新采样更高分辨率的特征图,并重复该过程三次。池化特征通过交叉注意力与特征图交互,并在不同细化阶段进行连接。车道预测表示为分类(置信度)logits和从最终xa、ya、θa、l和δx计算出的在Nrow行上的x坐标集。更多关于细化机制的细节可在[28]中找到。在训练期间,通过动态分配器[5]将接近真实车道的预测分配给真实车道。分配的预测被回归到对应的真实车道,并学习被分类为正类。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/83349.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ML307R 的 USB Vendor ID (VID):0x2ECC ML307R 的 USB Product ID (PID):0x3012

可以的,在文档的「Table 3. VID、PID查询表」中明确指出: ML307R 的 USB Vendor ID (VID):0x2ECCML307R 的 USB Product ID (PID):0x3012 你可以将这对 VID/PID 加到 Linux 的 option 驱动中,比如: ech…

论信息系统项目的范围管理

论信息系统项目的范围管理 前言一、规划范围管理,收集需求二、定义范围三、创建工作分解结构四、确认范围五、控制范围 前言 为了应对烟草零售客户数量大幅度增长所带来的问题,切实履行控烟履约的相关要求,同时也为了响应国务院“放管服”政策…

MongoDB与PostgreSQL两个数据库的特点详细对比

MongoDB 和 PostgreSQL 是两种不同类型的数据库,分别属于 ​​NoSQL(文档型)​​ 和 ​​关系型(SQL)​​ 数据库。它们在数据模型、查询语言、扩展性、事务支持等方面有显著差异。以下是详细对比: ​​1. …

计算机网络:什么是电磁波以及有什么危害?

电磁波详解 电磁波(Electromagnetic Wave)是由电场和磁场相互激发、在空间中传播的能量形式。它既是现代通信的基石(如手机、Wi-Fi、卫星信号),也是自然界中光、热辐射等现象的本质。以下从定义、产生、特性、分类及应用全面解析: 一、电磁波的本质 1. 核心定义 电场与…

如何使用 Solana Yellowstone gRPC 重新连接和重放插槽

Yellowstone gRPC 是一个功能强大、可用于生产环境且经过实战检验的工具,用于流式传输实时的 Solana 数据。但在实际条件下,网络中断或服务器重启可能导致连接中断。如果没有适当的重连策略,你的应用程序可能会错过区块链的关键更新。 为了防…

foxmail - foxmail 启用超大附件提示密码与帐号不匹配

foxmail 启用超大附件提示密码与帐号不匹配 问题描述 在 foxmail 客户端中,启用超大附件功能,输入了正确的账号(邮箱)与密码,但是提示密码与帐号不匹配 处理策略 找到 foxmail 客户端目录/Global 目录下的 domain.i…

MySQL 事务(一)

文章目录 CURD不加控制,会有什么问题CURD满足什么属性,能解决上述问题?什么是事务为什么要有事务事务的版本支持了解事务的提交方式 事务常见操作方式研究并发场景事务的正常操作事务的非正常情况的案例结论事务操作的注意事项 CURD不加控制&…

CSS面试题汇总

在前端开发领域,CSS 是一项不可或缺的技术。无论是页面布局、样式设计还是动画效果,CSS 都扮演着重要的角色。因此,在前端面试中,CSS 相关的知识点往往是面试官重点考察的内容。为了帮助大家更好地准备面试,本文汇总了…

Java 后端给前端传Long值,精度丢失的问题与解决

为什么后端 Long 类型 ID 要转为 String? 在前后端分离的开发中,Java 后端通常使用 Long 类型作为主键 ID(如雪花算法生成的 ID)。但如果直接将 Long 返回给前端,可能会导致前端精度丢失的问题,特别是在 J…

对称二叉树的判定:双端队列的精妙应用

一、题目解析 题目描述 给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的: 1/ \2 2/ \ / \ 3 4 4 3而 [1,2,2,null,3,null,3] 则不是镜像对称的: 1/ \2 2\ \3 3问题本质 判断一棵二叉…

C#数组与集合

🧠 一、数组(Array) 1. 定义和初始化数组 // 定义并初始化数组 int[] numbers new int[5]; // 默认值为 0// 声明并赋值 string[] names { "Tom", "Jerry", "Bob" };// 使用 new 初始化 double[] scores …

本地部署Scratch在线编辑器

1、说明 由于在GitHub上没有找到Scratch源码,所以只能编写脚本下载官网相关资源,然后在本地部署。 如果你找到了Scratch源码,请自行编译部署,可忽略以下操作。 项目结构:scratch.mit.edu |-- chunks | |-- fetch-w…

Gmsh 读取自定义轮廓并划分网格:深入解析与实践指南

一、Gmsh 简介 (一)Gmsh 是什么 Gmsh 是一款功能强大的开源有限元网格生成器,广泛应用于工程仿真、数值模拟以及计算机图形学等领域。它为用户提供了从几何建模到网格划分的一整套解决方案,能够有效处理复杂几何形状,生成高质量的二维和三维网格,满足多种数值方法的需求…

Elabscience 精准识别 CD4+ T 细胞|大鼠源单克隆抗体 GK1.5,适配小鼠样本的流式优选方案

内容概要 CD4 T细胞在免疫调节、自身免疫疾病及肿瘤免疫治疗中发挥关键作用。Elabscience推出的APC Anti-Mouse CD4 Antibody (GK1.5)(货号:E-AB-F1097E)是一款高特异性、低背景的流式抗体,专为小鼠CD4 T细胞亚群检测优化设计。该…

【RabbitMQ】应用问题、仲裁队列(Raft算法)和HAProxy负载均衡

🔥个人主页: 中草药 🔥专栏:【中间件】企业级中间件剖析 一、幂等性保障 什么是幂等性? 幂等性是指对一个系统进行重复调用(相同参数),无论同一操作执行多少次,这些请求…

51 单片机头文件 reg51.h 和 reg52.h 详解

51 单片机头文件详解 51 单片机的头文件reg51.h和reg52.h是开发中非常重要的文件,它们定义了单片机的特殊功能寄存器 (SFR) 和位地址。以下是对这两个头文件的详细解析: 1. 头文件概述 reg51.h:针对标准 8051 单片机(4KB ROM, 128B RAM) reg52.h:针对增强型 8052 单片…

前端的面试笔记——JavaScript篇(二)

一、instanceof 在 JavaScript 里,instanceof 是一个相当实用的运算符,它的主要功能是检查某个对象是否属于特定构造函数的实例。这里需要明确的是,判断的依据并非对象的类型,而是其原型链。下面为你详细介绍它的用法和特点&…

”一维前缀和“算法原理及模板

前缀和,就是通过一种方法来求出数组中某个连续区间的元素的和的办法。我们通常先预处理出来一个前缀和数组,然后把数组中进行元素填充后再进行后续使用。 我们通过一道模板题或许能更加理解其意思。 现在的问题就是:如果我们用暴力枚举来记录…

5.13/14 linux安装centos及一些操作命令随记

一、环境准备 VMware Workstation版本选择建议 CentOS 7 ISO镜像下载指引 虚拟机硬件配置建议(内存/处理器/磁盘空间) 二、系统基础命令 一、环境准备 1.VMware Workstation版本选择建议 版本选择依据 选择VMware Workstation的版本时&#xff0c…

spring学习->sprintboot

spring IoC(控制翻转): 控制:资源的控制权(资源的创建,获取,销毁等) 反转:和传统方式不一样(用上面new什么),不用new让ioc来发现你用什么,然后我来给什么 DI:(依赖注入) 依赖:组件的依赖关系。如newsController依赖NewsServi…