Structure Guided Lane Detection 论文精度

news2024/12/25 8:56:38

结构导向车道检测

摘要

近年来,随着深度神经网络和自动驾驶的快速发展,车道检测取得了长足的进步。然而,主要存在三个问题,包括车道的特征化、场景与车道之间的结构关系建模以及对车道的更多贡献(如实例和类型)的支持。在本文中,我们提出了一种新的结构导向框架来同时解决这些问题。在该框架中,我们首先引入了一种新的车道表示来表征每个实例。然后,提出了一种自上而下的消失点导向锚定机构,以产生密集型锚,有效地捕获各种车道。其次,使用多级结构约束来提高车道的感知能力。在此过程中,引入了像素级感知和二值分割来提升锚点周围的特征并自下而上恢复车道细节,提出了车道级关系来建模车道周围的结构(即平行),并使用图像级注意力从场景的角度自适应地关注图像的不同区域。在结构指导的帮助下,锚被有效地分类和重新分级,以获得精确的位置和形状。在公共基准数据集上的实验表明,所提出的方法在单个GPU上以117 FPS的速度优于现有技术。

一、介绍

车道检测旨在检测道路场景中的车道,是一项基本的感知任务,具有广泛的应用(例如,ADAS[Butakov和Ioannou,2014]、自动驾驶[Chen和Huang,2017]和高精度地图制作[Homayunfar et al.,2019])。车道检测已经取得了重大进展,它也被用作道路场景理解任务的重要元素,例如驾驶区域检测[Yu et al.,2020]。

图1、车道检测的挑战。(a)各种表现形式。存在许多类型的注释[TuSimple,2017;Pan等人,2018;Yu等人,2020;Lee等人,2017],这使得难以统一地描述车道。(b)研究不足的场景结构。车道位置强烈依赖于结构信息,如消失点(黑点)、鸟瞰图中的平行度和透视引起的距离注意。(c)要支持的更多属性。车道具有更多的属性,如实例和类型,这些属性应该进行预测。

为了解决车道检测的任务,近年来提出了许多基于学习的方法[Pan et al.,2018;Qin et al.,2020],在现有基准上取得了令人印象深刻的性能[TuSimple,2017;Pan et al.,2018]。然而,仍然存在一些阻碍车道检测发展的挑战。首先,缺乏统一有效的车道表示。如图1a所示,存在各种定义,包括点[TuSimple,2017]、掩码[Pan etal.,2018]、标记[Yu et al.,2020]和网格[Lee et al.,2017],对于不同的场景,它们在形式上有很大的不同。其次,很难对场景和车道之间的结构关系进行建模。如图1的(b)所示,依赖于场景的结构信息,如消失点的位置和车道的平行度,非常有用,但没有方案来描述它。最后,在预测车道时,预测其他属性也很重要,包括实例和类型(见图1的(c)),但对现有方法进行扩展并不容易。这三个困难尤其难以处理,大大减缓了车道检测的发展。由于这些困难,车道检测仍然是一项具有挑战性的视觉任务。

为了解决第一个困难,许多方法都用简单的拟合曲线或掩码来表征车道。例如,SCNN[Pan et al.,2018]将该问题视为语义分割任务,并在特征图中引入逐片卷积,从而实现消息传递。对于这些方法,车道被表征为一种特殊的形式(例如,点、曲线或掩码),因此通常很难支持具有不确定数量标记或网格的格式。同样,支持后者的人[Lee et al.,2017]也不太支持前者。为了解决第二个问题,一些方法使用消失点或平行关系作为辅助信息。例如,消失点预测任务[Lee et al.,2017]用于隐式嵌入地理度量上下文识别能力。在这些方法中,他们通常只关注某一种结构的形成,或者不直接端到端地使用它,这导致结构不能完全发挥作用,算法复杂。对于最后一个问题,使用一些基于聚类或检测的方法来区分或分类实例。Line CNN[Li et al.,2019]利用线路建议作为参考来定位交通曲线,这迫使该方法学习车道的特征。对于这些方法,它们可以区分不同的实例,甚至可以扩展到更多的属性,但它们通常需要额外的计算,并且有许多手动设计的超级参数,这导致了较差的可扩展性。

 图2、我们方法的框架。我们首先通过提取器提取常见特征,提取器为消失点引导锚定和像素级感知提供特征。锚定产生密集的锚,感知利用二元分割来促进车道周围的特征。借助车道级关系和图像级注意力,利用提升特征对锚点进行分类和回归。虚线箭头表示监督,图中省略了对消失点和车道分割的监督。

受这些观察和分析的启发,我们提出了一种新的结构导向车道检测框架,如图2所示。为了表征车道,我们提出了一种基于箱线的建议方法。该方法利用车道的最小外接矩形进行实例识别,并利用其中心线进行结构化定位。为了利用结构信息进一步提高车道检测,提出了消失点引导锚固机制来生成意图锚(即尽可能少且准确的锚)。在该机制中,消失点以分割的方式学习,并用于自上而下产生结构锚,可以有效地捕捉各种车道。同时,我们提出了多层次的结构约束,以提高对车道的感知。在此过程中,像素级感知借助于车道二值分割来改善车道细节,车道级关系旨在通过神经网络通过逆透视映射(IPM)对车道间的平行性进行建模,图像级注意力是从场景的角度对具有自适应权重的图像进行关注。最后,提取结构引导下车道锚的特征,进行准确的分类、回归和其他属性的预测。在CULane和Tusimle数据集上的实验结果验证了所提出的方法的有效性,该方法实现了最先进的性能,并在117 FPS下高效运行。

本文的主要贡献包括:

1)我们提出了一个结构导向的车道检测框架,该框架对车道进行了表征,可以准确地对无限车道的形状进行分类、定位和重新存储。

2) 我们介绍了一种消失点引导锚定机构,其中消失点将被预测并用于产生密集的anchors,该机构可以精确地捕获车道。

3) 我们提出了多级结构约束,用于感知像素级的一元细节,建立车道级的成对关系模型,自适应地处理图像级的全局信息。

二、相关工作

在本节中,我们将从两个方面回顾旨在解决车道检测挑战的相关工作。

2.1、传统方法

为了解决车道检测问题,传统的方法通常基于手工制作的特征,通过检测标记的形状和拟合样条曲线。[Veit等人,2008]对用于检测道路标线的特征进行了全面概述。Wu和Ranganathan,2012]使用最大稳定极值区域特征,并执行模板匹配来检测多个道路标记。然而,有些方法在陌生的条件下往往会失败。

2.2、基于深度学习的方法

深度学习的发展,基于深度神经网络的方法[Pizzati和Garc´ıa,2019;Van Gansbeke等人,2019;郭等人,2020]在车道检测方面取得了进展。SCNN[Pan et al.,2018]概括了传统的深层逐层卷积,以实现在行和列之间的像素之间的消息传递。ENet SAD[Hou et al.,2019]提出了一种知识提取方法,该方法允许模型在没有任何额外监督或标签的情况下自我学习。PolyLaneNet[Tabelini et al.,2020]对车道标线采用多项式表示,并通过深度多项式回归输出多项式。超快[Qin et al.,2020]将车道检测过程视为使用全局特征的基于行的选择问题。CurveLanes[Xu et al.,2020]提出了一种车道敏感架构搜索框架,以自动捕获长距离连贯和准确的短距离曲线信息。

在这些方法中,采用了不同的车道表示,并考虑了一些结构信息以提高性能。然而,这些方法通常基于神经网络强大的学习能力来学习车道的拟合或形状,与场景相关的结构信息对车道的作用还没有得到足够的关注和讨论。

三、提出的方法

为了解决这些困难(即,表征车道,对场景和车道之间的关系进行建模,并支持更多属性),我们提出了一种用于车道检测的新型结构引导框架,称为SGNet。在这个框架中,我们首先介绍了一种新的车道表示。然后提出了一种自上而下的消失点引导锚固机制,并使用了下一个多级结构约束。拟议方法的细节描述如下。

3.1、车道表示

为了适应不同风格的车道标注,我们介绍了一种新的基于框线的车道表示方法。首先,我们计算车道实例Llane的高度为h、宽度为w的最小外接矩形R(“长方体”)。对于这个矩形,获得了垂直于短边的中心线Lcenter(“线”)。正X轴与L中心顺时针方向的夹角为θ。以这种方式,Lcenter提供了车道的位置,h和w限制了所涉及的区域。基于R和Lcenter,可以执行基于点、掩码、标记符、网格和其他格式的车道预测。在本文中,之所以采用基于车道检测关键点的解决方案,正是因为公共数据集中基于点的车道标注风格(例如,CULane[TuSimple,2017]和Tusimle[Pan et al.,2018])。

 图3、车道表示

受现有方法的启发[Li et al.,2019;Chen等人,2019;Qin et al.,2020],我们定义了具有等距y坐标y={yi}和yi=PH−1·i(i=1,2,…,P−1)的车道实例的关键点,其中P表示通过图像高度的所有关键点的数量,该数量固定在具有相同高度H和宽度W的图像上。因此,车道的x坐标表示为x={xi}。为了便于表达,Lcenter的直线方程定义为

中a、b和c可以很容易地通过θ和Lcenter上的任何点来计算。接下来,当中心线的y坐标为yi时,我们可以计算相应的x坐标为

 然后,我们将车道Llane和中心线Lcenter之间的x坐标∆x的偏移量定义为

因此,基于Lcenter和∆X,我们可以计算车道实例Llane。通常,学习Lcenter和∆X比直接拟合Llane的关键点更容易。

3.2、特征提取器

如图2所示,SGNet以ResNet[He et al.,2016]作为特征提取器,对其进行了修改,以去除像素级预测任务的最后一个全局池化和全连接层。特征提取器有五个用于en编码的残差模块,称为Ei(πi),参数为πi(i=1,2,…,5)。为了获得更大的特征图,我们通过具有256个3×3核的卷积层对E5(π5)进行卷积,然后对特征进行×2上采样,然后与E4(π4)进行元素求和,以获得E 04(π04)。最后,对于H×W输入图像,特征提取器输出H/16×W/16特征图

3.3、消失点导向锚定

为了学习车道表示,有两种主要方法来学习中心线Lcenter和x偏移∆x。第一种方法是直接用角度、数量和位置回归来学习确定的Lcenter,由于回归任务的固有困难,通常很难获得精确的结果。第二种方法是基于成熟的检测任务,使用密集锚进行分类、回归,然后获得代表车道实例的建议。第二个模型已被证明在一般的对象检测任务中运行良好,因此我们选择它作为我们的基本模型。

学习中心线Lcenter和x偏移∆x,我们提出了一种新型的消失点导向锚定机构(称为VPG锚定)。消失点(VP)提供了强烈的几何场景特征,代表道路的尽头,也是车道在远处相交的“虚拟”点。由于VP是车道的交叉点,因此场景中的车道必须通过VP,而不通过VP的线很可能不是场景中的行车道。因此,从VP辐射出的密集线理论上可以覆盖图像中的所有车道,这相当于将chors的生成空间从R H×W×Nproposal缩小到R Nproposable。Nproposal表示在一个像素上生成的锚的数量。

如图2所示,特征图E04(π04)被馈送到VPG Anchoring。在该机制中,VP由一个简单的分支预测,该分支由多尺度上下文感知的atrous空间金字塔池(ASPP)[Chen et al.,2018]实现,然后是具有3×3的256个内核的卷积层和softmax激活。VP预测分支表示为φV(πV),参数为πV。

通常,VP在车道数据集中没有注释,例如CU lane[Pan et al.,2018],因此我们对所有车道实例的中心线交点进行平均,得到近似的VP。此外,单个点通常很难预测,因此我们将VP的区域扩展到16个像素的半径,并使用分割算法进行预测。为了实现这一点,我们期望φV(πV)的输出通过最小化损耗来近似VP(表示为GV)的地面实况掩码

其中BCE(·,·)表示像素级二进制交叉熵损失函数。

 图4、VP引导的锚固机构。基于(a)消失点(黑点)和(b)消失点周围的区域(黑色和灰色点)生成的锚点(金线)。

为了确保生成的锚足够密集,我们选择了一个以VP为中心的Wanchor×Wanchor矩形区域,并以每个Sanchor取一点来生成锚。对于每个点,每个Aanchor角(Aanchor∈[0180])都会生成锚,如图4所示。通过这种方式,与一般的全尺寸均匀生成甚至专门设计的车道方法相比,锚是有针对性的、密集的且不冗余的[Li et al.,2019]。请注意,锚贯穿整个图像,为了方便显示,图2和图4中只显示了VP下方的部分。

3.4、分类和回归

为了对生成的锚点进行分类和回归,我们提取了基于E4(π4)的具有多个卷积层的高级特征图。特征图命名为FA∈R H0×W0×C0,其中H0、W0和C0是FA的高度、宽度和通道。对于每个锚点Llane,从FA中提取锚点上每个点的通道级特征,得到车道描述符DA∈R HO×C0。该描述符用于对存在的ConfLlane进行分类,并回归x偏移∆XLlane,包括车道的长度len。为了了解这些,我们期望输出通过最小化损失来近似地面实况存在GConf-Liane和x偏移G∆XLlane

 其中SL1(·,·)表示平滑的L1损失,L表示提议的数量。最后,使用Line NMS[Li et al.,2019]来获得具有置信阈值的最终结果。

3.5、多层结构约束

为了进一步提高车道感知,我们要求场景和车道之间的结构关系,并深入探索像素级、车道级和图像级的结构。

像素级感知

自上而下的VPG锚定机制涵盖了车道的结构和分布。同时,还需要自下而上的细节,以确保更准确地恢复和描述车道细节。为了提高细节感知,我们引入了车道分割分支来定位车道位置,并提高了像素级的一元细节。如图2所示,车道分割分支与VP预测分支具有相同的输入和相似的网络结构。车道分割分支表示为φP(πP),参数为πP。为了分割车道,我们期望PP=φP(πP)的输出通过最小化损失来近似二进制车道掩码(表示为GP)的基本真值掩码

 为了提升像素级一元细节,我们通过以下操作对输入特征FA进行加权

 其中MA被馈送以进行分类和回归,而不是FA。

车道级别关系

事实上,车道在施工过程中符合一定的规则,其中最重要的是车道是平行的。由于成像的原因,这种关系在透视变换后不再保持,但它可以潜在地建模。为了对车道级别关系进行建模,我们通过神经网络通过H矩阵[Neven et al.,2018]进行IPM。学习H后,可以将站姿Llane中的车道转换为鸟瞰图中的L 0lane,其中不同的实例是平行的。形式上,我们定义车道之间的关系如下。对于图像中的两个车道实例Llane1和Llane2,通过学习的H矩阵将它们投影到鸟瞰图,并获得相应的实例L 0lane1和L 0lane2。这两个实例可以拟合为以下线性方程:

在这两个方程中,在y相等的条件下,x的差总是恒定的。因此,我们可以得到a1b2=a2b1。扩展到所有实例,车道级别关系可以公式化为

图像级别的注意

在相机成像过程中,远处的物体经过投影后会变小。通常,车道的重要信息在视觉上并不突出,但它们同样重要。分析发现,在成像过程中,车道与VP的距离与尺度成反比。因此,我们基于VP生成透视注意力图PAM,这是基于成像后的注意力和距离是二维高斯分布的强假设。PAM通过自适应地限制分类和回归损失(来自等式5)来确保不同区域的注意力,如下所示。

 其中|·|表示归一化为[0,1]。

通过考虑等式(4)、(5)、(6)、(9)和(10)的损失,整体学习目标可以公式化如下:

其中P是{{πi}5i=1,π04,πV,πC,πR,πP,πL}的集合,πC、πR和πL分别是分类、回归和车道级关系子网络的参数

 图5、最先进的算法和我们的方法的定性比较

个人总结

三个问题

1、缺乏统一有效的车道表示(各个算法表示车道的方式不一样)

2、很难对场景和车道之间的结构关系进行建模(转成BEV之后车道线是平行的,前视图中车道线有共同的消失点)

3、预测车道的同时,预测其他属性,例如实例分割、车道线类别

车道描述

参考图3

整体理解

这篇论文整体还是有些意思的,但是流程太多了,作者也没开源代码,应该是在这吹牛呢

个人觉得比较有意思的地方是车道线的描述方式、用卷积的方式预测车道线消失点、根据车道线消失点预设anchor、将得到的车道线转俯视图然后旋转修正车道线的位置

作者首先一顿卷积,然后分了三个头,一个用来预测车道线的消失点;一个跟根据车道线的消失点设置anchor;最后一个头进行语义分割得到第一版的车道线。将anchor的结果和语义的结果进行拼接,得到特征图。根据特征图对车道线进行描述得到第一版的实例车道线。将第一版的实例车道线和特征图进行拼接,然后在BEV上对车道线进行调整得到终版的实例车道线。

Feature Extractor:

公用的特征提取层

VP-guided Anchoring Generator:

上面那张图用来预测图像中的消失点

下面这张图根据消失点预设anchor

Image-level Attention:

消失点注意力

Pixel-level Perception:

语义分割,预测车道线(非实例)

Feature Map:

根据预设的anchor和语义分割结果生成特征图

Lane Descriptor:

根据特征图结果描述车道线的各个属性:车道长度、偏置、置信度、类型

得到第一版实例车道线

Lane-level Relation

将特征图和第一版实例车道线进行拼接,然后转BEV图,作者认为BEV图中车道线应该是平行的,因此作者在BEV图上对得到的车道进行旋转,然后得到第二版的实例车道线

论文地址

https://arxiv.org/abs/2105.05403

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

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

相关文章

手搓 自然语言模型 各种对比数据

基础模型和设计思想 最优网络结构 import paddle import numpy as np from tqdm import tqdm class EmMask(paddle.nn.Layer):def __init__(self, voc_size19, hidden_size256, max_len48):super(EmMask, self).__init__()# 定义输入序列和标签序列self.embedding_layer pad…

Unity3d C#快速打开萤石云监控视频流(ezopen)支持WebGL平台,替代UMP播放视频流的方案(含源码)

前言 Universal Media Player算是视频流播放功能常用的插件了,用到现在已经不知道躺了多少坑了,这个插件虽然是白嫖的,不过被甲方和领导吐槽的就是播放视频流的速度特别慢,可能需要几十秒来打开监控画面,等待的时间较…

我的第一个前端(VS code ,Node , lite-server简易服务器,npm 运行)

第一种方式:使用Visual Studio Code创建并运行 第一个前端项目的步骤,如下: 1. 下载和安装Visual Studio Code: 访问Visual Studio Code官方网站(Visual Studio Code - Code Editing. Redefined)并根据你…

二十三种设计模式第二十篇--备忘录模式

备忘录模式,备忘录模式属于行为型模式。它允许在不破坏封装的情况下捕获和恢复对象的内部状态。保存一个对象的某个状态,以便在适当的时候恢复对象,该模式通过创建一个备忘录对象来保存原始对象的状态,并将其存储在一个负责管理备…

133. 克隆图

给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。 图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。 class Node { public int val; public List&…

互联网医院系统开发:打造便捷高效的医疗服务平台

随着互联网技术的飞速发展,互联网医院系统的出现为医疗行业带来了许多新的机遇和优势。互联网医院系统是一种基于互联网技术的医疗服务平台,旨在提供便捷、高效、个性化的医疗服务。下面将介绍互联网医院系统开发的优势。   提供便捷的医疗服务&#x…

【模仿学习】:离线和在线模仿

一、说明 模仿学习(Imitation Learning )是机器学习的一种,代理通过观察和模仿专家的行为来学习。在这种方法中,为代理提供了一组所需行为的演示或示例,并通过尝试复制专家的行为来学习输入观察和输出操作之间的映射。…

【单机多卡】torch改造代码为DDP单机多卡分布式并行

torch分布式数据并行DDPtorch.nn.parallel.DistributedDataParallel代码修改记录。(要求pytorch_version>1.0) 目录 1.🍄🍄要修改的地方概览 2.✏️✏️初始化 3.✏️✏️设置当前进程GPU 4.✏️✏️设置sampler 5.✏️✏…

HTML笔记(1)

介绍 浏览器中内置了HTML的解析引擎,通过解析标记语言来展现网页;HTML标签都是预定义好的;Java工程师:后台代码的编写,和数据库打交道,把数据给网页前端的工程师;网页前端工程师:写H…

拯救者Y9000K无线Wi-Fi有时不稳定?该如何解决?

由于不同品牌路由器的性能差异,无法完美兼容最新的无线网卡技术,在连接网络时(特别是网络负载较大的情况下),可能会出现Wi-Fi信号断开、无法网络无法访问、延迟突然变大的情况;可尝试下面方法进行调整。 1…

go 如何知道一个对象是分配在栈上还是堆上?

如何判断变量是分配在栈(stack)上还是堆(heap)上? Go和C不同,Go局部变量会进行逃逸分析。如果变量离开作用域后没有被引用,则优先分配到栈上,否则分配到堆上。判断语句:…

Stable Doodle:Stability AI推出的一款零门槛AI绘画神器

Stable Doodle是由Stability AI推出的一款零门槛AI绘画神器,可以将简单的草图转化为精美的图像。它可以将随手的塗鴉草稿转化为高畫質的完成圖,让用户能够以更快的速度将想法转化为精美的艺术作品。Stable Doodle利用最新的Stable Diffusion模型&#xf…

智能车域控制器设计

摘要: 本文主要针对ADCU从硬件设计到软件设计的开发流程进行详细阐述,主要包含了需求场景、关键硬件电路、电路可靠性、AUTOSAR架构、CAN通信简介、CAN通信软件设计等。最后基于以上硬件技术和软件技术开发出一款产品级智能驾驶域控制器。 // 智能驾驶域控制器研究现状 //…

iOS开发-实现自定义Tabbar及tabbar按钮动画效果

iOS开发-实现自定义Tabbar及tabbar按钮动画效果 之前整理了一个继承UITabbarController的Tabbar效果 查看 https://blog.csdn.net/gloryFlow/article/details/132012628 这里是继承与UIViewController的INSysTabbarViewController实现及点击tabbar按钮动画效果。 一、INSysT…

学习记录——TransNormerLLM

Scaling TransNormer to 175 Billion Parametes 线性注意力的Transformer大模型 2023 Transformer 存在局限。首要的一点,它们有着对于序列长度的二次时间复杂度,这会限制它们的可扩展性并拖累训练和推理阶段的计算资源和时间效率。 TransNormerLLM 是首…

中小企业如何低成本实施MES管理系统

中小企业在市场竞争中需要有高效的管理体系来支持其运营和发展。中小企业MES管理系统是一种先进的管理系统,可以提升工厂智能化水平,提高生产效率,是中小企业必须采取的有效管理工具。然而,由于资金和技术的限制,中小企…

Java API指南:掌握常用工具类与字符串操作

文章目录 1. API简介2. Java API的使用2.1 创建和使用Java API工具类2.2 使用String类进行字符串操作 结语 导语: Java作为一门功能强大的编程语言,其成功之处不仅在于语法结构的简洁明了,更因为其丰富的API(Application Programm…

面向对象中的多态性

一、权限修饰符 public, 缺省, protected,private 二、this和super关键字 this:表示当前对象 super:表示父类声明的成员 原则:遵循就近原则和追根溯源原则。 三、Object类 java.lang.Object类是所有java类的超类,即所有的J…

微信小程序测试要点

一、什么是小程序? 可以将小程序理解为轻便的APP,不用安装就可以使用的应用。用户通过扫一扫或者搜索的方式,就可以打开应用。 小程序最主要的特点是内嵌于微信之中,而使用小程序的目的是为了能够方便用户不在受下载多个APP的烦…

更好搭建负载测试环境的六个技巧

如果你如我昨天谈到的客户一样,花费了24到48个小时用于每个负载测试环境的搭建,那你的测试及构建部署能力绝对是受限的。 搭建一个仿真测试环境对于做好负载测试非常重要,同时它也是一个非常具有挑战性的任务,需要考虑技术解决、…