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

BEVDet4D 论文学习

1. 解决了什么问题?

单帧数据包含的信息很有限,制约了目前基于视觉的多相机 3D 目标检测方法的性能,尤其是关于速度预测任务,要远落后于基于 LiDAR 和 radar 的方法。

2. 提出了什么方法?

BEVDet4D 将 BEVDet 方法从 3D 扩展到时间+空间的 4D 范畴。作者改进了 BEVDet 框架,在当前帧的特征中融合了之前帧的特征,只增加了少量的计算成本。BEVDet4D 简化了速度预测问题,将其看作为相邻帧特征之间的位置偏移预测问题。如下图,它保留了之前帧的 BEV 特征,将其与当前帧的特征通过空间对齐与 concat 操作融合。
在这里插入图片描述

2.1 网络结构

BEVDet 包括 4 个模块:image-view encoder、view transformer、BEV encder、task-specific head。为了融入时间信息,BEVDet4D 保留了 view transformer 对之前帧生成的特征。然后进行对齐,和当前帧的特征完成融合。View transformer 生成的特征对于后续模块来说,过于稀疏、粗糙。因此在时域融合操作前,有一个调整候选特征的 BEV 编码器,包括 2 个残差单元,通道数和输入特征数一致。

2.2 Simplify the Velocity Learning Task

在这里插入图片描述

符号定义 全局坐标系为 O g − X Y Z O_g - XYZ OgXYZ,自身坐标系为 O e ( T ) − X Y Z O_{e(T)}-XYZ Oe(T)XYZ,目标坐标系为 O t ( T ) − X Y Z O_{t(T)}-XYZ Ot(T)XYZ。如上图,作者构建了一个虚拟场景,包括一辆运动中的 ego 车辆和两个目标车辆。在世界坐标系内,一个目标车辆是静止的(即 O s − X Y Z O_s-XYZ OsXYZ绿色框),一个目标车辆是运动状态的(即 O m − X Y Z O_m-XYZ OmXYZ蓝色框)。两个相邻帧(第 T − 1 T-1 T1帧和第 T T T帧)的物体通过透明度区分。物体的位置表示为 P x ( t ) \text{P}^x(t) Px(t) x ∈ { g , e ( T ) , e ( T − 1 ) } x\in\lbrace g,e(T),e(T-1)\rbrace x{g,e(T),e(T1)}表示坐标系。 t ∈ { T , T − 1 } t\in\lbrace T,T-1\rbrace t{T,T1}表示时间戳。 T s r c d s t \text{T}^{dst}_{src} Tsrcdst表示从源坐标系到目标坐标系的变换。
本文方法不是直接预测目标的速度,而是预测相邻帧之间目标物体的平移量。排除了时间因素,任务就简化了,根据两个 BEV 特征间的差异就可计算出位置的移动。此外,该方法学习的位置移动与 ego 车辆自身的运动是没有关系的,因为 ego 的运动会让目标物体位置移动的分布变得很复杂。
如上图所示,由于 ego 的运动,原本在世界坐标系是静止的物体,在 ego 坐标系就成了运动的了。View transformer 对两个相邻帧生成特征,由于 ego 运动,它们在世界坐标系的感受野是不同的。一个静止物体在前后两帧的世界坐标系位置是 P s g ( T ) \text{P}_s^g(T) Psg(T) P s g ( T − 1 ) P_s^g(T-1) Psg(T1)。位置的移动可以表示为:
P s e ( T ) ( T ) − P s e ( T − 1 ) ( T − 1 ) = T g e ( T ) P s g ( T ) − T g e ( T − 1 ) P s g ( T − 1 ) = T g e ( T ) P s g ( T ) − T e ( T ) e ( T − 1 ) T g e ( T ) P s g ( T − 1 ) \begin{align} &\text{P}_s^{e(T)}(T)-\text{P}_s^{e(T-1)}(T-1)\nonumber \\ =&\text{T}_g^{e(T)}\text{P}_s^g(T)-\text{T}_g^{e(T-1)}\text{P}_s^g(T-1)\nonumber\\ =&\text{T}_g^{e(T)}\text{P}_s^g(T)-\text{T}_{e(T)}^{e(T-1)}\text{T}_{g}^{e(T)}\text{P}_s^g(T-1)\nonumber \end{align} ==Pse(T)(T)Pse(T1)(T1)Tge(T)Psg(T)Tge(T1)Psg(T1)Tge(T)Psg(T)Te(T)e(T1)Tge(T)Psg(T1)

根据上面等式,如果直接将 2 个特征 concat,后续模块的学习目标(即物体在两个特征图的位置偏移)就包含了 ego 运动(即 T e ( T ) e ( T − 1 ) \text{T}_{e(T)}^{e(T-1)} Te(T)e(T1))。为了避免,作者利用 T e ( T − 1 ) e ( T ) \text{T}_{e(T-1)}^{e(T)} Te(T1)e(T)对相邻帧的物体进行变换,排除 ego 运动的影响。

P s e ( T ) ( T ) − T e ( T − 1 ) e ( T ) P s e ( T − 1 ) ( T − 1 ) = T g e ( T ) P s g ( T ) − T e ( T − 1 ) e ( T ) T e ( T ) e ( T − 1 ) T g e ( T ) P s g ( T − 1 ) = T g e ( T ) P s g ( T ) − T g e ( T ) P s g ( T − 1 ) = P s e ( T ) ( T ) − P s e ( T ) ( T − 1 ) \begin{align} &\text{P}_s^{e(T)}(T)-\text{T}_{e(T-1)}^{e(T)}\text{P}_s^{e(T-1)}(T-1)\nonumber \\ =&\text{T}_g^{e(T)}\text{P}_s^g(T)-\text{T}_{e(T-1)}^{e(T)}\text{T}_{e(T)}^{e(T-1)}\text{T}_g^{e(T)}\text{P}_s^g(T-1)\nonumber\\ =&\text{T}_g^{e(T)}\text{P}_s^g(T)-\text{T}_{g}^{e(T)}\text{P}_s^g(T-1)\nonumber\\ =&\text{P}_{s}^{e(T)}(T)-\text{P}_s^{e(T)}(T-1)\nonumber\\ \end{align} ===Pse(T)(T)Te(T1)e(T)Pse(T1)(T1)Tge(T)Psg(T)Te(T1)e(T)Te(T)e(T1)Tge(T)Psg(T1)Tge(T)Psg(T)Tge(T)Psg(T1)Pse(T)(T)Pse(T)(T1)
根据上面等式,学习目标定为了当前帧 ego 坐标系中的物体运动,与 ego 运动就没关系了。该等式的对齐操作通过特征对齐实现。给定之前帧的候选特征 F ( T − 1 , P e ( T − 1 ) ) \mathcal{F}(T-1,\text{P}^{e(T-1)}) F(T1,Pe(T1))以及当前帧的 F ( T , P e ( T ) ) \mathcal{F}(T,\text{P}^{e(T)}) F(T,Pe(T)),通过下面等式实现对齐特征:
F ′ ( T − 1 , P e ( T ) ) = F ( T − 1 , T e ( T ) e ( T − 1 ) P e ( T ) ) \mathcal{F}'(T-1,\text{P}^{e(T)})=\mathcal{F}(T-1,\text{T}_{e(T)}^{e(T-1)}\text{P}^{e(T)}) F(T1,Pe(T))=F(T1,Te(T)e(T1)Pe(T))

T e ( T ) e ( T − 1 ) P e ( T ) \text{T}_{e(T)}^{e(T-1)}\text{P}^{e(T)} Te(T)e(T1)Pe(T)在特征 F ( T − 1 , P e ( T − 1 ) ) \mathcal{F}(T-1,\text{P}^{e(T-1)}) F(T1,Pe(T1))上可能不是一个有效的位置,因此需要使用双线性插值。

3. 有什么优点?

BEVDet4D 预测 velocity 的错误率降低了 − 62.9 % -62.9\% 62.9%,与那些基于 LiDAR 或 radar 的方法表现相近。在 nuScenes 基准上取得了 54.5 % 54.5\% 54.5%NDS。

http://www.lryc.cn/news/69317.html

相关文章:

  • 【设计模式与范式:创建型】43 | 单例模式(下):如何设计实现一个集群环境下的分布式单例模式?
  • Metal入门学习:绘制渲染三角形
  • python 中常见变量类型
  • SVN使用教程(一)
  • 【5.19】四、性能测试—指标、种类
  • Windows平台上的5种敏捷软件开发(过程)模型
  • 一文实现部署AutoGPT
  • 数值计算 - 误差的来源
  • 【软件测试】5年测试老鸟总结,自动化测试成功实施,你应该知道的...
  • 【Hadoop】二、Hadoop MapReduce与Hadoop YARN
  • Python教程:文件I/O的用法
  • 序员工作1年,每天上班清闲,但却焦虑万分,若是你,你会吗?
  • Bed Bath and Beyond EDI 需求分析
  • 【5.20】五、安全测试——渗透测试
  • java版鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统源代码
  • 大语言模型架构设计
  • SpringBoot整合Swagger2,让接口文档管理变得更简单
  • socket | 网络套接字、网络字节序、sockaddr结构
  • golang-websocket
  • Nginx + fastCGI 实现动态网页部署
  • 精彩回顾 | Fortinet Accelerate 2023·中国区巡展厦门站
  • ChatGPT 和对话式 AI 的未来:2023 年的进展和应用
  • Nginx配置WebSocket(WS)和WebSocket Secure(WSS)的完整指南
  • 链表--part 1--链表基础理论(概括)
  • 【V2G】电动汽车接入电网优化调度研究(Matlab代码实现)
  • Excel中时间戳与标准日期格式的互相转换
  • 【Kafka集群】Kafka针对用户做ACL权限控制
  • 国内外数据安全治理框架介绍与分析
  • 【Nodejs】使用Nodejs搭建HTTP服务,并实现公网远程访问
  • 面试题之介绍自己测试的项目,担任的角色和做出的成果