Advertisement

【3D目标检测】Sparse4D: Multi-view 3D Object Detection with Sparse Spatial-Temporal Fusion

阅读量:

论文链接:该研究提出了一种名为Sparse4D的多视角三维物体检测方法,并通过融合稀疏时空特征实现了高效的检测效果;链接地址为 Sparse4D: Multi-view 3D Object Detection with Sparse Spatial-Temporal Fusion

同义表达:详细说明:
代码链接
GitHub - linxuewu/Sparse4D: Sparse4D v1 & v2

作者: Xuewu Lin, Tianwei Lin, Zixiang Pei, Lichao Huang, Zhizhong Su

发表单位: 地平线

会议/期刊:

一、研究背景

概述Sparse4D方法。针对每个候选锚点实例,在多个关键点上进行多时间戳、视图以及缩放特征的稀疏采样,并将其按层次整合成实例特征以实现对锚点的精确细化。

现有基于多模态融合的方法主要包含两种主流途径:一种是基于贝格矢量(BEV)的技术,另一种则是通过稀疏查询机制实现的方案。

然而,基于BEV的方法有3个不可避免的缺点:

改写说明

(2)最大感知范围受限于BEV特征图的尺寸:这使得在感知能力、效率与准确性之间难以实现平衡。在某些情况下,为了扩大感知范围可能会以准确性和处理速度为代价。

(3)在BEV特征空间中经历压缩的高度维度不再保留纹理信息:这表明,在处理依赖于高度信息的任务时(如路标检测),基于BEV的方法可能会表现出不足之处;由于压缩过程导致特征图的信息量减少,在精确识别和解析与物体高度相关的关键细节方面会有所欠缺。

同时,现有的基于稀疏查询的方法还有很大的改进空间:

(1)有限模型容量的表现:以DETR3D为例,在每个锚点查询中仅采样单个三维参考点来提取特征。这种做法限制了模型在捕捉和利用周围环境更为全面信息方面的能力,并因此导致其表现受限;具体而言,在捕捉和利用周围环境更为全面的信息方面的能力上存在明显不足;这种不足源于单一参考点难以充分反映物体或场景的整体复杂性

(2)由于存在一定的精度问题,在采用多视角采样的过程中,“SRCN3D”使用了RoI-Align技术来提取各组样本的图像区域。然而,在不同视角下精确对齐各组样本中的关键点表现不够理想,“但在不同视角下精确对齐各组样本中的关键点方面表现出较低的效率”。若各组关键点无法实现精准对应,“这可能导致目标定位与姿态估计的准确性受到影响”。

(3)未能充分挖掘时间维度的潜在价值:现有基于稀疏表示的方法在提取时间相关特征方面的能力仍有待提升。研究者们发现,在动态场景中捕获前后帧之间的信息能够显著改善目标检测的效果。然而,在实际应用中由于忽略了时空融合的重要性而导致现有算法表现欠佳

本文贡献:

(1)提出Sparse4D是第一个具有时域融合的稀疏查询多视图3D检测算法;

(2)开发出一种具备变形能力的4D聚合模块系统,在处理点数据、时间戳记录、不同视图展示以及数据比例分析方面表现出色。

(3)引入了深度重加权模块,以缓解基于图像的 3D 感知系统中的不良问题。

在nuScenes数据集上, Sparse4D超越现有所有稀疏算法,并超越基于BEV的多数算法;同时,在其追踪任务方面也表现出色

二、整体框架

Sparse4D 的整体架构设计基于多模态图像数据。该系统采用多视角图像数据作为输入,并通过图像特征编码器提取出多时间戳、多视图以及不同比例下的特征图数据。解码器模块由多个独立参数化的细化分支构成,并将这些预处理得到的特征信息作为输入,在不断迭代的过程中对3D锚定点进行精细调整以实现准确检测目标物体的三维位置与形状信息。

Sparse4D采用了常见的编码器-解码器架构。

图像编码器由Backbone(ResNet、VovNet)以及FPN构成。在时间t上给出N张多视图数据时,在通过图像编码器能够提取出各视图中不同尺度的特征图

I_t=egin{Bmatrix}I_{t, n, s}|1eq seq S,1eq neq Nnd{Bmatrix}

。为了利用时间上下文,将最近T帧的图像特征提取为图像特征队列

I=eftI_tight_{t=t_s}^{t_0}

,其中

t_{s}=t_{0}-

随后,在解码器中采用逐步细化的方式进行检测结果的预测,在其内部架构中集成了分层模块以及一个分类器来计算最终的分类置信度值。每个分层模块都会将图像特征序列I提取为三维锚框,并被编码为三维空间中的锚框坐标信息。

Bnathbb{R}^{Mimes11}

和相应的实例特征

Fnathbb{R}^{Mimes C}

作为输入内容,并随后输出一个具有更新后实例特征的精细3D框架。在这一过程中,M代表锚点的数量,C代表特征通道的数量,而锚点的具体格式如下:

eftx,y,z,n w,n h,n l,in yaw,os yaw,vx,vy,vzight,

所有的3D锚点都设置在统一的3D坐标系中。

对于每一个细化模块而言,在其内部首先运用自注意力机制实现实例间的互动,并集成前后的锚点参数信息。随后进行可调性的4D聚合以融合来自不同视角、尺度以及时间和关键点多模态特征。此外,在基于图像的空间三维检测中有效缓解定位不准确的问题时,则会引入深度重权机制并配合相应的算法处理这一问题。最后,在这一系列操作完成之后,则会利用回归头预测并纠正当前锚定点与实际场景间的偏差

三、核心方法

3.1 Deformable 4D Aggregation

Deformable 4D Aggregation 模块的详细流程图已制作完成,在本模块中详细说明了以下三个提取高质量实例特征的关键步骤:第一步为每个锚定点生成一组多维度的关键位置坐标;第二步则包括将这些4维关键点投影到不同时间戳、不同视角以及不同尺度下的图像特征图中,并对这些区域进行采样获取相应的描述信息;第三步则是通过层次化的方式将各个关键点处的特征向量与预估权重系数进行融合计算以最终生成完整的融合实例特征

对于第m个instance feature,通过一个线性层将4D关键点K赋值为

P_{m}nathbb{R}^{Kimes Times3}

,它由

K_F

固定关键点和

K_L

可学习的关键点组成。如上图所示,在当前时间戳t0下,将固定的关键点

P_{m,t_0}^F

将目标点精确放置于anchor box的几何中心及其六个面的中心位置,并通过可学习的关键要素实现对不同instance feature的变化中进行识别与解析。

具体而言,在每个锚点处,模型会赋予其多组4D关键点(而非DETR3D那样仅提供一个三维参考坐标系),这一选择的原因在于所涵盖的空间维度与时间维度的组合更为丰富:空间维度由x、y、z三个坐标轴定义,而时间维度则用于捕捉事件的时序特性。每个锚点所包含的关键点分为两类:

(1)固定关键点(fix keypoints):数量是

K_F

固定位置地放置于当前时间点t₀的位置上,在该锚框立方体中心及其六个面的几何中心点处设置传感器阵列以确定或定位该锚框的主要几何特征

(2)可学习关键点(learnable keypoints):数量是

K_L

不在固定位置,在每个锚点实例的基础上都是基于其属性自动生成的,并且允许网络基于其属性来改变关键点的位置。作者在这里构建了一个线性层。

hi

,其输入是实例特征

F_m

(也就是锚点框的embeddings),输入用于调整关键点位置的参数。其实就是,子网络输出的结果与锚点框的尺寸相乘,并加上锚点框的中心位置,得到最终的关键点位置。这允许关键点位置根据锚点实例的特定特征进行优化,以便更精确地捕获对分类和定位最有信息量的特征。
D_{m}=athrm{R}{yaw}doteftnathbb{R}^{K{L}imes3} P_{m, t_{0}}^{L}=D_{m}imeseft+eft

其中,

R_{yaw}

表示偏航角的旋转矩阵。

随后在上图可以看到有一个motion compensation。

因为前面说了很多,都是关于3D的信息,那么时间维度怎么样建模呢?

首先,在将关键点从当前帧推广到其他时间戳的过程中,请对每个关键点采用恒定速度模型进行处理。该模型基于假设:每个关键点在短时间内以恒定的速度移动。通过这种方式,在给定的时间间隔 Δt 的基础上预测出各个关键点在其他帧的位置变化情况。具体计算方式如下:

对于过去的时间戳t,计算从当前帧t0到t的时间间隔Δt;

使用恒定速度模型,将每个关键点在三维坐标系中沿其速度方向移动Δt时间得到的距离,这个移动是一个简单的线性位移,计算公式是:
athbf{P}{m,t}^rime=athbf{P}{m,t_0}-elta tdotdot

其中, 是关键点的速度向量。

考虑到车辆自身也在移动

由于车辆自身也在移动

考虑到车辆自身也在移动

使用从当前帧 t0 到帧 t 的旋转矩阵

R_{t_0o t}

和平移向量

T_{t_0o t}

用于变换关键点坐标。该步骤考虑了车辆自身的旋转和平移,并以确保关键点坐标准确地反映了车辆在其各个帧中的位置与朝向

最终的变换公式为

athbf{P}{m,t}=R{t_0o t}athbf{P}{m,t}^{rime}+T{t_0o t}

通过这种方式可以将关键点从车辆坐标系统映射到全局坐标系统,并体现其随时间的变化

通过这两步,能够为每个锚点实例构建出一组四维关键点

athbf{P}m=athbf{P}{m,t}_{t=t_s}^{t_0}

这些关键点坐标涵盖了从当前帧与过去的多个帧之间的关系,它们对于准确捕捉物体在时间上的运动变化至关重要,同时有助于深度估计过程的完成.

基于稀疏采样的方法,在所述的四维关键点集合P以及对应的图像特征序列F的基础上进行处理。通过变化矩阵将它们在三维空间中的位置投影到相应的二维图像特征图上。为了使三维关键点能够与相应的二维图像实现对齐以提取相关特征

P_{t,n}\mathrm{img}=\mathrm{T}_nathrm{cam}P_t,1eq neq N

一旦关键点被映射到特征图上后,在各个视角下的时间层特征图中随后采用双线性插值方法进行特征采样操作。其中双线性插值是一种常用的图像处理技术,在特定条件下对图像数据进行平滑处理以获得更精确的结果

该流程会在多个层次(即不同分辨率的特征图层)上进行反复操作,并系统性地从粗粒度到微粒度提取特征。这一机制有助于模型系统性地从粗粒度到微粒度提取物体的结构特性和细节信息。

f_{m,k,t,n,s}=athrm{Bilinear}eft

其中每一个锚点(索引m)每一个关键点(索引k)每一个时间戳(索引t)以及每一个相机视觉(索引n)和特征图尺度(索指数s)的采样结果都被组织成一个多维特征向量

f_m

,维度是

K imes T imes N imes S imes C

接着,为了生成高质量的实例特征,对fm以分层方式融合了上述特征向量。

层次结构融合

首先,系统通过特定机制完成特征的整合与融合。这一过程涉及从不同视角(camera view)以及不同尺度(scale)提取并收集特征信息。在这一阶段,预测权重(通过线性层 Ψ 计算得出)被用来对各特征进行加权处理。这种加权方式旨在使来自不同视角与尺度的特征能够按照其对检测任务的重要程度进行适当融合与综合评估。

W_m=sinathbb{R}^{Kimes Nimes Simes G}

特征被分组(由 G 个组组成),每组特征根据其通道被不同的权重加权。这类似于组卷积操作,其中每个组的特征通过加权求和方式合并,并沿视角和尺度维度进行整合。 f_{m,k,t,i}{'}=\sum_{n=1}Num_{s=1}^SW_{m,k,n,s,i}f_{m,k,t,n,s,i} f_{m,k,t}^{'}=eft

接着,将聚合后的特征在时间维度上进行融合。这通过另一个线性层 Ψtemp​ 实现,该层处理不同时间戳的特征,将它们按顺序融合。这个步骤是必要的,因为它允许模型捕捉和整合对象在时间上的动态变化,对于理解和预测对象的行为至关重要。
egin{aligned} &f_{m,k,t_{s}}{''}=f_{m,k,t_{s}}{'}   &f_{m,k,t}^{''}=si_{temp}eft   &f_{m,k}{''}=f_{m,k,t_{0}}{''}=si_{temp}eft nd{aligned}

在时间融合操作中通常会使用序列操作,在包括循环神经网络(RNN)或其他线性序列处理层的情况下能够有效整合时间序列数据。

在处理过程中, 对经过时间整合的关键点进行汇总, 从而形成最终实例特征. 这一步骤通过将它们相加来完成, 从而构建了一个综合特征向量.

F_m{{rime}}=um_{k=1}Kf_{m,k}{^{rimerime}}

核心实例特征体现了整体锚点实例的信息内容:涵盖空间位置、形态、尺寸变化以及时序特性。

3.2 Depth Reweight Module

当利用二维图像进行三维物体检测时,则面临一个本质难题:缺乏直接的深度信息。鉴于此局限性,则相同的二维图像坐标可能会映射至三维空间中的多个潜在位置,并由此产生歧义(如不同3D锚定点可能导致同一特征被采集)。这种情况下,则基于图像的空间重建更具难度。

深度重加权模块的主要目标是对检测到的实例特征进行基于深度的加权以减少这种歧义. 具体而言,该模块会评估每个锚点实例在不同深度下的可信度,并据此调整其特征权重. 从而能够显著提高模型对远处或近处物体识别能力.

在该模块中,首先通过一系列多层残差感知机(MLP)推断出每个锚点实例的深度分布参数。随后基于这些估计结果并结合3D锚点中心点的深度信息进行计算,在此过程中推导出一个深度置信度值。这个置信度反映了预测深度上锚点实例特征的信任程度。

C_m=athrm{Bilinear}ig,x_m2+y_m2ig F_m{{rimerime}}=C_mdot F_m{{rime}}

在获得深度置信度之后,这一数值便被用于加权实例特征。具体而言,在此过程中,我们通过将特征向量与其对应的深度置信度进行乘法运算来影响这些特征的重要性程度。对于那些具有较好三维中心点与预测深度位置匹配度的实例而言,在这种情况下其特征会得到加强;而对于其他情况则会相应减弱。这种方法不仅成功地将其整合到特征表示中,并且显著地提升了模型在区分前景背景以及处理不同深度物体方面的性能表现

3.3 训练细节

帧之间的时间间隔是随机采样的,取值在{dt,2dt} 中选择,这里 dt 大约为0.5秒。

损失函数包括分类损失、边界框回归损失和深度估计损失:

L=ambda_1L_{cls}+ambda_2L_{box}+ambda_3L_{depth}

分类采用Focal Loss函数用于分类损失;Box位置采用L1范数计算方法;而_depth Estimation_则选用二元交叉熵作为_loss Function_。在设计_depth Relevance Module_时,在监督每个实例时采用了标记边界框中心点作为基准参考;因为仅对单个实例进行_depth Estimation_而非全局密集层计算;从而使得训练过程无需依赖LiDAR数据源

四、实验结果

探索了重要性加权机制与关键特征点对检测性能的影响;以及运动补偿相关参数的影响。在本实验中,设定输入图像尺寸为320×800像素,并去除了可学习的关键点。其中,H代表当前帧

Ego和Object是指考虑自我车辆运动和物体运动。

细化模块和历史框架影响的消融研究。

不同方法的FLOP和参数量比较

为了减少显存占用,在训练过程中将所有历史帧的特征图进行区分,并对随机抽取的历史帧特征进行融合计算,从而得到公式T = X(-Y)的结果

nuScenes 测试数据集

以不同数量的历史帧进行训练与推断Sparse4D系统,并观察到模型性能在随时间步长的增加而持续提升。即便将帧数提升至10个(相当于5秒的历史记录长度),其性能相较于8个 frame仍有所提升。然而受限于训练设备内存资源(如V100显卡配备32GB内存),我们无法进一步测试更高数量的frame。

五、未来展望

集成多视图立体技术(MVS):基于来自多个相机视角的信息进行处理后能够实现更加精确的空间重构效果。该系统通过对比不同角度的画面并依据各角度之间的差异生成详细的三维数据模型,在现有的Depth Refinement模块中融入该技术方案后能够显著提升空间定位精度的同时也能有效降低计算复杂度

考虑到相机参数:在编码器中加入相机参数(例如焦距、光圈、传感器尺寸等)有助于提升模型对三维空间的理解。通过模拟从三维世界到二维图像的投影过程,相机参数能够有效提升三维物体检测及位置估计的准确性。

全部评论 (0)

还没有任何评论哟~