一种基于道路分类特性的超快速车道检测算法

news2025/4/8 8:02:59

摘要:

本文介绍了一种新颖、简单但有效的车道检测公式。

车道检测是自动驾驶和高级驾驶员辅助系统 (ADAS) 的基本组成部分,在实际高阶驾驶辅助应用中,考虑车道保持、转向、限速等相关的控制问题,这种方式通常是通过受限的车辆计算资源为下游任务提供即时感知结果,车道检测算法通常会被大量、快速且高效的执行。此外,车道检测可区分和定位道路上的车道标记。

主流的车道检测方法主要将车道检测视为逐像素分割问题,该问题正在努力解决效率问题和具有挑战性的场景(例如严重遮挡和极端照明条件)。受人类感知的启发,严重遮挡和极端光照条件下的车道识别主要基于上下文和全局信息。
 

由车道检测的CornerCase引出的问题如何解?

尽管深度学习模型取得了巨大成功,但仍然存在一些重要且具有挑战性的问题需要解决。

第一个就是效率问题。以前的车道检测方法主要基于分割,这是在密集的自下而上的学习管道中制定的,因此很难实现快速计算。除了效率问题之外,另一个挑战是无视觉线索问题,因为,车道检测任务是找到车道的位置,无论车道是否在可见或不可见都希望采用一定的算法进行有效的道线检测处理,如何处理没有可见信息的严重遮挡和极端光照条件的场景是该领域的一大难点。

如下图1所示。大多数具有挑战性的场景在各种照明条件下都会被严重遮挡或扭曲,导致很少或根本没有可用于车道检测的车道视觉线索。

图片

图 1. 车道检测CornerCase(其中不同的车道用不同的颜色标记)

为了缓解如上这种遮挡问题,需要通过一定的算法追踪可能的检测线索,这类线索暗示了可视化车道线以外且至关重要的线索。例如,道路形状、汽车行驶方向趋势、车道的非遮挡端点等都可能有利于检测。为了能够使用额外的线索,扩大感受野以利用更多信息,比车道检测更可取。

这就提出了一个自然的问题:能否找到一种快速、全局的、具有较大感受野的车道检测任务公式?

出于上述动机,本文介绍了一种自上而下的稀疏公式来解决效率和无法探测到视觉道线的问题。首先,介绍了一种新颖的行锚驱动的车道表示方法。即将一条车道用一系列预定义的行锚点上的坐标来表示,如下图所示。

图片

图 2. 行锚系统示意图

由于一条车道可以用一小组关键点很好地表示在固定的稀疏行锚点系统中,因此效率问题可以通过锚驱动表示的稀疏性来解决。行锚是预定义的稀疏行位置,车道可以以基于分类的方式表示为行锚上的坐标。

其次,使用基于分类的方式来学习具有锚驱动表示的车道坐标。使用基于分类的方式能够确保使用了整个全局特征,能够确保感受野与整个输入一样大。它使网络能够更好地捕获全局和远程信息进行车道检测,并有效缓解无视觉线索的问题。

此外,在这项工作中将带有行锚的车道表示扩展到混合锚系统。行锚系统可能不适用于所有类型的车道,并且可能会导致更多定位相关的问题。

图片

图 3. 每种车道的定位精度图示

如上图 3a 和 3b 所示,(a) 显示了 CULane 数据集对车道的定义。(b)是行锚系统的车道精度。(c) 说明了柱锚系统的车道精度。可以看到,使用行锚点时,旁车道的定位精度明显低于自车道的定位精度。如果我们使用列锚点呢?在图3c中,则可以看到相反的现象,即柱锚系统对自车道的定位能力较差。也就是对于自车道来说,行锚系统可以获得更好的性能,而列锚系统则对于侧车道获得更好的性能。

根据上述观察,将这种现象定位为放大定位误差问题。这个问题使得行锚很难定位水平侧车道,同样使得列锚很难定位垂直自车道。因此,建议使用混合(行和列)锚点来分别表示不同的车道。具体来说,对自车道使用行锚,对旁车道使用列锚。这样可以缓解定位误差放大的问题,提高性能。

如上描述使用的混合锚定系统,是可以通过锚定系统上的坐标来表示车道。如何有效地学习这些坐标是另一个重要问题。

最直接的方法是使用回归。通常,回归方法适用于局部范围预测设置,并且在长期建模方面相对较弱和全球本地化。为了应对全局范围预测,建议以基于分类的方式学习车道坐标,它使用不同的类别表示不同的坐标。在这项工作中,进一步将原始分类扩展到序数分类。在序数分类中,相邻类之间具有密切的序数关系,这与原始分类不同。

在本文介绍的算法中,类别性质上是有序的(例如,第 8 类的车道坐标在空间上始终位于第 7 类的车道坐标的右侧)。序数分类的另一个属性是类空间的连续性。比如7.5级这样的非整数类是有意义的,可以看作是7级和8级之间的中间类。为了实现序数分类,提出了两个损失函数来建模类之间的序数关系,包括基本分类损失和数学期望损失。利用序数关系和连续类空间属性,可以使用数学期望代替argmax来获得预测的连续类。期望损失是为了约束预测的连续类等于真实值。通过同时限制基数损失和期望损失,可以输出具有更好的序数关系,并有利于车道的局部化。

已有的车道建模检测方法论

传统的车道检测方法通常使用低级图像处理技术来解决车道检测问题。通过使用低级图像处理,传统方法本质上以自下而上的方式工作。主要思想是通过 HSI 颜色模型和边缘提取算法等图像处理来利用视觉线索。当然,最早也有尝试使用立体视觉系统的边缘提取算法来检测车道和障碍物的。除了使用不同颜色模型和边缘提取方法的特征之外,也有学者建议利用现实世界中车道通常是平行这一先验信息使用投影几何和逆透视映射来实现车道检测。尽管许多方法尝试了不同的传统车道特征,但在复杂场景中,来自低级图像处理的语义信息仍然相对不足。基于此,将跟踪作为另一种流行的后处理解决方案,以增强检测的鲁棒性。除了跟踪之外,马尔可夫和条件随机场,以及采用学习机制(如模板匹配、决策树和支持向量机)的方法也被用作后处理方法。

随着深度学习的发展,一些基于深度神经网络的方法在车道检测方面显示出优越性。这些方法通常使用指示车道存在和位置的热图来处理车道检测任务。在这些早期尝试之后,主流方法开始将车道检测视为分割问题。例如,VPGNet这种网络提出了一种由消失点引导的多任务分割网络,用于车道和道路标记检测。为了扩大逐像素分割的感受野并提高性能,SCNN 在分割模块中采用了特殊的卷积运算。通过处理切片特征并将它们一一相加来聚合来自不同维度的信息,这类似于循环神经网络。RONELD提出了一种通过分别查找和构建直线和曲线活动车道来增强 SCNN 的方法。RESA也提出了一种类似的方法,通过循环特征转换来扩大感受野。由于分割方法的计算量很大,一些工作尝试探索用于实时应用的轻量级方法。自注意力蒸馏(SAD)则采用注意力蒸馏机制,将高层和低层的注意力分别视为训练者和被训练者。IntRA-KD还使用区域间亲和力蒸馏来提高训练网络的性能。这样,通过注意力蒸馏,浅层网络可以具有与深层网络相似的性能。CurveLane-NAS则通过引入了神经架构搜索技术来搜索为车道检测量身定制的分割网络。在 LaneAF中,这项工作提出通过基于分割的亲和力场投票来检测车道。FOLOLane提出对局部模式进行建模,并以自下而上的方式使用全局几何解码器实现全局结构的全局预测。

除了主流的分割公式外,一些工作还尝试探索其他车道检测公式。采用长短期记忆(LSTM)网络来处理车道的长线结构。同样的原理,Fast-Draw预测每个车道点的车道方向,然后依次绘制出来。车道检测问题被视为通过聚类二进制片段进行实例分割。E2E提出通过可微最小二乘拟合来检测车道,并直接预测车道的多项式系数。类似地,Polylanenet和LSTR也提出分别通过深度多项式回归和Transformer来预测车道的多项式系数。

LaneATT建议使用将图像中的线条视为锚点的对象检测管道。然后,它对密集线锚点的车道进行分类和定位。遵循利用消失点先验和对象检测管道的想法,建议使用由消失点引导的线锚。与之前作品的2D视图不同,还有许多方法尝试在3D空间中检测车道。

本文中的超快车道检测算法

与之前介绍的方法不同,本文介绍的方法是自上而下的建模方法。通过自上而下的建模,该方法自然可以更多地关注全局信息,这有利于解决无视觉线索问题。与之前的自顶向下方法相比,本文介绍的方法旨在采用行和混合锚车道表示的新车道检测公式,这可以大大降低学习难度并加快检测速度。

在本节中,将详细描述如何在超快车道中进行检测方法。首先,在所提出的混合锚系统上演示了车道的坐标表示。其次,展示了深层网络架构的设计和相应的序数分类损失。最后,实现了对车道的有效分类。

1、带锚点的车道表示

为了表示车道,引入了用于车道检测的行锚点,如图3所示。车道用行锚点上的点表示。然而,行锚系统可能会导致定位误差放大的问题,如图2所示。通过这种方式,可以进一步将行锚系统进行扩展到混合锚系统。

图片

图 4. 放大的定位误差问题的图示

蓝色区域代表没有锚定系统的理想定位误差带(网络可能出现的最小不可避免的误差,这可能是由网络的偏差、注释器引入的误差等引起的)。紫色区域显示锚定系统引入的放大误差带。可以看到,当车道和锚点之间的角度很小时,定位误差会被极大地放大。放大的定位误差问题也适用于列锚。

这个问题的原因如图4所示。假设没有任何锚系统的理想最小定位误差为ε,这可能是由网络偏差、标注错误等引起的。可以看到,行锚系统上的误差带乘以因子1sinθ。当车道和锚之间的角度θ很小时,放大系数1sinθ将趋于无穷大。例如,当车道严格水平时,不可能用行锚系统来表示车道。这个问题使得行锚很难定位更水平的车道(通常是侧车道),同样,它使得列锚很难定位更垂直的车道(通常是自车道)。相反,当车道和锚点垂直时,锚点系统引入的误差最小(在这种情况下θ=0),并且它等于理想的定位误差ε。

受上述观察的启发,建议使用混合锚来表示车道。对于不同类型的车道,使用不同的锚定系统来减少放大的定位误差。具体来说,规则是:一条车道只能分配一种锚点,并且选择与该车道更垂直的锚点类型。在实践中,像 CULane和 TuSimple这样的车道检测数据集仅注释两个自车道和两个侧车道,如图 2a 所示。这样,对自车道使用行锚,对侧车道使用列锚,混合锚系统可以缓解放大的定位误差问题。

通过混合锚点系统,我们可以将车道表示为锚点上的一系列坐标,如图 5 所示。

图片

图 5.混合锚系统的车道表示

输入图像及其注释显示在左侧。对于自车道,使用行锚来表示车道标记的位置,边车道采用柱锚。通过混合锚定系统,车道可以简单地表示为对应于四个车道的四个矩阵,如右图所示。此外,锚点的固定和共享坐标可以省略。对于不存在的位置,使用-1来表示。

假设将 Nrow 表示为行锚点的数量,将 Ncol 表示为列锚点的数量。同时,假设分配给行锚点的车道数为 Nr Lane,分配给列锚点的车道数为 Nc Lane。对于每个车道,首先分配相应的锚定系统,该锚定系统具有最小的定位误差。然后计算车道与每个锚点之间的线与线的交点,并记录交点的坐标。如果车道在某些锚点之间没有交叉点,则坐标将设置为-1。

图像中的车道可以用固定大小的目标T来表示,其中每个元素要么是车道的坐标,要么是-1,其长度为Nrow × Nr Lane + Ncol × Nc Lane。T可以分为两部分Tr和Tc,分别对应行锚和列锚上的部分,大小为Nrow × Nr。

图片

图6 混合锚点的网络架构设计

2、锚点驱动的网络设计

借助混合锚点的车道表示,设计网络的目标是通过分类来学习固定大小的目标 Tr 和 Tc。为了通过分类来学习 Tr 和 Tc,将 Tr 和 Tc 中的不同坐标映射到不同的类。假设 Tr 和 Tc 被归一化(Tr 和 Tc 的元素范围从 0 到 1 或等于 -1,即“无车道”情况),类别数为 Nr dim 和 Ncdim。映射可以写为:

图片

其中Trcls 和Tccls 为坐标的映射类标号,b·c 为取整操作,Tr cls_i,j 为Trcls 第i 行j 列的元素。这样,就可以将混合锚点上的坐标学习转化为维度分别为Nrdim和Ncdim的两个分类问题。对于无车道情况,即 Tri,j 或 Tcm,n 等于 -1,使用附加的双向分类来指示:

图片

其中Trext是坐标存在的类标号,Trext_i,j是Trext第i行j列的元素。柱锚 Tcext 的存在目标类似:

图片

通过上述推导,整个网络就是学习Trcls、Tccls、Trext 和Tcext 两个分支,分别是定位分支和存在分支。假设输入图像的深层特征为X,网络可以写为:

图片

等式4是直接展平来自主干的深层特征并将其输入分类器。其中P和E是定位和存在分支,f是分类器,flatten(·)是展平操作。相比之下,传统的分类网络使用全局平均池化(GAP)。使用 GAP 会消除空间信息并导致性能不佳。这里使用 flatten 而不是 GAP 的原因是空间信息对于基于分类的车道检测网络至关重要。P和E的输出均由两部分组成(Pr,Pc,Er和Ec),分别对应于行和列锚点。Pr和Pc的大小分别为NrLane × Nrow × Nrdim和NcLane × Ncol × Ncdim,其中Nrdim和Ncdim是行和列锚点的映射分类维度。Er和Ec的大小分别为NrLane×Nrow×2和NcLane×Ncol×2。

3、序数分类损失

正如我们在等式中看到的,一个本质属性是上述分类网络中的类具有序数关系。在分类网络中,相邻类被定义为具有紧密的顺序关系,这与传统的分类不同。为了更好地利用序数关系的先验,建议使用基本分类损失和期望损失。

图片

图 7. 建议的期望损失的图示

4、网络推理

接下来将展示如何在推理过程中获取想要的车道检测结果。以行锚点系统为例,假设 Pr i,j 和 Er i,j 是第 i 个车道和第 j 个锚点的预测。那么Pr i,j 和Er i,j 的长度分别为Nr dim 和2。车道每个位置的概率可以写为:

图片

其中P robr i,j 的长度为Nr dim。

接下来,通过预测分布的数学期望获得车道的位置。此外,不存在车道的预测将根据存在分支的预测被过滤掉:

图片

最后,对获得的位置 Loc 进行缩放以适合输入图像的大小。

总结

本文介绍了一种新颖、简单但有效的车道检测公式。与以前的方法相比,本方法将车道表示为基于锚的坐标,并且坐标以基于分类的方式学习。该公式在解决无视觉线索问题方面非常快速且有效。基于该公式,提出了一种混合锚系统,进一步扩展了之前的行锚系统,可以有效地减少定位误差。具体来说,将车道检测过程视为使用全局特征锚驱动的序数分类问题。首先,在一系列混合(行和列)锚点上表示具有稀疏坐标的车道。接着,在锚驱动表示的帮助下,将车道检测任务重新表述为序数分类问题以获取车道坐标,通过锚驱动表示显着降低了计算成本。利用序数分类公式的大感受野特性,解决了高速场景和极端场景的车道线问题。

作者 | 山丘

来源 | 焉知汽车

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

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

相关文章

java——多线程基础

目录 线程的概述多线程的创建方式一:继承Thread类方式二:实现Runnable接口方式三:利用Callable接口、FutureTask类来实现。Thread常用的方法 线程安全问题线程安全问题概述线程安全问题案例取钱案例描述模拟代码如下:执行结果 线程…

2024-02-25 Unity 编辑器开发之编辑器拓展7 —— Inspector 窗口拓展

文章目录 1 SerializedObject 和 SerializedProperty2 自定义显示步骤3 数组、List 自定义显示3.1 基础方式3.2 自定义方式 4 自定义属性自定义显示4.1 基础方式4.2 自定义方式 5 字典自定义显示5.1 SerizlizeField5.2 ISerializationCallbackReceiver5.3 代码示例 1 Serialize…

【Activiti7系列】Activi7简介和基于Spring Boot整合Activiti7(流程设计器)

本文将介绍Activiti7基础概念及基于Spring Boot整合Activiti7(流程设计器)的具体步骤。 作者:后端小肥肠 1. 前言 在企业级应用中,业务流程的管理和执行是至关重要的一环。Activiti7是一个强大的开源工作流引擎,它提供了灵活的流程定义、任务…

linux---安使用nginx

目录 一、编译安装Nginx 1、关闭防火墙,将安装nginx所需要软件包传到/opt目录下 ​编辑2、安装依赖包 3、创建运行用户、组 4、编译安装nginx 5、创建软链接后直接nginx启动 ​编辑 6、创建nginx自启动文件 ​编辑6.1 重新加载配置、设置开机自启并开启服务…

Kafka之Producer源码

Producer源码解读 在 Kafka 中, 我们把产生消息的一方称为 Producer 即 生产者, 它是 Kafka 的核心组件之一, 也是消息的来源所在。它的主要功能是将客户端的请求打包封装发送到 kafka 集群的某个 Topic 的某个分区上。那么这些生产者产生的消息是怎么传到 Kafka 服务端的呢&a…

unity发布webGL压缩方式的gzip,使用nginx作为web服务器时的配置文件

unity发布webGL压缩方式的gzip,使用nginx作为web服务器时的配置文件 Unity版本是:2021.3 nginx的版本是:nginx-1.25.4 Unity发布webgl时的测试 设置压缩方式是gzip nginx配置文件 worker_processes 1;events {worker_connections 102…

SpringBoot实现热插拔AOP

热插拔AOP执行核心逻辑 Advice:“通知”,表示 Aspect 在特定的 Join point 采取的操作。包括 “around”, “before” and “after 等 Advice,大体上分为了三类:BeforeAdvice、MethodInterceptor、AfterAdviceAdvisor&#xff1a…

STM32存储左右互搏 QSPI总线FATS文件读写FLASH W25QXX

STM32存储左右互搏 QSPI总线FATS文件读写FLASH W25QXX FLASH是常用的一种非易失存储单元,W25QXX系列Flash有不同容量的型号,如W25Q64的容量为64Mbit,也就是8MByte。这里介绍STM32CUBEIDE开发平台HAL库Quad SPI总线实现FATS文件操作W25Q各型号…

智能SQL生成:后端技术与LLM的完美结合

文章目录 引言一、什么是大模型二、为什么选择LLM三、开发技术说明四、系统架构说明五、编码实战1. Maven2. 讯飞大模型配置类3. LLM相关的封装4. 编写LLM的service5. 编写controller6. 运行测试 六、总结 引言 本篇文章主要是关于实现一个类似Chat2DB的根据自然语言生成SQL的…

SpringMVC 学习(四)之获取请求参数

目录 1 通过 HttpServletRequest 获取请求参数 2 通过控制器方法的形参获取请求参数 3 通过 POJO 获取请求参数&#xff08;重点&#xff09; 1 通过 HttpServletRequest 获取请求参数 public String handler1(HttpServletRequest request) <form action"${pageCont…

微信小程序02: 使用微信快速验证组件code获取手机号

全文目录,一步到位 1.前言简介1.1 专栏传送门1.1.1 上文小总结1.1.2 上文传送门 2. 微信小程序获取手机号2.1 业务场景(使用与充值)2.2 准备工作2.3 具体代码使用与注释如下2.3.1 代码解释(一)[无需复制]2.3.2 代码解释(二)[无需复制] 2.4 最后一步 获取手机号信息2.4.1 两行代…

电商评价分析:NLP信息抽取技术在用户评论中的应用与挖掘

一、引言 在2019年&#xff0c;电子商务的蓬勃发展不仅推动了消费市场的增长&#xff0c;也带来了海量的用户评价数据。这些数据&#xff0c;作为消费者对商品和服务直接反馈的载体&#xff0c;蕴含着巨大的价值。然而&#xff0c;由于其非结构化的特性&#xff0c;这些文本信息…

YOLOv8改进 | Conv篇 | 全新的SOATA轻量化下采样操作ADown(参数量下降百分之二十,附手撕结构图)

一、本文介绍 本文给大家带来的改进机制是利用2024/02/21号最新发布的YOLOv9其中提出的ADown模块来改进我们的Conv模块,其中YOLOv9针对于这个模块并没有介绍,只是在其项目文件中用到了,我将其整理出来用于我们的YOLOv8的项目,经过实验我发现该卷积模块(作为下采样模块)…

半导体物理基础-笔记(续)

源内容参考&#xff1a;https://www.bilibili.com/video/BV11U4y1k7zn/?spm_id_from333.337.search-card.all.click&vd_source61654d4a6e8d7941436149dd99026962 掺杂半导体的费米能级与温度及杂质浓度的关系图 在温度一定的条件下&#xff0c;施主杂质浓度越高&#xff0…

压力测试工具Jmeter的下载与使用

1、进入官网下载Jmeter https://jmeter.apache.org/ 国内镜像&#xff08;下载的慢的话可以用国内镜像下载&#xff09; https://mirrors.cloud.tencent.com/apache/jmeter/binaries/ 2、跳转到下载页面 3、根据不同系统下载相应版本的Jmeter压缩包&#xff0c;Linux系统下载…

Repeater:创建大量类似项

Repeater 类型用于创建大量类似项。与其它视图类型一样&#xff0c;Repeater有一个model和一个delegate。 首次创建Repeater时&#xff0c;会创建其所有delegate项。若存在大量delegate项&#xff0c;并且并非所有项都必须同时可见&#xff0c;则可能会降低效率。 有2种方式可…

2024年大路灯无广测评推荐:书客、柏曼、霍尼韦尔大路灯哪个品牌更好?

临近开学&#xff0c;护眼大路灯哪个品牌好的话题度在不断提高&#xff01; 有人说大路灯是“智商税”&#xff0c;但也有人说“学生党福音”、“照明神器”&#xff0c;吸引了大量人群的关注。在没用过大路灯之前我也很担心在担心是否是智商税的问题&#xff0c;直到我自己入…

BUU [CISCN2019 华东南赛区]Web4

BUU [CISCN2019 华东南赛区]Web4 题目描述&#xff1a;Click to launch instance. 开题&#xff1a; 点击链接&#xff0c;有点像SSRF 使用local_file://协议读到本地文件&#xff0c;无法使用file://协议读取&#xff0c;有过滤。 local_file://协议&#xff1a; local_file…

stable-diffusion-webui+sadTalker开启GFPGAN as Face enhancer

接上一篇&#xff1a;在autodl搭建stable-diffusion-webuisadTalker-CSDN博客 要开启sadTalker gfpgan as face enhancer&#xff0c; 需要将 1. stable-diffusion-webui/extensions/SadTalker/gfpgan/weights 目录下的文件拷贝到 :~/autodl-tmp/models/GFPGAN/目录下 2.将G…

探索创意的无尽宇宙——Photoshop 2020,你的视觉魔法棒

在数字艺术的广阔天地中&#xff0c;Photoshop 2020无疑是一颗璀璨的明星。这款由Adobe公司精心打造的图像处理软件&#xff0c;自推出以来&#xff0c;便以其强大的功能和卓越的性能&#xff0c;赢得了全球数百万设计师、摄影师和爱好者的青睐。无论是Mac还是Windows系统&…