论文题目:BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers

整篇文章方法挺清晰的 理解起来不费劲

1. Motivation

做的任务是:3D detection,主要是提出使用BEV的表达方式去做感知类任务

问题场景

Perception in 3D space

因为整篇是拿相机在做表达和任务,所以先是说明相机优势:identify vision-based road elements (e.g., traffic lights, stoplines);指出BEV优势:清晰的表述了物体的位置和大小,比较适合自动驾驶里感知和规划的任务,同时连接了 temporal 和 spatial space,时空两个空间

同时指出现有的BEV方案:1. 2D plane,2. 从深度信息获取特征,对深度值和深度分布太敏感

因为基于BEV方法的detection performance 会受 compounding error和BEV特征的影响,所以我们提出了一种 不受深度信息,同时无需严格依靠3d prior 学习BEV的方法

Contribution

  1. 提出一种 以多相机和时间作为输入的,时空transformer encoder

    We propose BEVFormer, a spatiotemporal transformer encoder that projects multi-camera and/or timestamp input to BEV representations.
  2. 设计了通过在空间上的cross-attention,和时间上的self-attention,设计 learnable BEV queries 去做时域上的结合,然后加到Unified BEV 特征中
  3. 做nuScenes和Waymo的detection任务重取得了不错的效果

相关工作中介绍了 基于transformer-based 2D perception,和基于相机的 3D Perception


问题区:

  • cross-camera post-processing

    是指将相机进行坐标转换 把数据对其嘛?还是啥? → 好像就是多相机的处理

  • 3d prior是指不同相机之间的外参嘛?所以是指的是减弱外参在整个框架中的先验?

2. Method

2.1 框架

框架图挺清晰,从输入是六个角度的相机,通过一个可选的backbone(比如resnet101)

  • 每张照片都得到一个 feature \(F_t^i\) 其中 i 指代第 i 个相机,合起来就是得到一个 \(F_t=\{F_t^i\}_{i=1}^{N_{\text{view}}}\)
  • BEV Queries Q 是 gird-shaped learnable parameter \(Q \in \R^{H\times W \times C}\) H, W就是空间下BEV平面的大小,在 点\(p=(x, y)\) 下的 \(Q_p \in \R^{1 \times C}\) 和其对应的BEV plane grid cell region有关,每个格都代表现实世界中s米的范围长度(s分辨率

    对 queries Q里同样加入learnable的positional embedding

2.2 Spatial Cross-Attention 空间域

过程可以用该公式概括:

\[\operatorname{SCA}\left(Q_{p}, F_{t}\right)=\frac{1}{\left|\mathcal{V}_{\text {hit }}\right|} \sum_{i \in \mathcal{V}_{\text {hit }}} \sum_{j=1}^{N_{\text {ref }}} \operatorname{DeformAttn}\left(Q_{p}, \mathcal{P}(p, i, j), F_{t}^{i}\right)
\]

对于每个 \(Q_p\) 我们都有一个project function \(\mathcal P(p,i,j)\) 以获取 i-th相机下的 j-th 参考点

从现实坐标 \((x',y')\) 中 找到对应的query p=(x,y) 下 \(Q_p\) :

\[x^{\prime}=\left(x-\frac{W}{2}\right) \times s ; \quad y^{\prime}=\left(y-\frac{H}{2}\right) \times s
\]

同时因为在(x’,y’)上的物体也会有z上的高度,所以对于每个query \(Q_p\) 我们会得到 a pillar of 3D 参考点 \(\left(x^{\prime}, y^{\prime}, z_{j}^{\prime}\right)_{j=1}^{N_{\mathrm{ref}}}\) 然后通过projection matrix投到对应的相机下

\[\mathcal{P}(p, i, j)=\left(x_{i j}, y_{i j}\right)\\\text{where }z_{i j} \cdot\left[\begin{array}{lll}x_{i j} & y_{i j} & 1\end{array}\right]^{T}=T_{i} \cdot\left[\begin{array}{llll}x^{\prime} & y^{\prime} & z_{j}^{\prime} & 1\end{array}\right]^{T}
\]

其中\(T_i \in \R^{3\times 4}\) 就是第i个相机的projection matrix

2.3 Temporal Self-Attention 时间域

主要是要拿上一个输出的 BEV \(B_t\) 作为输入

\[\operatorname{TSA}\left(Q_{p},\left\{Q, B_{t-1}^{\prime}\right\}\right)=\sum_{V \in\left\{Q, B_{t-1}^{\prime}\right\}} \operatorname{DeformAttn}\left(Q_{p}, p, V\right)
\]

不同于vanilla deformable attention,这个offsets \(\Delta p\) 是从此处 concate \(\{Q, B’_{t-1}\}\) 预测而出


问题区:

3. 实验及结果

实现细节上:

  • 选择t时,是从相邻2s时间内随机采样而来,减少ego-motion的diversity,比如四个采样:\(t-3,t-2,t-1, t\),由此可得到:\(\left\{B_{t-3}, B_{t-2}, B_{t-1}\right\}\)
  • 因为 \(B_t\) 是基于多相机and \(B_{t-1}\)的,所以\(B_t\) 包含four samples的时空域clues

Loss function是根据 任务定义而来的,比如detection、segmentation等

结果表

nuScenes 数据集

waymo数据集

4. Conclusion

提出BEVFormer,验证其效果不错

limitation中提到了 和LiDAR-based还是有gap的,主要在effect和efficiency上(但是其实在本文表1 pointpaiting也并没有 ... effect上比BEVFormer好?可能只是这种指标下

碎碎念

代码还没开,可以等一波,但是好像知乎有人讨论说 也不一定会按时开。先就大概看看,网络方法输入输出都挺清晰的,就是感觉 emmm 效果意外的好 hhh

  • 有些细节有点迷,比如x’,y’获取是内参+外参直接pixel到全局坐标系下吗?
  • 估计后面跑跑 debug一下理解更深点

不同的方法对时间域数据上的处理方式各不相同,感觉时间域上的玩法还挺多的,比如上次MP3里面是optical flow, interesting;这种在视频领域更多一点 上次看沐神b站上有讲过I3D 3D-conv


赠人点赞 手有余香 ;正向回馈 才能更好开放记录 hhh

【论文阅读】BEVFormer: Learning Bird's-Eye-View Representation from Multi-Camera Images via Spatiotemporal的更多相关文章

  1. 【论文阅读】Learning Dual Convolutional Neural Networks for Low-Level Vision

    论文阅读([CVPR2018]Jinshan Pan - Learning Dual Convolutional Neural Networks for Low-Level Vision) 本文针对低 ...

  2. 论文阅读 DyREP:Learning Representations Over Dynamic Graphs

    5 DyREP:Learning Representations Over Dynamic Graphs link:https://scholar.google.com/scholar_url?url ...

  3. 论文阅读:Learning Visual Question Answering by Bootstrapping Hard Attention

    Learning Visual Question Answering by Bootstrapping Hard Attention Google DeepMind  ECCV-2018   2018 ...

  4. 论文阅读: End-to-end Learning of Action Detection from Frame Glimpses in Videos

      End-to-End Learning of Action Detection from Frame Glimpses in Videos  CVPR 2016  Motivation:    本 ...

  5. 【论文阅读】Learning Spatial Regularization with Image-level Supervisions for Multi-label Image Classification

    转载请注明出处:https://www.cnblogs.com/White-xzx/ 原文地址:https://arxiv.org/abs/1702.05891 Caffe-code:https:// ...

  6. 论文阅读:Learning Attention-based Embeddings for Relation Prediction in Knowledge Graphs(2019 ACL)

    基于Attention的知识图谱关系预测 论文地址 Abstract 关于知识库完成的研究(也称为关系预测)的任务越来越受关注.多项最新研究表明,基于卷积神经网络(CNN)的模型会生成更丰富,更具表达 ...

  7. Learning under Concept Drift: A Review 概念漂移综述论文阅读

    首先这是2018年一篇关于概念漂移综述的论文[1]. 最新的研究内容包括 (1)在非结构化和噪声数据集中怎么准确的检测概念漂移.how to accurately detect concept dri ...

  8. Deep Reinforcement Learning for Dialogue Generation 论文阅读

    本文来自李纪为博士的论文 Deep Reinforcement Learning for Dialogue Generation. 1,概述 当前在闲聊机器人中的主要技术框架都是seq2seq模型.但 ...

  9. 论文阅读笔记 Improved Word Representation Learning with Sememes

    论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...

  10. 论文阅读:Face Recognition: From Traditional to Deep Learning Methods 《人脸识别综述:从传统方法到深度学习》

     论文阅读:Face Recognition: From Traditional to Deep Learning Methods  <人脸识别综述:从传统方法到深度学习>     一.引 ...

随机推荐

  1. 如何基于surging跨网关跨语言进行缓存降级

    概述 surging是一款开源的微服务引擎,包含了rpc服务治理,中间件,以及多种外部协议来解决各个行业的业务问题,在日益发展的今天,业务的需求也更加复杂,单一语言也未必能抗下所有,所以在多语言行业解 ...

  2. DNS(1) -- DNS服务及dns资源类型

    目录 1.1 DNS服务概述 1.2 DNS域名结构 1.3 DNS解析原理 1.3.1 DNS查询类型 1.3.2 解析答案 1.4 DNS资源记录类型 1.1 DNS服务概述 DNS(Domain ...

  3. 从XML配置角度理解Spring AOP

    本文分享自华为云社区<Spring高手之路18--从XML配置角度理解Spring AOP>,作者: 砖业洋__. 1. Spring AOP与动态代理 1.1 Spring AOP和动态 ...

  4. 【数字基座·智慧物联】AIRIOT新品发布会在京举办

    2023年6月6日,由航天科技控股集团股份有限公司主办的"数字基座·智慧物联"AIRIOT新品发布会在北京成功举办,重磅发布了AIRIOT 4.0物联网平台的五大核心能力引擎,并邀 ...

  5. C# dynamic动态对象赋值

    dynamic 如果接收的是匿名对象,是无法为属性赋值的,而如果是接收的定义对象,又无法扩展字段. 解决办法序列化为json字符串,然后用Dictionary反序列化,就能赋值了.也能扩展新的字段. ...

  6. C# Bitmap 在winform里编辑了,再次重新编辑,报gdi+错误解决办法

    经过排查,var bitmap=new Bitmap()这个局部对象,没有Dispose所致.虽然是局部的对象,但还是需要Dispose:

  7. 【winform】解决datagridview里放combox,combox不能按下键快速选择的问题

    效果图: 一开始,是拖个下拉框到窗体上,用dgv.controls.Add(combox)添加到表格里,在通过表格事件,触发时,改变下拉框的位置和大小,这样做,下拉框是会出现在表格里,但是有问题,不能 ...

  8. Anagrams(字谜)

    描述 Most crossword puzzle(猜字谜) fans are used to anagrams(字谜)--groups of words with the same letters i ...

  9. HTML——input之复选框

    在 HTML 中,把 <input> 标签中的 type 属性设置为 checkbox 可以实现多选框的效果.具体语法格式如下: <input type="checkbox ...

  10. Linux-线程优先级学习

    概念 Linux系统中常用的几种调度类为SCHED_NORMAL.SCHED_FIFO.SCHED_RR. SCHED_NORMAL:用于普通线程的调度类 SCHED_FIFO和SCHED_RR是用于 ...