当前位置: 首页 > ops >正文

【论文阅读】Sparse4D v2:Recurrent Temporal Fusion with Sparse Model

标题: Sparse4D v2:Recurrent Temporal Fusion with Sparse Model
作者: Xuewu Lin, Tianwei Lin, Zixiang Pei, Lichao Huang, Zhizhong Su

motivation

在v1的基础上,作者发现长时序有更好的效果,但v1的计算量太大,于是又快又好的长时序v2诞生。
稀疏算法为多视图时间感知任务提供了极大的灵活性。提出了 Sparse4D 的增强版本,其中通过实现多帧特征采样的递归形式来改进时间融合模块。通过有效地解耦图像特征和结构化锚点特征,Sparse4D实现了时间特征的高效变换,从而仅通过稀疏特征的逐帧传输来促进时间融合。循环时间融合方法有两个主要好处。首先,它将时间融合的计算复杂度从O(T)降低到O(1),从而显著提高了推理速度和内存占用。其次,它能够实现长期信息的融合,从而通过时间融合带来更明显的性能提升:Sparse4D v2。
在这里插入图片描述

methods

总体Framwork如下:
在这里插入图片描述

1、Instance Temporal Propagation
实例由三个部分表示,分别是锚点、实例特征和锚点嵌入。锚点是结构化信息,它指示实例的状态,并具有实际的物理含义。实例特征是从图像中提取的高阶语义特征,主要来自图像编码器。锚点嵌入是锚点的特征编码,利用小型锚点编码器将锚点的结构化信息映射到高维空间。这种设计完全解耦了实例的图像特征和结构化状态,因此我们可以更方便地添加先验知识。例如时间传播,我们只需要投影其锚点,并使用锚点编码器对投影的锚点进行编码,实例特征可以保持不变。
在这里插入图片描述
其中投影公式与anchor定义相关,对于3D 检测任务,使用的投影公式如公式:
在这里插入图片描述
将decoder分为单帧层和时序层。单帧层以新初始化的instance作为输入,输出一部分高置信度的instance至时序层;时序层的instance除了来自于单帧层的输出以外,还来自于历史帧(上一帧)。将历史帧的instance投影至当前帧,其中,instance feature保持不变,anchor box通过自车运动和目标速度投影至当前帧,anchor embed通过对投影后的anchor进行编码得到。

Instance 表示方式:PETR系列中,query instance 采用的是 “Anchor Point -> Query 特征”的方式。即将均匀分布在3D 空间中的anchor point(learnable)用MLP编码成Query 特征。比起Sparse4D instance 中显式分离feature (纹理语义信息) 和3D anchor(几何运动信息) 的方式,PETR的instance 表示方式更加隐式一些。我们认为feature + anchor box的显式instance表示方式,在稀疏3D检测任务中更加简洁有效,也更易于训练;
时序转换方式:与instance 表示方法相对应的是稀疏Reccurent 的方式。StreamPETR 中,采用了隐式的query时序转换方式,即把velocity、ego pose、timestamp都编码成特征,然后再和query feature做一些乘加操作;Sparse4d-V2 则采用了显式的时序转换方式,对于历史帧的instance,直接将其3D anchor基于自车和instance 运动投影到当前帧,而保持其instance feature不变。
历史帧数量:StreamPETR 中 cache了历史N帧的query,再与当前帧进行attention。Sparse4d-v2 则只cache了上一帧的query。当然,StreamPETR 也可以只cache 一帧,只是效果会略略有下降。在实际的业务实践中,较少的历史帧cache 有助于减少端上的带宽占用,进一步提升系统整体性能。

2、Efficient Deformable Aggregation
就是直接在模型里面进行特征采样及融合,提高中间效率,降低访问及存储;
作者对deformable aggregation模块进行了底层的分析和优化,让其并行计算效率显著提升,显存占用大幅降低。基于pytorch op组合的Basic Deformable Aggregation 计算逻辑实现如下图所示。
在这里插入图片描述
可以发现其会生成多个中间变量,需要对显存进行多次访问和存储,降低了推理速度,且中间变量 尺寸较大,从而导致显存占用量显著增加,并且反向传播过程中的显存消耗会进一步提升。
Efficient Deformable Aggregation(EDA)的关键在于将“先采样所有特征再融合”的方式变成了“并行地边采样边融合”,其允许在关键点维度和特征维度上实现完全的并行化,每个线程的计算复杂度仅与相机数量和特征尺度数量相关,在某些场景中,3D空间中的一个点最多被投影到两个视图,使得计算复杂度可以进一步降低 。EDA可以作为一种基础性的算子操作,可以适用于需要多图像和多尺度融合的各种应用。
在这里插入图片描述
3、Camera Parameter Encoding
camera embedding(Liner层)
作者加入了内外参的编码,将相机投影矩阵通过全连接网络映射到高维特征空间得到camera embed。在计算deformable aggregation中的attention weights
时,我们不仅考虑instance feature和anchor embed,还加上了camera embedding。
4、Dense Depth Supervision
在实验中,发现基于稀疏的方法在早期训练阶段缺乏足够的收敛能力和速度。为了缓解这一问题,还引入了以点云为监督的多尺度密集深度估计方法作为辅助训练任务。而在推理过程中,这个分支网络将不会被激活,不影响推理效率。

Experiment

作者首先基于Resnet50 + 256x704 分辨率的配置展开了消融实验。如下表所示:
对比Exp1 和Exp5可以看出,采用recurrent instance的形式来实现长时序融合,相比单帧提升非常大;
对比Exp4 和Exp5可以看出,深度监督模块,有效降低了Sparse4D-V2的收敛难度,如果去掉该模块,模型训练过程会出现梯度崩溃的现象,从而使得mAP降低了8.5%。(在不具备深度监督条件的情况下,也可以考虑使用2D 的检测head 作为辅助loss,如FCOS Head,YoloX等)
对比Exp2 和Exp3可以看出,单帧层 + 时序层的组合方式比起只使用时序层的效果要好很多;
对比Exp3 和Exp5可以看出,相机参数编码也带来了可观的提升,mAP和NDSf分别提升了2.0%和1.5%;
在这里插入图片描述
在nuScenes validation数据集上进行了对比,可以无论是在低分辨率+ResNet50还是高分辨率+ResNet101的配置下,Sparse4D v2都取得了SOTA的指标,超过了SOLOFusion、VideoBEV和StreamPETR等算法。
从推理速度来看,在256X704的图像分辨率下,Sparse4Dv2超过了LSS-Based算法BEVPoolv2,但是低于StreamPETR。但是当图像分辨率提升至512X1408,Sparse4Dv2的推理速度会反超StreamPETR。这主要是因为在低分辨率下直接做global attention的代价较低,但随着特征图尺寸的上升其效率显著下降。而Sparse4D head理论计算量则和特征图尺寸无关,这也展示了纯稀疏范式算法在效率上的优势。实际测定中,当图像分辨率从256x704 提升到512x1408时,Sparse4Dv2 的decoder 部分耗时仅增加15%(从高分辨率特征上进行grid sample,会比从低分辨率特征上进行grid sample 略慢一点)。
在这里插入图片描述
以上是作者的全部内容,好,好,好!

【完结】

http://www.xdnf.cn/news/18991.html

相关文章:

  • PDF,HTML,md格式文件在线查看工具
  • TensorFlow 深度学习 | 使用子类 API 实现 Wide Deep 模型
  • 动态规划01背包
  • 当不想安装telnet或nc时,可使用 Linux 系统默认自带的bash原生网络功能或ping(辅助判断)测试连通性
  • 法律审查prompt收集
  • java19学习笔记
  • 【机器学习入门】3.2 ALS算法——从评分矩阵到精准推荐的核心技术
  • Java泛型使用常见报错
  • hive udf函数实现在sql查询网站价格
  • 网站加载慢,linux服务器接口请求响应变慢,怎么排查,一般是什么原因
  • 工业相机的类型及不同类型的应用
  • 一文说清楚ABAP中的‘显示提交(Explicit Commit)’和‘隐式提交(Implicit Commit)’
  • word去空格去空行_word辅助工具 word批量处理
  • Python采集小红书笔记详情,json数据返回
  • 深度解密SWAT模型:遥感快速建模、DEM/LU/气象数据不确定性、子流域/坡度划分、未来土地利用与气候变化情景模拟及措施效益评估
  • 生产环境Spark Structured Streaming实时数据处理应用实践分享
  • ZArchiver解压器:强大的安卓解压缩工具
  • 数据结构 第三轮
  • 使用 Dify 和 LangBot 搭建飞书通信机器人
  • Elasticsearch AI 语义搜索(semantic_text)
  • 群晖Nas上使用工具rsync工具usb同步数据
  • 国际期货Level2分时Tick历史行情数据处理分析
  • Vue2+Element 初学
  • 如何备份 TECNO 手机上的短信
  • position属性
  • rabbitmq学习笔记 ----- 多级消息延迟始终为 20s 问题排查
  • 2025最新uni-app横屏适配方案:微信小程序全平台兼容实战
  • Java开发MongoDB常见面试题及答案
  • DQL单表查询相关函数
  • 【WPF】WPF 自定义控件实战:从零打造一个可复用的 StatusIconTextButton (含避坑指南)