0
点赞
收藏
分享

微信扫一扫

PolarFormer:Multi-camera 3D Object Detection with Polar Transformer——论文笔记

非衣所思 2023-06-25 阅读 54

参考代码:PolarFormer

1. 概述

在RoboBEV中变化不同的输入情况下PolarFormer的退化情况:
在这里插入图片描述

2. 方法设计

2.1 整体pipeline

整个bev感知算法的结构见下图所示:
在这里插入图片描述
结合上图内容可以将整个算法结构划分为如下几个部分:

  • 1)使用backbone+fpn实现图像特征抽取
  • 2)以车体为中心对感知范围划分不同的扇区,并以扇区构建query,通过cross-attention的形式得到各个扇区的特征表达
  • 3)对各个扇区通过双线性插值得到完整bev特征,在此基础上通过self-attention完成bev特征优化和对齐
  • 4)设置需要感知目标的query通过mul-scale deformable attention实现在多尺度特征下的感知

2.2 fov到bev的转换

这篇文章中bev特征的表达和感知都是在极坐标下完成的,因而需要在特征转换的时候也需要直角坐标系到极坐标系的转换,如下图:
在这里插入图片描述

对于图像中的点 ( x ( I ) , y ( I ) ) (x^{(I)},y^{(I)}) (x(I),y(I)),图像视锥坐标系下的点 ( x ( C ) , y ( C ) , z ( C ) ) (x^{(C)},y^{(C)},z^{(C)}) (x(C),y(C),z(C)),极坐标系下的点 ( ϕ P , ρ ( P ) ) (\phi^{P},\rho^{(P)}) (ϕP,ρ(P)),它们的转换关系为:
ϕ ( P ) = a r c t a n x ( C ) z ( C ) = a r c t a n x ( I ) − u 0 f x \phi^{(P)}=arctan\frac{x^{(C)}}{z^{(C)}}=arctan\frac{x^{(I)}-u_0}{f_x} ϕ(P)=arctanz(C)x(C)=arctanfxx(I)u0
ρ ( P ) = ( x ( C ) ) 2 + ( z ( C ) ) 2 = z ( C ) ( x ( I ) − u 0 f x ) 2 + 1 \rho^{(P)}=\sqrt{(x^{(C)})^2+(z^{(C)})^2}=z^{(C)}\sqrt{(\frac{x^{(I)}-u_0}{f_x})^2+1} ρ(P)=(x(C))2+(z(C))2 =z(C)(fxx(I)u0)2+1
上面的转换关系会在生成GT的过程中参与到,而在对应特征转换和预测过程中是不会怎么涉及的,这里没有假定扇形区域深度的概念,对于扇形范围的特征为 p ^ x , u , w ∈ R R u ∗ C \hat{p}_{x,u,w}\in R^{R_u*C} p^x,u,wRRuC,其中 ( x , u , w , R u ) (x,u,w,R_u) (x,u,w,Ru)分别代表camera_id,多尺度特征index,特征的宽度和极坐标的范围(也就是对应的range)。则对应的图像特征为 f x , u , w ∈ R H u ∗ C f_{x,u,w}\in R^{H_u*C} fx,u,wRHuC,那么后面就是根据cross-attention实现扇区特征的获取:
p n , u , w = M u l t i H e a d ( p ^ n , u , w , f x , u , w , f x , u , w ) p_{n,u,w}=MultiHead(\hat{p}_{n,u,w},f_{x,u,w},f_{x,u,w}) pn,u,w=MultiHead(p^n,u,w,fx,u,w,fx,u,w)
上面得到的是一个扇区的特征表达,那么周视的完整bev特征表达就是这些扇区的叠加:
p n , u = S t a c k ( [ p n , u , 1 , … , p n , u , w u ] , d i m = 1 ) ∈ R R u ∗ W ∗ C p_{n,u}=Stack([p_{n,u,1},\dots,p_{n,u,w_u}], dim=1)\in R^{R_u*W*C} pn,u=Stack([pn,u,1,,pn,u,wu],dim=1)RRuWC
按照上面的过程已经得到一个特征scale下的表达,则实际bev极坐标到图像视锥极坐标的转换就需要通过采样的方式实现了,这里也是借鉴了世界坐标到图像坐标的转换,也就是
( ϕ P , ρ ( P ) ) = C a m I C a m E ( ϕ W , ρ ( W ) ) (\phi^{P},\rho^{(P)})=Cam_ICam_E(\phi^{W},\rho^{(W)}) (ϕP,ρ(P))=CamICamE(ϕW,ρ(W))
然后对这些投影过来的点按照双线性插值的方式获取实际bev极坐标下的特征表达:
G u ( ρ i ( P ) , ϕ j P ) = 1 ∑ n = 1 N ∑ n = 1 Z λ n ( ρ i ( P ) , ϕ i ( P ) , z k ( P ) ) ⋅ ∑ n = 1 N ∑ n = 1 Z λ n ( ρ i ( P ) , ϕ i ( P ) , z k ( P ) ) B ( P n , u , ( x ˉ i , j , k , n ( I ) , r ˉ i , j , n ) ) G_u(\rho^{(P)}_i,\phi^{P}_j)=\frac{1}{\sum_{n=1}^N\sum_{n=1}^Z\lambda_n(\rho_i^{(P)},\phi_i^{(P)},z_k^{(P)})}\cdot\sum_{n=1}^N\sum_{n=1}^Z\lambda_n(\rho_i^{(P)},\phi_i^{(P)},z_k^{(P)})\mathcal{B}(P_{n,u},(\bar{x}_{i,j,k,n}^{(I)},\bar{r}_{i,j,n})) Gu(ρi(P),ϕjP)=n=1Nn=1Zλn(ρi(P),ϕi(P),zk(P))1n=1Nn=1Zλn(ρi(P),ϕi(P),zk(P))B(Pn,u,(xˉi,j,k,n(I),rˉi,j,n))
上面得到的特征还是比较原始的特征还需要经过几层self-attention网络进行特征优化和对齐操作。那么使用这样的坐标达标具体会有什么样的收益?见下表
在这里插入图片描述
而这里的扇形划分分辨率和range对性能的影响:
在这里插入图片描述
极坐标建模与直角坐标建模在不同距离下的性能差异:
在这里插入图片描述

2.3 感知头部分

前面得到的bev特征是多尺度的,则在感知头部分便使用multi-scale deformable attention构建head部分,其结构见下图所示:
在这里插入图片描述
对于multi-scale特征给网络性能带来的影响见下表:
在这里插入图片描述

3. 实验结果

nuScenes test set:
在这里插入图片描述

举报

相关推荐

0 条评论