【读论文】多视角视觉BEV感知论文不完全整理

多视角BEV感知近年来已经逐渐收敛(卷无可卷),总结了一系列主流论文,其中主要分为两个部分:LSS-based的深度估计方法、transformer-based的BEV query方法,主要都是致力于解决2D到3D的转换,还有两篇关于BEV部署的文章,transformer架构在板端的部署仍然是难题,而深度估计的不确定性和计算的复杂度在部署上也存在很大问题,学术界和实车的部署仍然存在很大的鸿沟,BEV方案的真正落地仍然比较困难。


1. DETR3D

Motivation

  • 现有方法会依赖中间表示(如深度估计)从二维图像提升到三维,或者直接从二维回归三维信息,这都有问题,本文直接从三维空间进行结果的预测(这里的三维从何而来?)
  • 出发点是单目3D检测,二维预测三维的固有问题

Methods

  1. 提供一组query并进行encoder编码

  2. 对这组query使用网络学习一组3D参考点
    在这里插入图片描述

  3. 将3D参考点通过内外参投影到各个视角的图像特征中,并利用双线性插值补偿某些视图缺失的特征
    在这里插入图片描述
    在这里插入图片描述

  4. 对特征进行加权,得到新的query
    在这里插入图片描述

  5. 重复1-4步,对最终的query进行3D检测框的回归
    在这里插入图片描述

  • 训练时每一层的q都会用于预测,并作为下一层的query输入,推理时只使用最后一层的query进行预测
  • 预测使用二部匹配

Thinking

  • 这一组最初提供的先验query是什么形式的?第一步直接从一组query去学三维表示,这不会有问题吗?其后的投影是在对这种大范围的学习进行修正吗?
  • 这和原始的DETR相比只继承了二部匹配这一项,head不算优雅

2. PETR

在这里插入图片描述

Motivation

  • DETR将嵌入2D位置编码的图像特征与图像query进行交互直接输出2D检测结果,而DETR3D正如上面所说,逆投影的形式不够优雅,因此PETR期望继承DETR的结构,直接嵌入3D位置编码和2D图像特征结合,与query进行交互直接输出3D检测结果

Methods

  • 多视角图像特征提取
  • 相机截锥空间转化为3D世界空间
    • 使用DGSN将截锥空间离散化,每个离散化的点可以表示为
      在这里插入图片描述u_jv_j为图像坐标,d_j为沿相机光心的深度
    • 使用每个相机的外参进行逆投影得到全场景的3D坐标表示
      在这里插入图片描述
  • 3D坐标与2D图像特征融合得到3D位置编码结果:
    在这里插入图片描述
    • 3D坐标表示经过MLP进行3D位置编码,2D图像特征进行1x1卷积变换维度,随后将两种特征相加并flatten为向量输入解码器
  • query使用deform-detr的方式设置
  • 解码器与DETR相同,设置L层
    在这里插入图片描述

Thinking

  • 3D坐标生成部分,即截锥空间的获取实验部分交代了使用CaDDN的方法,这不是又回到了深度估计那一套吗?
  • 看完回顾觉得最开始的motivation提的很好,但是最后的实现好像还是不是那么优雅

3. BEVDet

motivation

  • 进行BEV检测的范式创新,使用现有的工作搭建自己的框架
  • 将整体的pipeline分为低耦合的四个模块,后续工作可以针对每个单独的模块进行优化(这符合提出此篇论文的初衷——范式创新(在此以前,还有什么不同的范式吗?))

Methods

  • BEV空间的过拟合促使此篇论文还提出了单独在BEV空间进行数据增强策略以正则化
  • BEV Encoder可以用于感知一些BEV空间特有的语义:尺度、速度、方向
  • 过拟合的原因之一:图像输入为6视角,而BEV只有单视角,数据量的减少在BEV空间的学习会过拟合
  • scale-NMS:传统NMS会将较小的目标抑制,在BEV空间下对小目标进行缩放然后NMS

Thinking

  • 外积操作相当昂贵(存储、算力)
  • 能否使用DETR的方式进行端到端的BEV训练,从而避免NMS?这将是另一种范式吗?——前两个模块不变,得到BEV特征后,直接对BEV特征执行transformer的query,使用二部匹配来得到结果这可行吗?
  • BEV Encoder有必要吗?有进行特征图可视化来证实吗?

4. BEVDet4D

在这里插入图片描述

Motivation

  • 扩展了BEVDet范式,通过融合时序特征来提升检测的效果
  • 时序特征的引入能够让相机进行更好的速度估计任务
    主要工作:
  • 通过保留前几帧的BEV特征来扩充BEV特征

5. BEVDepth

Motivation

  • 可视化原本的深度估计结果发现与GT有较大的偏差,因此使用lidar生成的深度图进行深度监督
  • 将相机的内外参通过MLP后与相机的特征进行加权
  • 加速了外积的效率

6. Fast-BEV

Motivation

  • 现有的BEV方法很难在板端进行部署或者推理很慢
    • transformer算子难以支持
      在这里插入图片描述
    • 深度估计算法计算很复杂
      在这里插入图片描述

Methods

  • 假设深度按照相机光心方向均匀分布,通过变换矩阵无学习地进行转换(使用查表的方式)
  • 需要基于相机位置和内外参矩阵不变的假设
  • 最终将每个视角的相机所投射的体素聚合为一个体素的操作很昂贵,因此本文将每个视角投射到同一个体素,如果多个视角有重叠,则只使用第一个遇到的视角的体素
  • 在BEV Encoder部分采用了策略降低计算的成本
    • 降维:将Z和C维度合并
    • 多尺度合并
  • 使用连续4帧进行时序融合
  • 使用pointpillars的检测头

Thinking:

  • 本文的motivation是BEV方案落地的问题,学术界的方法在落地上存在巨大的gap,transformer算子的实现以及轻量化网络的实现催生了本文的产生
  • 实际上方法上没有太多创新,甚至使用的都是比较老的方式,但是完成了部署的pipeline,实验的设置上也强调了更多延迟的比较,同时在板端进行了实验比较
    在这里插入图片描述

7. BEVFormer

在这里插入图片描述

Motivation

  • 同时聚合时空信息,时间信息使用时间自注意力,空间信息通过交叉注意力融合多视图的信息
  • 传统的多视角图像感知使用跨相机的后处理方案,无法将不同视角的特征进行交互
  • 业界目前的BEV方法一种依赖于深度估计(BEVDet相关的算法),另一种依赖于3D先验
  • 目前聚合时间信息的工作不多,并且单纯聚合不同时间的BEV特征,由于场景的变换,很不准确,同时时间信息对于遮挡目标的预测很有帮助
  • 本文提出了一种使用transformer学习BEV特征的方式

Methods

  1. 空间交叉注意力机制
  • 预定义BEV queries(H,W,C)每个query对应一个BEV特征的像素点
  • 将BEV query lift为柱状特征,采样N个3D 参考点,然后project(投影矩阵)到二维图像得到2D points,确认哪些视图的特征被hit了
    • lift操作:预设一组离散的z坐标,将BEV queries提升到三维特征(这难道不是lift相同的操作吗?)
    • 将同一个pillar内的3D参考点使用内外参矩阵投影到不同视图的图像中,这一过程未必会涉及所有视角的图像,因此投射的头像称为被hit
    • 将被hit的图像特征与BEV query计算交叉注意力
  • 将这些2D points周围的特征作为参考特征,作加权求和得到最终的空间交叉注意力的输出
    在这里插入图片描述
  1. 时间自注意力
  • 首先根据自车运动补偿当前BEV query和历史的BEV Feature之间的位置
  • 对2帧BEV特征进行自注意力计算
  • 第一帧直接退化为BEV query和自己的注意力计算

Thinking

  • 确实提供了另一种生成BEV特征的方式,并且融合了时空信息,但是其中BEV query的lift操作和LSS的lift在某种程度上难道不是一样的吗?区别可能是LSS使用了内积操作而这里没有
  • GPT解释这篇论文的BEV query时提供了一个对query很好的解释,可以将BEV query看做一个提问者,“这个BEV特征点对应的图像特征是什么?”,然后通过与图像特征的交叉注意力计算得到,迭代学习得到最终的BEV特征

欢迎讨论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值