纯视觉至上!聊一聊时序融合在BEV感知中的应用

2023-05-16

作者 | 苹果姐  编辑 | 汽车人

原文链接:

https://zhuanlan.zhihu.com/p/583682754

https://zhuanlan.zhihu.com/p/586713719

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心【多传感器融合】技术交流群

后台回复【多传感器融合综述】获取图像/激光雷达/毫米波雷达融合综述等干货资料!

在传统感知算法中,时序融合是提高感知算法准确性和连续性的关键,可以弥补单帧感知的局限性,增加感受野,改善目标检测(Object Detection)帧间跳变和目标遮挡问题,更加准确地判断目标运动速度,同时也对目标预测(Prediction)和跟踪(Tracking)有重要作用.在BEV感知中,时序融合同样可以发挥相应的作用.同时,由于前序帧相关信息可以直接从缓存中读取,并不会带来性能上的大幅下降.下图直观地展示了时序融合的工作原理:

15dc45f954e6c4671c8a06bb45eca0e6.png
来自bevformer论文

经过调研,在近年来层出不穷的BEV感知相关工作中,已经有大量的工作使用了时序融合策略.博主在此进行简要的分类和盘点,并会在下篇给出详细的分类表格,欢迎各位读者讨论指正和分享.

传统的时序融合主要是在后处理中使用RNN或卡尔曼滤波等方式进行融合,这种方式由于要增加额外的开销,影响模型的性能,所以近年来大量采用的是特征级融合.特征级融合是继前融合,后融合新提出来的方法,不仅可以用在多传感器融合,也可以用在时序融合,具有跨模态,跨时空的特点.而BEV感知由于自身的特点,存在两个特征域:图像域(自车camera图像坐标系)和BEV域(自车lidar坐标系),这一点可以区别于传统感知算法只有图像域特征,从而BEV感知的时序融合可以在两个特征域任意一个进行,具体融合的方法也有两种:基于CNN的方式和基于Transformer的方式,其中基于CNN的方式又可使用2D卷积3D卷积,也有CNN和Transformer结合的方法.本文对BEV时序方法的分类主要基于以上几个方面,论文来源基本是2022年的工作.另外由于本文篇幅较长,文末提供精简归纳表格,欢迎阅读下篇获取.

在具体的时序融合方法上,我们主要关注以下几个对融合结果影响较大的方面:一是如何选择前序帧,这个决定了时序融合的有效范围,二是如何进行时空对齐(alignment),即将前序帧特征通过ego-motion进行转换,使之与当前帧特征处于同一个坐标系下,这样才可以进行准确的融合,三是融合的具体方法,最后是融合的分辨率,是融合效果和性能的折中选择.数据集方面,以下大部分模型都使用nuscenes数据集,该数据集有1000个场景(scenes),每个scene包括20+精细标注的关键帧(key frame),间隔0.5秒,每两个关键帧之间存在若干无精细标注的非关键帧(sweeps).

一. 基于Transformer的BEV特征融合

1.BEVFormer[1](上海AI Lab)

[1] BEVFormer: Learning Bird's-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers

code:https://github.com/fundamentalvision/BEVFormer

01f13145e6e5f8c96543bc05bc417009.png

BEVFormer是相对比较早的一个经典BEV感知模型,主体框架是基于transformer生成bev feature,再做基于DETR的目标检测,在之前博客里有详细介绍,主要motion是针对DETR3D[2]的改进,一是DETR3D只有基于稀疏的object query的decoder, BEVFormer增加了基于稠密的bev query的encoder,可以生成稠密的bev feature,二是由于有了bev feature,方便进行稠密的任务,如语义分割等,也方便进行时序融合.时序融合在encoder中的Temporal Self-Attention中实现,这个模块本质上就是deformable attention(来自于deformable DETR[3]),只是query做了前序帧和当前帧的拼接.

[2] DETR3D: 3D Object Detection from Multi-view Images via 3D-to-2D Queries

[3] Deformable DETR: Deformable Transformers for End-to-End Object Detection

BEVformer在前序帧的选择上,是在前面4帧中随机选3帧(只包括关键帧),所以时序范围为2秒,这3帧不是一次性输入,而是迭代地进行两两融合,第一帧由于没有前序帧,只与自己本身融合,也就是每个iteration需要跑4次前向传播和1次反向传播.前序bev feature在缓存中直接读取,不会降低推理的效率.

时空对齐方面,由于是BEV特征域融合,而两帧的bev特征分别在两帧的自车lidar坐标系下,所以需要将前序帧的lidar坐标通过ego-motion转换到当前帧的lidar坐标.这里面又包括两种方式:变换bev feature和变换reference_points(即密集query对应的坐标值),两种方法需要做的变换略有不同.论文中的做法是旋转feature,平移reference_points,这里存在一个问题就是论文中旋转feature的方式会产生全0的黑边,不利于后续的融合,而变换reference_points在后续的grid_sample环节会有插值作用,会更加准确.

具体的融合方式上,论文中是在Temporal Self-Attention模块中把时空对齐后的前序bev feature和当前bev feature分别做deformable attention,再在h*w平面做算术平均进行融合.这里算术平均有点简单粗暴,也可以修改为自适应的融合方式.融合分辨率也就是encoder中query的数量论文中用的比较大,是200*200,而decoder的query数量与与之类似的经典bev3D模型DETR3D相同,为900.其中,DETR3D无时序版本,并且只有decoder.

如下图所示,基于R101的BEVFormer时序版本比单帧高了4个点的mAP,单帧版本也比DETR3D高出3个点,属于非常大的提升了.

4de703656f38d88edf04474dbef84e59.png
nuscenes val set

2.PolarDETR[4] (华中科大,地平线机器人)

[4] Polar Parametrization for Vision-based Surround-View 3D Detection

code: https://github.com/hustvl/PolarDETR (waiting)

7767b537daa6aa74bb39e1b19533bb8b.png

PolarDETR[4]在整体框架上接近于DETR3D[3],主要不同点一是bev特征和目标位置的表征和从笛卡尔坐标系转换到了极坐标系,即由半径r,方位角α, 高度z进行表征,二是加入了时序融合.

关于第一点,论文中给出了为什么使用极坐标系的解释,如下图,假设目标At1和At2由于位置和朝向刚好匹配,在两个2D视角内的呈现是完全相同的,bev有效检测范围是d,这时候在笛卡尔坐标系中At1将被过滤掉,而At2会被保留下来,这对于模型训练来讲显然是不利于收敛的,问题就在于笛卡尔坐标系的各个边界点距中心的距离不一致.而如果使用极坐标系,只要两个目标距自车距离相等,就将被同等对待.

f59839c98cb283e42f269bf334b93acc.png

关于时序融合,本文采用的方式和BEVFormer[1]类似,也是基于transformer的bev特征融合,只是这里融合的是代表目标的object query,而不是代表bev feature的bev query.时序对齐的方法是在极坐标bev下,把当前帧采样点投影到前序帧获取特征,类似于变换reference_points.融合方法是所有帧channel维度拼接后做self attention,区别于BEVFormer的两两迭代融合,但具体用了多少帧由于代码还未公开所以不确定.

PolarDETR与DETR3D等模型的指标对比如下图所示:

610cde6db4bdf0fc69adf4ea9eb0afb8.png
nuscenes val set

二.基于CNN(2D/3D conv)的BEV特征融合

3.BEVDet4D[7]/BEVDepth4D[6] (鉴智机器人)

[5] BEVDet: High-performance Multi-camera 3D Object Detection in Bird-Eye-View

[6] BEVDepth: Acquisition of Reliable Depth for Multi-view 3D Object Detection

[7] BEVDet4D: Exploit Temporal Cues in Multi-camera 3D Object Detection

code:BEVDet4D: Exploit Temporal Cues in Multi-camera 3D Object Detection

18a259efe23d9c9cfb85ad98266edf97.png

BEVDet4D和BEVDepth4D是基于BEVDet[5]和BEVDepth增加时序融合的版本.二者框架非常类似,与BEVFormer属于两种得到bev表征的方式,即基于LSS[8]思想,多视角特征先通过深度估计网络进行像素级的深度估计,再投影到bev空间,通过基于CNN的bev encoder进行编码后连接Centerpoint[8]检测头.BEVDepth4D的主要改进是增加了对深度估计网络的监督,使结果更准确.

[8] Lift, Splat, Shoot: Encoding Images From Arbitrary Camera Rigs by Implicitly Unprojecting to 3D

BEVDet4D的时序融合发生在投影到bev空间得到bev feature后,与前序帧先经过时空对齐,在channel维度拼接,再送入bev encoder进行融合.这里的时空对齐是使用grid_sample把前序帧特征warp到当前帧,和直接旋转平移feature或reference_points本质上相同,但博主认为,如果后续还要做deformable self attention进行融合的话,这样处理效率较低,因为还需要再做一次grid_sample来取相应的value,还是直接对reference_points进行变换可以获得较高的效率.不过这里后续是使用CNN进行融合,影响不大.CNN这里用的是2D卷积.因为这种架构需要额外的深度估计网络,所以bev feature分辨率不能太大,文中采用了16倍下采样.在前序帧的选择上,训练阶段是在前3帧或后3帧随机选1帧,推理阶段只在前3帧随机选一帧.训练阶段把后续帧也加进来可以提高鲁棒性.

[9] Center-based 3D Object Detection and Tracking

如下图所示,加入时序融合的BEVDet4D比BEVDet提升3个点,同时也比BEVFormer提升1个点.

6220d4eb1fdcba260d7e761b36532bc0.png
nuscenes val set

4.PolarFormer[10] (复旦大学,达摩院)

[10] PolarFormer: Multi-cam从哦女era 3D Object Detection with Polar Transformers

code: https://github.com/fudan-zvg/PolarFormer (waiting)

df95ef714e2a481e871ab6ad44ac999f.png

PolarFormer是在PolarDETR之后进一步使用极坐标系进行bev特征表征的模型,框架有点类似于BEVFormer,即使用transformer生成bev feature,和PolarDETR的主要区别也类似于BEVFormer与DETR3D的区别,即是否先生成显式的bev feature. 但与BEVFormer最大的不同点是,生成bev feature后不是直接接检测头,而是先经过为极坐标系设计的基于CNN的Polar BEV encoder进行编码,再经过Polar head得到检测结果.

所以PolarFormer的时序融合方式是类似于BEVDet4D的,只是前序帧的选择上不同,训练是在前3-27帧(包含key frame和sweep)随机选一帧,推理在前15帧随机选一帧(这个方法类似于下文即将介绍的PETRv2),sweep帧属于非关键帧,没有标注,但更加密集,但由于前序帧融合只需要feature不需要标注,且加入sweep帧可以提高数据的多样性,所以sweep帧用在前序帧选择上也是非常合适的.融合分辨率采用的是64*256(r,α).

下图体现了使用极坐标系带来的提升,主要对标BEVFormer:

be260911cbd5e7ed7d6d590ff77c914c.png
nuscenes val set

5.BEVerse[11] (清华大学,鉴智机器人)

[11] BEVerse: Unified Perception and Prediction in Birds-Eye-View for Vision-Centric Autonomous Driving

code: https://github.com/zhangyp15/BEVerse

b9672d4ee66bd8a9b4660064c427b588.png

BEVerse是一个感知预测一体化模型,主体基于LSS生成bev feature,再经过spatial-temporal bev encoder进行时空编码,再进行下游的检测分割和预测任务.由于需要做预测,时序融合成为重要部分,并且需要前序帧和后续帧都要加入训练,选择的帧数相应也会比较多.时序对齐的方法仍然类似于BEVDet4D,只是BEVDet4D只使用1帧前序帧,BEVerse使用的是前2帧+后4帧,每帧都用grid_sample warp到当前帧再进行channel维度的拼接.拼接完成后,模型设计了Temporal3DConvModel进行时序的融合,和上文两个基于CNN融合的模型不同,BEVerse由于使用的帧数比较多,采用3D卷积和3D池化对所有帧进行融合.3D卷积是处理连续帧信息的一个重要方式.分辨率使用的是128*128.

下图展示了BEVerse的检测性能和同期模型的对比:

5570af2afbb8b3327104fdc89474eb14.png
nuscenes val set

三.基于Transformer+CNN的BEV特征融合

6.D-align12

[12] D-Align: Dual Query Co-attention Network for 3D Object Detection Based on Multi-frame Point Cloud Sequence

既然有基于transformer的融合也有基于CNN的融合,也随之诞生了更加复杂的transformer+CNN的时序融合.博主目前主要看到的是D-align,专门针对时序融合设计了一个使用双query和互注意力的复杂结构.

2f2f32ff22e5b89929aeb15f594d572b.png

D-align是个点云模型,可以直接通过卷积网络获取bev feature,并可以很容易地在bev坐标系下进行时序对齐(上图左下角),重点在于后续的融合.参考上图灰色区域架构,融合网络主要分为如下几个步骤:

a.把当前帧Bt和前序帧Ut-k分成两个query集合Bt和Ut-k,即所谓的双query,并初始化(上图橙色框),先对当前帧和每一个前序帧特征做差,用CNN提取motion信息(公式1,绿色模块):

2f3cb678211c227365100aba48dcae1f.png
公式1

b.得到Mt-k后经过deformable attention模块更新Ut-k(公式2,蓝色模块):

0738cf2be75ab86cb721a34c569608c6.png
公式2

c.将每个更新后的Ut-k与当前帧query做gated attention[13]进行融合,更新Bt,以上步骤重复L层.(公式3,4,紫色模块):

70c3c6681d03fce5410f964ccd70b0de.png
公式3
1473123347cea0a1d5bab98f5228d7f0.png
公式4

[13] Robust Deep Multi-modal Learning Based on Gated Information Fusion Network

如上图右上角,最后更新的Bt经过上采样后连接检测头进行检测,整个结构比较复杂但层次还是清晰的.效果如下图所示:

e513d271101aaae7daab0eba0048c802.png

四.基于transformer的图像特征融合

7.Uniformer[13] (浙江大学,大疆,上海AI lab)

前文所介绍的6个模型有一个共同点,即都是在bev空间下对bev feature做时序融合.由于每一帧的bev feature只有一个,所以bev空间下的时序融合比较简单直接,可直接通过warp的方式将前序帧与当前帧融合,而且需要的缓存空间也比较小.但这种方法也有不足之处,一是会带来可融合区域的浪费,丢失有用信息,二是在融合过程中只能使用固定权重,无法自适应地调整前序帧权重,三是可用的时序区间也比较短,因为时序过长,可融合区域会更小,难以起到加强作用.BEVFormer的实验中,融合3帧,也就是2s的时序区间效果达到了峰值.

[13] UniFormer: Unified Multi-view Fusion Transformer for Spatial-Temporal Representation in Bird's-Eye-View

code:https://github.com/cfzd/UniFormer (waiting)

701e96c1e89f7a77705862055590b20e.png

Uniformer解释了基于warp的融合方式为什么会带来信息丢失.如下图所示,图(b)的灰色部分是连续两帧实际可融合区域,图(a)的灰色部分是生成一定范围内的矩形的bev feature后实际融合的区域,可见融合范围大大缩小,所以很多有用的信息被浪费了.

4a781b29913a743993b5c13862287293.png

所以本文提出,为了更好地融合时序信息,可以不在bev空间通过warp的方式进行融合,而是把这一过程提前到图像空间,通过缓存前序帧的图像特征,并把前序帧的lidar2img参数,也就是相机外参转换到当前帧,那就等同于当前帧又多了很多个相机视角,同时可以看到更大范围的信息,图上图(c)所示.在这种架构下,多帧时间的融合和多视角空间的融合被统一起来了,所以模型命名为Uniformer.下图更加直观地展示了两种方法的区别:

fc1d8a3ff8200070e6ab78a5bfb2d2fd.png

Uniformer架构可以解决上述warp方法的全部缺陷.第一点,它不造成信息浪费,可以融合当前帧和前序帧相机视角所能覆盖的所有区域,第二点,它可以自适应地学习每个视角的权重,不区分当前和前序帧,第三,只要缓存空间允许,它可以融合很长的时序区间.当然这种方法的劣势是需要缓存多视角特征,无法使用较大的分辨率,一般需要高倍下采样,最后再进行上采样.Uniformer为这种方法取名为"virtual views"即虚拟视角方法.

在具体实现上,Uniformer的前序帧选取前6帧,时序对齐的方式如上文所述,通过外参转换的方式将前序帧变为当前帧的虚拟视角,然后做基于transformer的融合,包括self attention和cross attention,只是cross attention同时融合了时间和空间信息.最后还设计了self-regression自回归模块来融合多层transformer结果,最后得到bev feature,并指出这种方法也能达到类似于BEVFormer将前序帧和当前帧bev feature进行concate再融合的提升效果.bev feature分辨率采用50*50再用4倍上采样.实验效果对比如下图所示:

9ca3678ce17fb227f383c8a8d2587f4a.png
nuscenes val set

8.PETRv2[14] (旷视科技)

[14] PETRv2: A Unified Framework for 3D Perception from Multi-Camera Images

code: GitHub - megvii-research/PETR: [ECCV2022] PETR: Position Embedding Transformation for Multi-View 3D Object Detection

d0b7be2fde3ffdddeaf442a859b3c3f7.png

其实最先使用类似于虚拟视角的并不是Uniformer,而是PETRv2,只是PETRv2没有重点对时序融合进行分析.PETRv2是在PETR[15]的基础上加入时序融合的提升版.PETR又是对DETR3D的改进,简化了DETR3D的pipeline,把其中cross attention的多视角投影过程用事先计算好的3D positional encoding取代,与query相加后也可以为2D点提供3D信息,因为只要外参不变,每次投影过程其实是相同的,没必要每个iteration都重复计算,大大提高了效率.如下图所示:

[15] PETR: Position Embedding Transformation for Multi-View 3D Object Detection

2ca20209d61fc42fb3a2917ed22cc6ad.png

PETRv2的时序融合方法与上文的Uniformer相似,都是通过变换前序帧外参的方式,将前序帧的相机视角变成当前帧的虚拟视角,只是它只用了1帧前序帧,是从前3-27帧(包含key frame和sweep)中随机选取的,与前文的Polarformer一致.融合分辨率与DETR3D一致,都是900个object query.以下是效果对比:

9160ac491679d343c659e901b92e716d.png
nuscenes test set

五.基于CNN(3D conv)的图像特征融合

9.Uniformer16

[16] UniFormer: Unified Transformer for Efficient Spatiotemporal Representation Learning

code: https://github.com/Sense-X/UniFormer

e8ae811f416e3fc3bf957c2ccf5c074a.png

这篇Uniformer与前文[13]同名,但完全是两个不同的模型,彼此之间没有很大关联.Uniformer[16]不属于本文讨论的BEV感知范畴,主要做2D时序的相关任务,如视频分类等,但涉及的时序融合方法可以参考借鉴并自成一类,也就是基于基于CNN(3D conv)的图像特征融合.

对于连续帧2D图像来说,3D卷积就是用来融合时序信息的.作者提出,单纯使用3D卷积,只能融合局部时空信息,缺乏全局性,而transformer擅长提取全局特征,却忽略了局部相关性造成的冗余.而深度神经网络在浅层以提取局部特征为主,深层提取全局特征,可以充分利用CNN和transformer的特点,实现完美的结合,即在浅层主要使用3D conv, 深层结合transformer,原话是这样使用tackle both spatiotemporal redundancy and dependency, by learning local and global token affinity respectively in shallow and deep layers.

模型架构如上图所示,代码中一共分为4个stage,前2个stage是全卷积架构,后两个stage是卷积结合self-attention,整个网络还是以CNN为主.因为任务是视频识别,也需要选取比较多的帧数,文中是前32帧+后32帧中每8帧选1帧,不需要时序对齐,分辨率是224*224.以下是在Kinetics-400&600数据集上的对比实验:

85081db70c0810035c91f9b274f8a970.png
Kinetics-400&600

六.基于Stereo的图像特征融合

博主在之前做单目深度估计相关研究时,用到的主要思想是利用时序帧的pose位姿变化(可用真值也可以估计),和相机内参信息,根据多视图几何原理得到每个像素点的重投影约束,进而估计每个像素点的相对深度,如经典单目深度估计模型monodepth2[17],具体可参见博客:

苹果姐:深度估计自监督模型monodepth2论文总结和源码分析【理论部分】

[17] Digging Into Self-Supervised Monocular Depth Estimation

除了单目深度估计,应用更加广泛的是双目深度估计,也就是Stereo,因为对于单目深度估计来说,连续帧的pose信息相对比较昂贵,假如用估计的方法得到pose,又无法得到绝对深度.而双目深度估计只需要两个相机的标定准确,就可以得到绝对深度.双目深度估计的一般方法是在设定的n个离散的深度侯选值下,对其中一个视图根据标定信息进行单应性变换warp到另一个视图,再用另一个原视图与warp得到的视图计算cost volumn,进而对每个深度值做加权平均得到最终的深度值[18].

[18] MVSNet: Depth Inference for Unstructured Multi-view Stereo

对于BEV感知而言,由于2D检测已经相对成熟,3D检测的核心仍然是从多个2D图像中获取目标的深度.考虑到单目和双目深度估计都是从时序或空间的多视图中获取深度,而且对于双目深度估计而言,只要有标定好的两个视图即可,是不是同一个时刻获取的并不是关键,所以也为BEV的时序融合提供了另外一种更具理论解释性的思路,即将带有pose信息的连续帧作为双目视图进行深度估计.目前这种思路比较有代表性的是以下两篇工作:

10. BEVStereo[19] (中科院,旷视科技)

[19] BEVStereo: Enhancing Depth Estimation in Multi-view 3D Object Detection with Dynamic Temporal Stereo

code: https://github.com/Megvii-BaseDetection/BEVStereo

5d95305ffab72c69a8f382689627216f.png

BEVStereo的框架如上图,将多视图的当前帧和前序帧分两个warp方向分别输入共享权重的两个子网络,内部同时进行单目和双目深度估计(双目由于需要匹配点对,无法覆盖所有像素点),然后将每个视图的单目和双目深度估计结果进行融合,再对多视图做外参投影和voxel pooling得到bev feature,最后接检测头.其中还有一个创新点是,在做双目深度估计计算cost volumn时,并不是像MVSNET[18]那样通过设定的多个深度侯选值进行计算,而是对每个像素点都预测了一个µ 和σ,即为每个像素点预测了一个深度分布,通过设定一系列的k值,用µ +k*σ得到每个深度候选值,这样做的好处很明显,就是可以为每个像素点使用不同的深度分布,而不是统一用一样的分布,对于深度估计结果更加准确.Stereo部分结构如下图所示:

59d581b296270c6a0cc31beb44b57f1d.png

具体操作上,BEVStereo用了4帧前序sweep,每一帧都做了如上操作再进行融合.由于计算cost volume资源消耗较大,所以在backbone部分进行了16倍下采样,在stereo部分又做了4倍下采样.效果如下图所示,优势非常明显.

ecc30903824b2f06eb19f2df8500777d.png
nuscenes test set

11.SoloFusion20

[20] Time Will Tell: New Outlooks and A Baseline for Temporal Multi-View 3D Object Detection

code: GitHub - Divadi/SOLOFusion: Time Will Tell: New Outlooks and A Baseline for Temporal Multi-View 3D Object Detection (waiting )

cb4e2b12866d3150ef1c412e14c597a4.png

最后介绍一个较新的模型SoloFusion同样基于Stereo进行时序融合,整体思路和BEVStereo类似,但对这种方法在时序融合中的作用进行了进一步的分析.作者提到,影响时序融合效果的主要因素有两个,时序融合的区间范围和融合分辨率.关于区间范围,对于类似BEVFormer,对bev feature进行融合的方法来说,只能进行非常有限区间的融合(论文中验证了只在2s内有效),因为2s以上的bev feature重叠区间较小.但对于Stereo方法来说,区间长反而成了优势,因为两个视图的匹配点对在图像上距离较远,使深度估计变得更加简单,如下图所示:

2ef6575d68ec19a964fd65c42b2104e6.png

关于融合的分辨率,自然是越大效果越好,但大的分辨率势必会带来资源消耗的增加,难以实际应用.作者通过实验证明,上文所说的增加融合区间长度可以弥补低分辨率带来的指标下降,因为增加区间长度同样可以提供更多的信息.而且,增加时序长度由于可以从缓存中读取,并不会明显降低推理的效率.作者进行了高分辨率+短时序,和低分辨率+长时序的实验,从下图可以看出,低分便率+长时序(c)带来了较小的fps下降和较大的mAP提升.如果二者结合,可以达到更好的效果.

195b30f5da03e6035029cd12924264f8.png

基于以上优势,Stereo的方法可以充分发挥时序融合的潜力,而Solofusion采用长时序(16帧)+低分辨率(16倍下采样)以及短时序+高分辨率相结合的方式,可以带来更多的时序提升.下面两个表格分别对比了多个模型效果,以及各自时序版本相比单帧版本的提升,可以看出Solofusion不仅在绝对指标还是比单帧的提升上都位居前列.

1e80f78d07ca04cffdf6b72917c6d17d.png
nuscenes val set
2c20dd2493f69adbf74619b835e44db1.png
不同模型相对单帧的提升

关于BEV感知以及时序融合,还有太多值得我们学习和探索的方向.现将本文所介绍的11个模型的时序融合方法和细节进行精简整理(分辨率有限可放大观看),供有需要的读者参考备忘.

博主水平有限,如有不足欢迎留言批评指正.另本文完全原创,如有转载请注明出处.

ea4ee0a4622d8956453cd95f18753eed.png
BEV感知模型时序融合方法精简汇总

往期回顾

Nuscenes SOTA!BEVFormer v2: 通过透视监督使流行的图像Backbones适应BEV识别!

b02feca8efe97ac88f60cfae0a923396.png

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、规划控制、模型部署落地、自动驾驶仿真测试、硬件配置、AI求职交流等方向;

ec5f2698350ea53dea276edd4a0be337.jpeg

添加汽车人助理微信邀请入群

备注:学校/公司+方向+昵称

自动驾驶之心【知识星球】

想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!

59370e3209a7d8baef91f7ecc2f67691.jpeg

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

纯视觉至上!聊一聊时序融合在BEV感知中的应用 的相关文章

  • libcurl库

    目录 1 libcurl简介2 libcurl的使用3 libcurl的安装Libcurl库等第三方库的通用编译方法 3 调用libcurl访问百度主页4 libcurl 相关API解读1 curl global init 2 curl g
  • ERROR: cannot launch node of type: rplidar_ros

    1首先使用rospack find 命令查找该功能包 xff0c 如果输出功能包路径则该功能包存在 xff0c 如果提示没有则说明我们需要下载一个rplidar ros rospack find rplidar ros 2使用sudo ap
  • 【jetson nano】jetson nano环境配置+yolov5部署+tensorRT加速模型

    目录 jetson nano环境配置 43 yolov5部署 43 tensorRT加速模型致谢主机和jetson nano环境jetson系统开机烧录 系统设置 换源python环境配置conda环境yolov5环境matplotlib和
  • MDK仿真出现NOT IN SCOPE(不在范围内)

    这两天刚拿到一套GD32F1系列的开发板 xff0c 想着测试一下 xff0c 看和STM32的有啥不同 xff0c 自己仿真时候 xff0c 想要在窗口观察一下数值 xff0c 结果总是提示NOT IN SCOPE没办法 xff0c 就查
  • Keil调试局部变量显示“not in scope“的问题解决

    Keil调试局部变量显示 34 not in scope 34 的问题解决 参考文章 xff1a xff08 1 xff09 Keil调试局部变量显示 34 not in scope 34 的问题解决 xff08 2 xff09 https
  • MPU6050可以读取ID值,温度值和原始数据值为零问题解决

    MPU6050可以读取ID值 xff0c 温度值和原始数据值为零问题解决 参考文章 xff1a xff08 1 xff09 MPU6050可以读取ID值 xff0c 温度值和原始数据值为零问题解决 xff08 2 xff09 https w
  • 英伟达Jetson Xavier NX部署YOLO5

    1 查看JetPack版本 新到手的NX首先需要确定一下JetPack的版本 xff1a sudo apt span class token operator span cache show nvidia span class token
  • 史上最全 | BEV感知算法综述(基于图像/Lidar/多模态数据的3D检测与分割任务)...

    点击下方卡片 xff0c 关注 自动驾驶之心 公众号 ADAS巨卷干货 xff0c 即可获取 点击进入 自动驾驶之心技术交流群 后台回复 BEV综述 获取论文 xff01 后台回复 ECCV2022 获取ECCV2022所有自动驾驶方向论文
  • matlab-字符串的处理操作

    建立一个字符串向量 xff0c 然后对该向量做如下处理 xff1a 取第1 5个字符组成的子字符串 将字符串倒过来重新排列 将字符串中的小写字母变成相应的大写字母 xff0c 其余字符不变 统计字符串中小写字母的个数 代码 ch 61 39
  • curl发送带有Authorization的POST请求

    一 参数说明 格式 xff1a curl H 请求头 d 请求体 X POST 接口地址 参数内容格式 H header 请求头 Content Type application json d请求内容 remote host 10 163
  • AStar寻路算法 (C#)

    一 介绍 A星算法其实并不是最短路径算法 xff0c 它找到的路径并不是最短的 xff0c 它的目标首先是能以最快的速度找到通往目的地的路 B星实际上是A星的优化 但是B星的缺点是不能向后查找 所以会有问题 还有一种D星的可以用来找最短路径
  • 深度相机介绍(TOF、RGB双目、结构光参数对比)

    一 深度相机的介绍 随着计算机视觉与人工智能技术的飞速发展 xff0c 采用深度相机进行场景三维重建 目标检测 环境感知等应用越来越广泛 xff0c 与传统的2D相机不同 xff0c 深度相机可以通过拍摄空间来获得景深信息 xff0c 从而
  • 网络编程——UDP

    目录 UDP的服务器端 UDP的echo客户端代码 UDP的echo服务器端代码 UDP的服务器端 先运行服务器端 xff0c 再运行客户端 服务端 xff1a 开发者 xff1a Virtuous 开发版本 xff1a 1 0 开发时间
  • HTTP 完全解析

    Http 详解 HTTP 的定义 HTTP即是 xff1a Hypertext Transfer Protocol xff0c 超文本传输协议 xff0c 种 络传输协议 xff0c 位于 TCP IP 协议族的最顶层 应 层 URL 说到
  • STM32 自定义串口协议

    STM32 自定义串口协议 1 串行通信1 1 原理与优缺点1 2 分类1 2 1 按通信方向1 2 2 按通信方式 1 3 异步串行引脚连接1 3 1 串口外设之间1 3 2 ARM与PC之间 1 4 字符帧格式1 5 串口通信过程1 6
  • 无人机——电机篇(一)

    文章目录 1 电机的定义 2 电机的分类 3 电机的参数 4 电机效率 5 电机的选择 1 电机的定义 电机俗称 马达 是无人机的动力来源 无人机通过改变电机的转速来改变无人机的飞行状态 即改变每个电机的速度 使得无人机能够盘旋空中 上升或
  • HTTP请求/响应报文结构

    HTTP请求报文 一个HTTP请求报文由四个部分组成 xff1a 请求行 请求头部 空行 请求数据 1 请求行 请求行由 请求方法字段 URL字段 和 HTTP协议版本字段 3个字段组成 xff0c 它们用空格分隔 比如 GET data
  • AStar寻路算法

    概述 AStar算法是一种图形搜索算法 xff0c 常用于寻路 他是以广度优先搜索为基础 xff0c 集Dijkstra算法和最佳优先 best fit 于一身的一种算法 示例1 4向 示例2 8向 思路 递归的通过估值函数找到最佳路径 x
  • ECCV2022 | 多模态融合检测新范式!基于概率集成实现多模态目标检测

    点击下方卡片 xff0c 关注 自动驾驶之心 公众号 ADAS巨卷干货 xff0c 即可获取 点击进入 自动驾驶之心技术交流群 后台回复 ECCV2022 获取ECCV2022所有自动驾驶方向论文 xff01 说在前面的话 标题 xff1a
  • 什么是地址映射

    ARM体系结构 地址映射 一 什么是地址映射 1 ARM Cortex A8架构 xff0c 32位CPU xff0c CPU设计时就有32根地址线和32根数据线 2 32根地址线决定了CPU的地址空间为4G xff0c 那么这4G空间如何

随机推荐