MapTracker:Tracking with Strided Memory Fusion for Consistent Vector HD Mapping

参考代码:MapTracker

动机与出发点

为了提升帧间检测的稳定性通常会添加时许信息,这个可以BEV特征处做时序融合,也可以是用当前帧query去cross-attn历史帧信息,则更多的时候是将之前帧信息与当前做融合或者cross-attn实现信息传递,是一种只在当前帧做检测的思路。这篇文章提出使用tracking的思路去做帧间融合,也就是历史帧的目标信息和匹配关系会随着时间流转到当前时刻,融合也是分为BEV特征和query维度的:

  • 1)BEV特征(BEV query)融合:将上一帧BEV特征通过egomotion变换到当前帧位置下用于当前帧query的初始化,没有重叠的区域就用原本embedding的值(default val),之后再与历史帧做跳帧融合,如使用距离当前ego距离为1m、5m、10m、15m处帧数据,这个融合的过程可以直接warp对齐之后做融合
  • 2)vector query融合:将上一帧object query做帧间对齐之后与当前帧的query做concat操作,再与历史帧的query做inst级别的cross-attn操作,这样就相当于历史帧中的query流转到了当前时刻(做数据的时候就要把跟踪关系做好,同一个clip用同一个实例ID就行),同时也有新定义query去处理新出现的目标

使用tracking的方式去做感知具有如下优势:

  • 1)基于DETR的检测器得到简化,当前帧的query与GT之间的对应关系(主要为vector query)在上一帧就已经建立好了,不用再在当前时刻做匹配,这样收敛速度更快,效果更好
  • 2)帧间目标连贯性更好(少毛刺),帧间做tracking会传递和对齐query,使得同一个目标query表达相对稳定,时序叠加之后毛刺现象

下面就是无时序模型、时序检测模型、时序tracking模型的结果直观对比:
在这里插入图片描述

方法设计

文章的方法pipeline见下图所示:
在这里插入图片描述

针对于时序融合定义了BEV queryvector query两处buffer用于去融合时序特征,这里buffer的容量做到了20个,但是使用的时候是具有选择性(跳帧策略:距离当前ego距离为1m、5m、10m、15m处帧数据),这样可以增加性能的同时减少计算量。

BEV特征与query在当前时刻的初始化

基于检测的时序模型采用当前时刻query做后续流程,不会引入历史帧的信息。对于tracking的思想是使用历史帧信息,历史帧信息中query与GT匹配关系、query特征表达均会传递到当前帧,在给新目标分配额外object query的同时,用以上信息完成帧间流转之后去检测。其实这部分过程也就是上图中的BEV Query Propagation和Vector Query Propagation。

BEV特征与query时序融合

完成BEV和Decoder中query初始化(仅使用上一帧的信息)之后便是去融合历史帧的信息,对于历史帧不是全部采用而是采用跳帧策略。对于BEV query部分时序融合就是concat+conv实现,而object query就是使用cross-attn与历史帧信息交互,见下图
在这里插入图片描述

另外,为了使得帧间信息传递(主要针对object query)时候上图中的PropMLP模块能够学到帧间迁移特性,在损失函数中增加了 L t r a n s L_{trans} Ltrans约束,思想就是用上一帧query经过该模块对齐之后预测结果应该与单纯依据egomotion变换得到的结果近似。这个trick已在StreamMapNet中使用了。

对于BEV query和object query两个维度它们的具体流程见下图:
在这里插入图片描述

那么依据tracking做query初始化、时序特征融合、跳帧策略这几个变量对性能的影响:
在这里插入图片描述

实验结果

nuScenes下性能比较:
在这里插入图片描述

Argoverse2下性能比较:
在这里插入图片描述

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值