摘要
自主导航需要道路网络的结构化表示和其他交通代理的实例识别。由于交通场景是在地平面上定义的,因此这与鸟瞰视图(BEV)中的场景理解相对应。然而,自动驾驶汽车的车载摄像头通常水平安装,以便更好地观察周围环境,这使得这项任务非常具有挑战性。在这项工作中,我们研究了如何从单个车载摄像头图像中提取一个以BEV坐标表示局部道路网络的有向图的问题。此外,我们还证明了该方法可以推广到BEV平面上的动态目标检测。检测到的对象的语义、位置和方向以及道路图有助于全面理解场景。这种理解对于下游任务(如路径规划和导航)至关重要。我们根据强大的基线验证了我们的方法,并表明我们的网络实现了优异的性能。我们还通过烧蚀研究展示了各种设计选择的效果。
引言
道路场景理解对于自动驾驶至关重要,因为它形成了感知和规划之间的接口。基本任务是了解道路网络结构和周围的其他交通代理。目前,go-to解决方案是结合模块化perception堆栈的离线生成高清地图[22,41,30,36,8]。要使现有解决方案发挥作用,不仅需要在高清地图中进行精确定位,还需要了解场景的动态部分[30,44]。为了达到这些要求,大多数解决方案使用多个传感器,包括摄像头和激光雷达。然而,使用昂贵的传感器和离线高清地图限制了自主驾驶的可扩展性,因为它们增加了运营成本,并限制了自动驾驶汽车在地理限制区域的运营。
在这项工作中,我们提出了一种端到端的视觉方法,该方法仅在给定前向摄像头图像的情况下执行车道图提取和目标检测。我们的方法直接估计道路网络的图形结构和表示各车道中心线的样条曲线,如图1所示。除了估计道路图,我们的模型还可以直接在BEV平面上检测车辆、行人等物体,如图2所示。我们方法的输出格式非常适合下游规划[2,9]和预测[12,45,20,37]任务,这些任务需要车道图以及对象的位置和类别。事实上,也可以通过观察现有数据集(如[4])提供的标签来理解这种需求,这些数据集以结构化形式提供标签。
通常,现有方法将结构化标签映射到其他形式,如语义掩码,以执行场景理解[14]。然而,下游任务需要这些理解的结构化形式[26,34,25,19]。
理解高清地图是一个具有挑战性的问题,主要是由于复杂的拓扑变化。从一幅图像中连贯地恢复这样的拓扑结构仍然是一个尚未探索的问题。这项工作首次解决了这一具有挑战性的问题,同时还直接在BEV坐标系中检测场景中的对象。
现有工作的重点是(i)从密集3D点提取高清地图[19],或(ii)从单个图像检测道路车道[21]。其他变体,如BEV语义理解,也存在[40,29,32]。请注意,[19]的HDmap重建在拓扑上比[21]的车道检测问题更具挑战性。我们的工作目标是使用[21]的图像输入设置来实现类似于[19]的结果。此外,我们的目标是使用与结构化高清地图预测相同的模型检测对象。
我们将HD地图表示为BEV坐标系下的有向图,其边缘为路段,方向表示交通流。我们使用带有起点和终点的贝塞尔曲线对每个路段进行建模。预测段之间的连接使用分配矩阵建模。对于预测,我们使用变压器网络,该网络在输出端使用匈牙利算法进行监督。预测的路段及其连通性定义了完整的车道图HD地图。我们的变压器网络进一步预测2D BEV对象的参数。对象预测分支是受监督的,类似于路段。图2显示了我们的车道图高清地图和目标估计方法的两个示例输出。为此,我们的主要贡献可总结如下。
•我们提出了一种从单个车载单目摄像机图像进行结构化BEV道路网络图估计和目标检测的统一方法。
•所提议的方法获得的结果明显优于比较基线。
相关工作
道路网络提取:道路网络提取的早期工作使用航空图像[13,39]。基于相同的设置,最近的作品[3,42,43]更有效地执行网络提取。然而,基于航空成像的方法只能提供粗略的道路网络。这样的预测可能对路由有用,但是,对于行动计划来说,它们不够精确。
高清地图:在文献中,高清地图通常使用聚集的2D和3D视觉信息离线重建[25,18,26]。虽然这些工作是我们工作背后的主要动机,但它们需要3D点云进行精确的高清地图重建。更重要的是,离线方法在一些标准帧中恢复HD贴图。因此,在许多情况下,使用恢复的地图需要精确定位。在这方面,我们的工作类似于[17],其中车道边界以多段线的形式在公路上检测。这项工作的扩展[17]使用递归神经网络在3D点云中生成初始边界点。然后将初始点用作预测车道边界的多边形RNN[1]的种子。
我们的方法在两个主要方面与[17]不同:(i)点云与单个图像输入的对比,(ii)无限制设置中的公路车道边界与车道中心线的对比。
BEV语义理解:由于其实际用途,BEV中使用图像的场景理解最近受到了广泛关注[40,35,5]。有些方法还将图像与激光雷达数据相结合[33,16]。在这方面,在[40,31]中开发的方法使用单个图像来理解BEV HD地图语义。类似地,在[5]中提出的方法将视频数据用于相同的任务。
这类方法不提供适合许多下游任务的结构化输出。这些方法可用于一般场景理解。然而,它们在运动规划和导航任务中的使用并非微不足道。此外,据我们所知,没有任何现有方法使用单个图像输入对BEV进行实例级预测。注意,本文提出的方法使用一幅输入图像和一个神经网络同时预测高清地图和道路对象。
方法
我们模型的核心任务是生成一个有向图,该图表示BEV坐标系中的道路网络,仅给出安装在车辆上的前向摄像头的单个图像。为了完全理解交通场景,我们的模型还以BEV边界框的形式输出对象实例。这两项任务都需要对3D空间进行推理,并将所有信息投影到车辆移动的BEV地平面上。
在本节中,我们首先介绍我们的可训练车道图结构,并描述对象表示。鉴于这些构建模块,我们将介绍基于变压器的模型,并解释如何训练神经网络。
3.1车道图表示
为了获得局部道路网络的结构化表示,我们构建了车道中心线线段的有向图,通常称为车道图。设此有向图为G=(V,E),其中V是图的顶点(中心线)和边E⊆ {(x,y)|(x,y)∈ v2}表示这些中心线之间的连通性。连通性可通过关联矩阵I进行总结图G=(V,E)的。因此,让我们定义两条中心线x和y何时连接;中心线x连接到另一条中心线y,即(x,y)∈ E当且仅当中心线y的起点与中心线x的终点相同时。根据此定义,如果中心线x和y连接,则关联矩阵I[x,y]=1的条目。
请注意,我们没有应用硬要求来生成非循环图,但由于我们关注的是具有有限视野(FOV)的单个图像,因此循环很少发生。因此,关联矩阵通常具有非循环图的结构,其中主对角线为零,对称项之和最多为一。最后,生成的关联矩阵还包含有关交通流方向的关键信息,这是理解车道网络的基础。
建立图形后,我们需要对每个中心线(图形的顶点)进行数学建模。在这项工作中,我们考虑每个中心线作为贝塞尔曲线。贝塞尔曲线映射标量参数t∈ [0,1]到R中的某个点∆ .
我们对车道图的2D曲线感兴趣,因此∆ = 2.曲线可以写成控制点P={p0,p1,…,pn}的加权和,其中pi∈ R2。给定控制点,由t参数化的曲线 B被定义为B(t)=k=0 nk(1− t) n−k t k P k。更紧凑的基于矩阵的公式是简单的B(t)=Γ(t,n)P,其中Γij(t,n)=nj(1)− t i)n−j t ji表示权重矩阵,P=[p0,p1,…,pn]是所有控制点的向量。使用这种表示法,在给定一些观测点Y=[y0,y1,…,yt]的情况下,找到最优控制点相当于解决一个最小二乘问题,即P∗ = 精氨酸最小值∥Γ(t)P− Y∥. 贝塞尔曲线非常适合于中心线,因为它允许我们使用固定数量的二维点对任意长度的曲线建模。因此,给定我们的图形和中心线表示,整个车道图具有固定大小的可学习表示,其中网络可以根据Bezier控制点和图形的连通性学习中心线。
3.2目标表示
我们的方法还产生对象实例检测,以补充车道图,并提供完整的交通场景理解。与语义分割不同,实例输出定位和识别单个对象。我们将每个实例表示为规范化BEV坐标中的二维长方体。为了完全指定这样一个长方体,需要五个参数:中心点的位置、短边和长边长度以及航向角。从这些参数可以简单地转换为四个角点位置,反之亦然。除了实例的本地化和定向之外,我们还使用一个热表示生成它们的语义/对象类。给定此表示,实例将被完全标识。
3.3架构
我们将每个中心线和对象实例建模为一个固定大小的向量。因此,我们可以在提案生成和分类的框架内工作。这已广泛应用于实例分割和对象检测领域[38,15,7]。我们公式的一个关键特性是,在形成车道图时,不同中心线之间的关系很强。但是,由于在交通场景中,对象跟随中心线,因此中心线和对象之间也有很强的关系。为了充分利用这种依赖性,我们采用了[7]中提出的基于变压器的模型,它允许我们训练一个用于车道图和对象理解的联合模型。
[7]中提出的基于转换器的对象检测器使用图像主干特征和可学习的查询向量生成对象建议。我们遵循类似的方法,但我们使用两组学习的查询向量Q∈ R C:一组用于中心线,一组用于对象。这些向量的数量高于任何场景中可能出现的最大中心线/对象。这些查询向量由transformer联合处理,transformer为每个查询输出一个建议向量。这些矢量对完全识别中心线或对象所需的所有信息进行编码。进一步处理这些建议向量中的每一个以生成输出。该处理在单独的车道和对象分支中完成,该分支输出车道图和对象检测。
总体架构图3
3.3.1车道图
处理变压器输出向量的两个分支中的第一个分支是车道分支,它有四个部分:
检测头:变压器输出由多层感知器(MLP)处理,该感知器具有输出softmax层。
该输出给出了由相应查询向量编码的中心线存在的概率。
控制头:具有2×R输出神经元的MLP+乙状结肠层,编码R贝塞尔曲线控制点。
关联头:为每个中心线向量输出δ维关联特征向量的MLP,其中δ<C。分类器使用这些关联特征建立估计中心线的连通性。
关联分类器:MLP+sigmoid层,以两条中心线对应的两个δ维关联特征向量作为输入。该层输出输入中心线对关联的概率。
作为估计图形的第一步,我们提取单个中心线。这是由探测头和控制头完成的。这些线构成图G=(V,E)的顶点V。假设选择了N条中心线,关联头处理相应中心线的特征向量,以产生低维关联特征向量F∈ rn×δ。然后,我们得到关联输入A∈ rn×N×2δ,其中A ij=concat([F i,F j])。
该输入对图形的方向性进行编码。MLP处理矩阵A以产生关联矩阵概率。请注意,MLP的输入维度为2δ,N×N是批量大小。因此,建议的中心线数量没有限制。
在训练过程中,我们首先输出中心线控制点和检测概率,并在估计的中心线和地面真相(GT)中心线之间应用匈牙利匹配算法。对匹配的估计值执行关联步骤。在推理过程中,我们对中心线的检测概率设定阈值,并对活动线执行关联步骤。
3.3.2目标分支
处理transformer建议向量的第二个分支是对象分支。该分支由两个模块和一个可选的后处理网络组成。
检测头:变压器输出由具有softmax输出层的MLP处理,以产生类别概率分布,包括“未检测”类别。
5-params head:一个MLP+sigmoid层,用于生成定向对象框的规范化参数。
细化网络:虽然实例输出适用于许多任务,但它也有助于生成场景的语义分割贴图。对于行人和自行车等小物体来说尤其如此,在这些物体中,单台车载摄像机很难在BEV中定位。因此,我们提出了一个可选的后处理网络,该网络使用我们的细化网络将实例估计转换为语义分段。细化网络的结构类似于[6]中的BEV解码器,其中较低分辨率的输入被放大以提供细粒度的分割图。网络运行如下:有C+1类,包括背景,感兴趣区域为H×W维。我们首先将5个参数的输出转换成一个框,并将这个框与类概率相乘。该P产生尺寸为H×W×(C+1)的矩阵M,其中对于位于边界框中的所有栅格位置(H,W),i M H,W,i=1,否则为0。然后我们将所有这些矩阵求和,并将它们裁剪为(0,1)。结果再次为尺寸H×W×(C+1)。为了让细化网络了解图像中的视觉线索,我们还包括主干特征。由于边界框位置在BEV坐标中,我们将主干特征扭曲到BEV,并在上采样中使用扭曲的跳过连接。
3.3.3BEV位置表示
因为变形金刚没有位置的概念,所以使用位置嵌入(PE)来增加空间感知。
我们对变压器使用两种不同的位置嵌入。第一种方法对图像域空间信息进行编码,与[7]类似,我们在归一化累积位置上使用正弦函数。第二组位置嵌入对给定像素的对应BEV位置进行编码。为此,我们假设一个平面,其中每个真实世界的点都有高度−C h,其中C h是相机高度。生成的网格在图像坐标中非常密集,对应于靠近摄影机的真实世界点,而在更远的位置则非常稀疏。为了向网络提供更统一的位置线索,我们使用BEV位置的对数。为了生成位置编码,我们取累积和,标准化,并将其转换为正弦曲线。我们设计了两个位置嵌入(image和BEV),使得它们是输入特征映射的通道大小的一半。因此,我们可以将图像位置嵌入添加到一半通道,而将BEV位置嵌入添加到另一半通道。选择此设计的主要原因是图像上半部分的BEV坐标未定义,但它们仍然为该区域中的对象的网络提供重要线索。简单地添加这两个位置嵌入将导致图像下半部分出现重复和不一致的值。我们将这种双位置嵌入的使用称为分割位置编码。
3.3.4训练
由于车道和目标分支都会产生类似检测的输出,因此我们在训练期间对估计值和地面真实值使用匈牙利匹配。匹配损失用于车道和对象类似。两者的形式均为L m=L CE+λL 1,其中L CE是检测/分类概率的交叉熵损失,L 1分别是直线和对象的Bezier控制点位置/框参数的1-范数损失。对于中心线和目标分支,训练检测损失都是交叉熵。控制点和对象5参数输出使用L1损耗进行训练,对象角度除外。自180年以来◦ 对象翻转很难区分,我们只预测α范围内的角度∈ [0,π]并使用形式为L角=|cos(2α)的平滑sin/cos L 1损失对其进行训练− cos(2φ)|+sin(2α)− sin(2φ)|,其中φ是GT角。我们使用交叉熵损失独立地训练细化网络,而不是通过网络的其余部分反向传播。
指标
由于我们的问题设置是新的,因此缺乏合适的绩效评估指标。我们希望测量真实有向图复制的性能。为此,我们使用三个指标来突出有向图的不同方面。
4.1精确召回
在[24,17]之后,我们计算了不同距离阈值下匹配中心线的精确召回率。我们首先用贝塞尔系数上最小的L1损失将每个估计值与目标匹配。因此,与[24]类似,多个估计可以与同一目标匹配,而每个估计只能与一个目标匹配。然后我们对估计的系数进行插值,得到密集的中心线。请注意,在匹配过程中使用控制点与使用插值点有根本不同,因为基于控制点的匹配会考虑方向。因此,如果插值点匹配,则只有控制点顺序相反(起点和终点交换)的两条中心线是相同的。然而,在我们的控制点匹配方法中,它们相距甚远。
在基于控制点进行匹配,然后进行插值之后,真阳性是到匹配GT线的阈值距离内的估计插值点,否则为假阳性。假阴性是指GT线上不在任何匹配估计线的阈值距离内的点。请注意,此指标不会惩罚遗漏的中心线,即与任何估算不匹配的真实中心线。这是有意的,因为该度量的重点是测量估计值与匹配的GT中心线的拟合程度以及捕获的子图的表示精度。
4.2检出率ratio
为了测量精度召回指标中存在的上述缺失中心线问题,我们计算了检测率。这只是在GT中心线总数中至少有一条估算线与之匹配的唯一GT中心线的数量。精确召回的高分和低检测分数意味着估计的中心线接近匹配的真实中心线,但大部分GT中心线未被检测到。反之,则意味着估计的中心线覆盖了真实的道路网络,但不能忠实地表示结构。
这两个指标总结了整个图G顶点上的性能。但是,我们仍然缺少一个指标来评估图边上的性能,即连通性。
4.3连通性
为了测量估计的中心线的关联程度,我们提出了一种基于精确召回的度量,称为连通性度量。假设估计的二元关联矩阵为E,GT关联矩阵为I。假设M(I)是与第I个估计匹配的目标的索引,S(n)是与目标n匹配的估计的索引集。如果(M(i)=M(j))|(i(M(i),M(j))1),则正条目eij为真正,否则为假正。另一方面,假阴性是关联矩阵im,n的正条目,其中∄ (i,j):((i)∈ S(m))及(j)∈ S(n))&(ei,j1))。
此度量捕获估计图的连接模式与GT图的接近程度。使用此度量,将真实中心线分割为多个估计值并不是问题,只要它们是相关联的。图中给出了三个指标的一些图解
5实验
5.1数据集
我们使用由波士顿和新加坡记录的1000个序列组成的NuScenes[4]数据集。序列以2Hz进行注释,数据集以中心线的形式提供高清地图。数据集还提供了23个对象类的三维边界框。对于我们的实验,我们选择了最常见的类别:汽车、卡车、公共汽车、行人、自行车和摩托车。我们只使用前摄像头进行培训和评估。
给定特定中心线的真实坐标集,我们首先将这些坐标转换为当前参考帧的摄影机坐标系。我们使用目标BEV地图分辨率对这些点重新采样,并丢弃感兴趣区域(ROI)之外的任何点。然后,根据ROI的边界将这些点转换为标准化坐标。这会产生一组介于[0,1]之间的点,我们从中提取贝塞尔曲线的控制点。地面真值标签和估计值在标准化控制点坐标中。
5.2实施
我们使用大小为448x800的图像,目标BEV区域在x方向从-25米延伸到25米,在z方向从1米延伸到50米。BEV分辨率设置为25厘米。鉴于道路的常见结构,表示中心线线段的曲线的可能复杂性是有限的。
因此,我们使用三个贝塞尔控制点。我们对中心线和对象使用两组100个查询向量:一组用于右侧(波士顿),另一组用于左侧交通(新加坡)。
主干网络是在Cityscapes数据集[11]上预训练的Deeplab v3+[10]。在Pytorch中实现。
该方法以11FPS运行,不进行批处理,包括所有关联和细化步骤。
5.3基准
由于没有任何方法处理从单目图像进行的结构化BEV道路网络估计,我们生成了两条基线。第一条基线基于[17],作者从点云生成车道边界。我们采用他们的方法处理图像并输出中心线,而不是车道边界。
为了实现这一点,我们使用GT投影矩阵将图像的Deeplabv3+[10]主干特征投影到BEV。
我们将x-y网格位置与该主干特征图连接起来,类似于[28]。核心层完全连接的子网接受该输入并输出49×50点的网格。我们测试了一个类似于原始工作的卷积RNN,但由于视野受限,在我们的设置中没有获得令人满意的结果。请注意,从聚合激光雷达扫描中查找高速公路车道边界的原始任务与在城市交通场景中查找初始中心线点的任务有很大不同。此外,RNN需要大量迭代,特别是考虑到一个帧包含40多条中心线。因此,我们使用了由几个剩余块支撑的完全连接层,见图5。给定初始位置和主干特征,多边形RNN[1]生成中心线的下一个控制点。我们将多边形RNN的迭代次数固定为用于编码中心线的样条曲线系数的数量。我们使用焦点损失[27]进行初始点估计,并使用L1损失监督多边形RNN的控制点估计。
在训练中,多边形RNN使用类似于[17]的GT初始点。为了进行测试,我们对网络的初始点估计设置阈值,并将其反馈给多边形RNN。为了指示交通的方向,我们向初始点估计器提供了一个二进制指示符变量。关联估计使用多边形RNN的最终特征映射,使用与我们网络中相同的方法进行。作为参考,我们还报告了使用GT初始点的多边形RNN的结果。
或者我们的第二条基线,我们使用[23]的SOTA方法提取车道边界。使用GT变换将提取的车道边界投影到BEV网格上。给定这些车道边界,我们形成最接近的对,并使用样条曲线计算中心线。由于这种方法没有给我们一个方向,我们在评估期间使用预测的和翻转的中心线版本,这意味着PINET匹配是无方向的。从某种意义上说,PINET估计是手动指定的正确方向。
为了评估我们方法的实例估计,我们将其与VED[29]、VPN[32]和PON[40]进行比较。
我们使用[40]中建议的相同列车/val拆分车道图和目标检测。对于对象标签生成过程,我们也遵循[40]。为了比较结果,我们使用mIOU度量。然而,为了将来的参考,我们还提供了精确召回结果。
结果
由于我们的方法生成了道路网络图和动态对象实例估计,因此我们将结果分为两部分,分别研究它们。
6.1车道图
获得的结果如表1所示。图1和图7,其中,与基线相比,我们的方法在所有度量中实现了最佳结果。正如预期的那样,PINET的性能较低,因为中心线是通过处理车道边界获得的。从Poly(Est)和Poly(GT)的结果可以看出,初始点的定位非常困难。我们的方法产生了比Poly(Est)更好的精确召回率,并且检测和连接性得分的差异是显著的。
Poly(Est)在连接性度量方面受到影响并不奇怪,尤其是连接性召回。该指标与检测分数密切相关,遗漏的中心线将受到处罚。我们的方法对多边形(GT)的连接性精度以及检测分数的性能表明,我们的方法在检测到的子图中产生更少的假阳性关联,并且产生更多的准确地估计图表。期望Poly(GT)在精确召回和检测指标方面具有优势。由于大多数中心线相对较短,且与初始点的偏差有限,因此了解GT初始点具有明显的优势。然而,它的性能验证了所选基线的强度。
车道图的视觉结果如图10所示。目视检查表明,我们的方法通常产生更好的结果。在最后一幅图中,我们的方法遗漏了一些中心线。总的来说,我们的方法产生了更忠实的表示。另一方面,多边形(GT)生成的中心线在欧几里德意义上与匹配的GT线有些接近。然而,整体图估计比我们的差。这显示了我们的方法优于Poly(GT)的连通性度量的威力。
6.2目标
在选项卡中。3.将我们网络的优化净输出与SOTA方法进行了比较。其他方法通常会对稍微多一些的类进行估计。但是,考虑到我们会生成结构化实例输出以及车道图,我们选择了最常见但最全面的类集。我们的方法在一半的类和平均度量上超过了PON。特别是“汽车”类别的差异相当显著。
图8给出了物体估计的视觉结果。
竞争的方法倾向于blob分割和使实例更难分离。与我们的原始估计相比,我们的净产出也受到同样的影响。尽管如此,我们的精确估计在mIOU最大化和实例分离之间取得了很好的平衡。
6.3消融实验
我们试验了两种规格的变压器。小模型有两个编码器层和树解码器层,而大模型有四个编码器层和四个解码器层。我们尝试使用普通的位置嵌入和带对数和不带对数的分割嵌入。结果表中给出了这些参数。2,其中对象结果以mIOU为单位,没有细化网络。我们观察到,我们的分割嵌入日志有助于对象、精度和检测分数,同时会导致连接IOU下降。总的来说,差异相当小。由于其在目标和车道结果方面的良好整体性能,我们选择了“大+分割对数”模型作为最终模型。当所选模型的目标结果与有无细化网络进行比较时,差异相当显著。细化网络将性能提高了5.7个百分点(以百万分之一为单位)。
结论
我们提出了一种新的基于有向图和贝塞尔曲线中心线的局部道路网络可学习表示方法。此表示用于训练基于变压器的神经网络架构,该架构可从单个车载图像预测完整的车道图结构。我们还提出了一组适合于评估基于图形表示的结构化场景理解性能的指标。此外,除了车道图,我们的模型还提供了BEV对象实例,从而提供了对本地交通场景的全面理解。我们与强大的基线进行了广泛的实验比较,证明了所提出的方法在车道图和目标检测任务中的优越性能。