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

【论文笔记】BEVNeXt: Reviving Dense BEV Frameworks for 3D Object Detection

原文链接:https://arxiv.org/pdf/2312.01696

简介:最近,在摄像头3D目标检测任务中,基于查询的Transformer解码器正在超越传统密集BEV方法。但密集BEV框架有着更好的深度估计和目标定位能力,能全面精确地描绘3D场景。本文通过引入增强组件来解决现有密集BEV方法的缺点,包括条件随机场(CRF)调制的深度估计模块(保证物体级别的一致性),带有扩展感受野的长期时间聚合模块,以及两阶段目标解码器(将透视技术与CRF调制的深度嵌入组合)。上述增强带来了现代化密集BEV框架BEVNeXt。实验表明,BEVNeXt能超过基于密集BEV的或基于查询的方法,在NuScenes数据集上达到SotA性能。

对于目前的密集BEV方法弱于基于查询的方法,本文将原因总结如下:

  • 2D建模不足。基于稀疏查询的方法证明了2D建模对检测性能的影响。现有的提高2D建模能力的方法包括引入激光雷达监督的深度估计辅助任务,但激光雷达分辨率较低,会导致不精确的深度感知。
  • 时间建模不合适。由于自车与目标运动,增大时间融合时的感受野很关键。基于查询的方法可以通过全局注意力提高时间融合时的感受野,而密集BEV方法受限于卷积的局部性。
  • 提升时的特征失真。基于稀疏查询的方法从2D空间采样图像特征,避免了视图变换时带来的特征失真。

0. 概述

在这里插入图片描述
本文的BEVNeXt基于LSS框架,关键组件有三:

  • BEV生成:给定多视图图像 { I i } i = 1 6 \{I^i\}_{i=1}^6 {Ii}i=16,主干提取多尺度特征 { F 1 / n i } n = 4 , 8 , 16 , 32 \{F^i_{1/n}\}_{n=4,8,16,32} {F1/ni}n=4,8,16,32并用深度网络预测深度概率 { d i } i = 1 6 \{d^i\}_{i=1}^6 {di}i=16。CRF层利用颜色信息 { I i } i = 1 6 \{I^i\}_{i=1}^6 {Ii}i=16调制 { d i } i = 1 6 \{d^i\}_{i=1}^6 {di}i=16,得到物体级别一致的深度概率 { d ~ i } i = 1 6 \{\tilde d^i\}_{i=1}^6 {d~i}i=16
  • BEV编码器:BEV编码器用于融合历史 k k k帧的BEV特征,得到统一BEV表达 B ~ \tilde B B~。Res2Fusion满足了聚合过程中充足的感受野需求。
  • 检测头:基于中心的3D检测头处理BEV编码器的输出 B ~ \tilde B B~,解码为3D物体。CRF调制的深度概率 { d ~ i } i = 1 6 \{\tilde d^i\}_{i=1}^6 {d~i}i=16被用于嵌入,帮助检测头关注有判别力的2D特征。

1. CRF调制的深度估计

密集BEV方法中,深度估计作为2D辅助任务,可提高2D建模能力并减小视图变换时的失真。由于深度估计可视为分割任务(类别表示特定深度范围),本文使用条件随机场(CRF)增强深度估计质量。CRF调制通过利用色彩平滑性先验,保证物体级别的深度一致性。令 { X 1 , ⋯ , X N } \{X_1,\cdots,X_N\} {X1,,XN}表示降采样特征图 F 1 / n i F^i_{1/n} F1/ni中的 N N N个像素, { D 1 , ⋯ , D k } \{D_1,\cdots,D_k\} {D1,,Dk}表示 k k k个离散深度区间。深度网络的目标是为每个像素分配一个深度区间: d = { x 1 , ⋯ , x N ∣ x i ∈ { D 1 , ⋯ , D k } } d=\{x_1,\cdots,x_N|x_i\in\{D_1,\cdots,D_k\}\} d={x1,,xNxi{D1,,Dk}}。给定分配 d d d,目标是最小化相应的能量代价 E ( d ∣ I ) E(d|I) E(dI)
E ( d ∣ I ) = ∑ i ψ u ( x i ) + ∑ i ≠ j ψ p ( x i , x j ) E(d|I)=\sum_i\psi_u(x_i)+\sum_{i\neq j}\psi_p(x_i,x_j) E(dI)=iψu(xi)+i=jψp(xi,xj)

其中 ∑ i ψ u ( x i ) \sum_i\psi_u(x_i) iψu(xi)为一元势,测量深度网络初始输出的代价。成对势定义为:
ψ p ( x i , x j ) = ∑ w w exp ⁡ ( − ∣ I ˉ i − I ˉ j ∣ 2 2 θ ) ∣ x i − x j ∣ \psi_p(x_i,x_j)=\sum_ww\exp(-\frac{|\bar I_i-\bar I_j|^2}{2\theta})|x_i-x_j| ψp(xi,xj)=wwexp(2θIˉiIˉj2)xixj

其中 I ˉ i \bar I_i Iˉi为相应于降采样特征图像素的图像patch内的平均RGB值, ∣ x i − x j ∣ |x_i-x_j| xixj为两个深度区间的标签相容性(即中心距离)。CRF位于深度网络后,输出记为 d ~ \tilde d d~

使用激光雷达点云作为深度监督的方法通常在低分辨率图像特征图上进行深度估计以保证标签覆盖率。实验证明当图像特征图的分辨率增加时,CRF调制的性能明显更优。

2. Res2Fusion

在这里插入图片描述
时间融合时,扩大卷积的感受野会带来额外计算量且容易导致过拟合。本文提出Res2Fusion,采用Res2Net中的多尺度卷积块增大感受野,如图©所示。给定 k k k帧历史BEV特征 { B t − k + 1 , ⋯ , B t } \{B_{t-k+1},\cdots,B_t\} {Btk+1,,Bt},首先将BEV特征分为 g = k / w g=k/w g=k/w组,其中 w w w为固定的窗口大小。对每个组分别使用 1 × 1 1\times1 1×1卷积 { K i 1 × 1 } i = 1 g \{K_i^{1\times1}\}_{i=1}^g {Ki1×1}i=1g,减小通道维度:
B i ′ = K i 1 × 1 ( [ B t − ( i + 1 ) × w ; ⋯ ; B t − i × w ] ) B'_i=K_i^{1\times1}([B_{t-(i+1)\times w};\cdots;B_{t-i\times w}]) Bi=Ki1×1([Bt(i+1)×w;;Bti×w])

其中 [ ⋅ ; ⋅ ] [\cdot;\cdot] [;]为拼接操作。然后使用多尺度卷积:
B i ′ ′ = { K i 3 × 3 ( B i ′ ) 若 i = g K i 3 × 3 ( B i ′ + B i + 1 ′ ) 若 0 < i < g B i ′ 若 i = 0 B''_i=\begin{cases}K_i^{3\times3}(B'_i)& 若i=g\\ K_i^{3\times3}(B'_i+B'_{i+1})&若0<i<g\\ B'_i&若i=0\end{cases} Bi′′= Ki3×3(Bi)Ki3×3(Bi+Bi+1)Bii=g0<i<gi=0

这允许模型跳过跨历史BEV的自车运动变换,从而避免运动不对齐问题。最后,Res2Fusion的输出为
B ~ = K f i n a l 1 × 1 ( [ B g ′ ′ ; ⋯ ; B 0 ′ ′ ] ) \tilde B=K^{1\times1}_{final}([B''_g;\cdots;B''_0]) B~=Kfinal1×1([Bg′′;;B0′′])

该输出会通过带步长的层并使用FPN获取多尺度信息。

3. 带透视细化的目标检测器

由于前向投影(如LSS)会导致特征失真,本文提出补偿措施。

使用CenterPoint的方法计算物体热图 H H H,并采样特征 B c e n t e r = { B ~ x , y ∣ H x , y > τ } B^{center}=\{\tilde B_{x,y}|H_{x,y}>\tau\} Bcenter={B~x,yHx,y>τ},其中 τ \tau τ为热图阈值。将 B c e n t e r B^{center} Bcenter通过考虑 7 × 7 7\times 7 7×7邻域,拓展到 B r o i B^{roi} Broi。随后, B r o i B^{roi} Broi与可学习查询 { Q x , y } \{Q_{x,y}\} {Qx,y}一起通过空间交叉注意力层,进行透视细化:
S C A ( B x , y r o i , F 1 / n ) = ∑ i = 1 N ∑ j = 1 N r e f F d ( B x , y r o i + Q x , y , P i ( x , y , z j ) , F 1 / n i ) SCA(B_{x,y}^{roi},F_{1/n})=\sum_{i=1}^N\sum_{j=1}^{N_{ref}}\mathcal F_d(B^{roi}_{x,y}+Q_{x,y},\mathcal P_i(x,y,z_j),F^i_{1/n}) SCA(Bx,yroi,F1/n)=i=1Nj=1NrefFd(Bx,yroi+Qx,y,Pi(x,y,zj),F1/ni)

其中 F d \mathcal F_d Fd为可变形注意力, P i ( x , y , z j ) \mathcal P_i(x,y,z_j) Pi(x,y,zj)为高度在 z j z_j zj处的参考点。为引入深度指导,本文为2D特征嵌入深度概率 d ~ \tilde d d~
S C A ( B x , y r o i , F 1 / n ) = ∑ i = 1 N ∑ j = 1 N r e f F d ( B x , y r o i + Q x , y , P i ( x , y , z j ) , F 1 / n i + M L P ( d ~ i ) ) SCA(B_{x,y}^{roi},F_{1/n})=\sum_{i=1}^N\sum_{j=1}^{N_{ref}}\mathcal F_d(B^{roi}_{x,y}+Q_{x,y},\mathcal P_i(x,y,z_j),F^i_{1/n}+MLP(\tilde d^i)) SCA(Bx,yroi,F1/n)=i=1Nj=1NrefFd(Bx,yroi+Qx,y,Pi(x,y,zj),F1/ni+MLP(d~i))

最后,使用CenterPoint的回归头从 B ~ r o i \tilde B^{roi} B~roi预测物体。


http://www.mrgr.cn/news/31770.html

相关文章:

  • TMS320F28335的定时器中断实验
  • 数据结构-顺序表
  • Linux常用命令(部分学习待继续补充)
  • (undone) 声音信号处理基础知识(2)
  • 【免杀】CS免杀——ps1免杀
  • 继承和多态
  • 聊聊通过阅读书籍类型来判断人
  • 【算法——二分查找】
  • 500元以内头戴式耳机哪款好?盘点500元以内百元宝藏品牌机型推荐
  • 系统架构设计师 - 案例特训专题 - 软件工程篇
  • Leetcode Hot 100刷题记录 -Day18(反转链表)
  • MongoDB在Linux系统中的安装与配置指南
  • 搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(一)-概述
  • sourceTree使用脚本一键push代码到gerrit
  • Python使用总结之FastAPI高级功能探索:数据库集成与依赖注入
  • Redis使用场景 | 建议收藏✨
  • BCT 预估block change tracking file的大小
  • 系统分析与设计
  • 【服务器第二期】mobaxterm软件下载及连接
  • C#中DataGridView 的 CellPainting 事件的e.Handled = true