【论文阅读】3D Object Detection for Multi-frame 4D Automotive Millimeter-wave Radar Point Cloud

原文链接:https://ieeexplore.ieee.org/abstract/document/9944629

I. 引言

  本文的框架分为三部分:使用雷达估计自车速度,对雷达点云的相对速度信息进行补偿得到绝对速度信息;将多帧雷达点云与最后一帧匹配;使用检测网络进行目标检测。
  本文的模型分为三个模块:伪图像编码器(将多帧雷达点云编码为含有时空信息的统一张量)、主干提取器和检测头(学习提取目标的时空信息并进行多尺度融合)。

IV. 方法

  流程图如下所示:

目标检测网络
点云预处理
检测头
主干网络
点云转换为伪图像
自运动补偿
速度补偿
多帧雷达点云
3D检测结果

A. 点云预处理

  雷达的直接输出是相对径向速度,首先需要补偿为绝对径向速度;由于自车运动,多帧点云的世界坐标系是不同的,需要使用平移和旋转变换进行多帧匹配。

(1) 雷达点云速度补偿

  自车在雷达位置处的速度估计方法有很多,如:(a) 使用高精度定位信息获取自车的质心速度和角速度,然后使用雷达相对自车质心的外参矩阵获取雷达速度;(b) 使用雷达点云信息获得雷达速度。本文使用方法(b)。
【论文阅读】3D Object Detection for Multi-frame 4D Automotive Millimeter-wave Radar Point Cloud_第1张图片
  4D雷达测得的相对径向速度 v d r v_d^r vdr可表达为点的单位方向向量 r \textbf{r} r和目标速度 v d \textbf{v}_d vd的点积(2D情况如上图所示,容易扩展到3D情况): v d r = v d cos ⁡ θ = v d ⋅ r = v d , x x R + v d , y y R + v d , z z R (1) v_d^r=v_d\cos\theta=\textbf{v}_d\cdot \textbf{r}=v_{d,x}\frac{x}{R}+v_{d,y}\frac{y}{R}+v_{d,z}\frac{z}{R}\tag{1} vdr=vdcosθ=vdr=vd,xRx+vd,yRy+vd,zRz(1)其中 R R R为目标的径向距离。
  对于来自静止物体(有相同的相对速度,即 v d = − v c \textbf{v}_d=-\textbf{v}_c vd=vc)的、含 N N N个点的点云,可以写成如下矩阵形式:
[ v d , 1 r v d , 2 r ⋮ v d , N r ] = [ x 1 R 1 y 1 R 1 z 1 R 1 x 2 R 2 y 2 R 2 z 2 R 2 ⋮ ⋮ ⋮ x N R N y N R N z N R N ] [ v d , x v d , y v d , z ] \begin{bmatrix} v_{d,1}^r\\ v_{d,2}^r\\ \vdots\\ v_{d,N}^r \end{bmatrix} = \begin{bmatrix} \frac{x_1}{R_1}&\frac{y_1}{R_1} &\frac{z_1}{R_1} \\ \frac{x_2}{R_2}&\frac{y_2}{R_2} &\frac{z_2}{R_2}\\ \vdots &\vdots &\vdots\\ \frac{x_N}{R_N}&\frac{y_N}{R_N} &\frac{z_N}{R_N}\end{bmatrix}\begin{bmatrix} v_{d,x}\\ v_{d,y}\\ v_{d,z} \end{bmatrix} vd,1rvd,2rvd,Nr=R1x1R2x2RNxNR1y1R2y2RNyNR1z1R2z2RNzNvd,xvd,yvd,z记为 v d r = H v d v^r_d=Hv_d vdr=Hvd,可用线性最小二乘法进行求解:
v ^ d = ( H T H ) − 1 H T v d r \hat{v}_d=(H^TH)^{-1}H^Tv_d^r v^d=(HTH)1HTvdr从上式可得雷达速度 v c \textbf{v}_c vc的估计( v ^ c = − v ^ d \hat\textbf{v}_c=-\hat{\textbf{v}}_d v^c=v^d)。
  由于实际会含有来自运动物体的点,会产生有偏的速度分布而导致误差,因此本文使用随机采样一致性(RANSAC)方法进行求解,以平滑含有噪声的数据。得到雷达速度后,可按 ( 1 ) (1) (1)式进行雷达径向速度 v c r \textbf{v}_c^r vcr的计算,从而求出绝对径向速度: v a r = v d r − v ^ c r \textbf{v}_a^r=\textbf{v}_d^r-\hat{\textbf{v}}_c^r var=vdrv^cr

(2) 雷达点云自运动补偿

  通过多帧点云匹配,减小自车运动对多帧检测的影响。
  设第 n n n帧点集为 P n = { p n 1 , p n 2 , ⋯   , p n m } P_n=\{p_n^1,p_n^2,\cdots,p_n^m\} Pn={pn1,pn2,,pnm},其中 p n k = [ x n k , y n k , z n k ] p_n^k=[x_n^k,y_n^k,z_n^k] pnk=[xnk,ynk,znk]。经过速度补偿后,可通过对绝对速度进行阈值过滤得到静态点集 Q n = { q n 1 , q n 2 , ⋯   , q n l } Q_n=\{q_n^1,q_n^2,\cdots,q_n^l\} Qn={qn1,qn2,,qnl}
  多帧点云匹配就是确定旋转矩阵 R R R和平移矩阵 t t t使得 ∀ i ,    q n i = R n − 1 q n − 1 i + t n − 1 (2) \forall i,\;q_n^i=R_{n-1}q_{n-1}^i+t_{n-1}\tag{2} i,qni=Rn1qn1i+tn1(2)可通过迭代最近点算法获得,该算法基于最小二乘方法迭代计算,使得误差平方和最小: arg min ⁡ R , t ∑ i = 1 l ∥ ( R n − 1 q n − 1 i + t n − 1 ) − q n i ∥ 2 \argmin_{R,t}\sum_{i=1}^l\left\|(R_{n-1}q_{n-1}^i+t_{n-1})-q_n^i\right\|^2 R,targmini=1l(Rn1qn1i+tn1)qni2将点云用式 ( 2 ) (2) (2)表示,并写为矩阵形式:
H = [ R , t ] ,    Y n − 1 n = H n − 1 P n − 1 H=[R,t], \;Y^n_{n-1}=H_{n-1}P_{n-1} H=[R,t],Yn1n=Hn1Pn1其中 Y n − 1 n Y_{n-1}^n Yn1n表示第 ( n − 1 ) (n-1) (n1)帧对齐到第 n n n帧后的点云。第 n n n帧及其对齐后的前 m m m帧点云或作为网络输入。
  注意每次仅会计算相邻帧之间的 H H H矩阵,并按 Y n − m n = H n − 1 Y n − m n − 1 Y_{n-m}^n=H_{n-1}Y_{n-m}^{n-1} Ynmn=Hn1Ynmn1将第 ( n − m ) (n-m) (nm)帧点云对齐到第 n n n帧。

B.目标检测网络

(1) 点云到伪图像的转换

  由于雷达点云的稀疏性和噪声,使用基于点的方法提取特征具有挑战性,因此本文选择基于网格的方法。
  首先,将点云范围限制在 R x × R y × R z R_x\times R_y\times R_z Rx×Ry×Rz的范围内,然后将点云柱体化并使用主体内各点特征的均值(下式下标 c c c)和点到柱体中心的偏移量(下式下标 p p p)作为点的额外特征,即增强后的点为 p = [ x , y , z , v , I , x c , y c , z c , v c , I c , x p , y p , z p ] p=[x,y,z,v,I,x_c,y_c,z_c,v_c,I_c,x_p,y_p,z_p] p=[x,y,z,v,I,xc,yc,zc,vc,Ic,xp,yp,zp]  将每帧点云通过柱体化后,可得到大小为 ( D , P , N ) (D,P,N) (D,P,N)的张量,其中 D = 13 D=13 D=13为特征维度, P P P为非空柱体数, N N N为每个柱体内的(预定义的最大)点数。通过线性层+BN+ReLU改变特征维度后,在最后一维使用最大池化得到 ( C , P ) (C,P) (C,P)大小的张量(该操作可以看作在每个柱体内使用PointNet)。最后将这些非空体素按照其所属位置和帧数“分散”,得到大小为 ( C , T , H , W ) (C,T,H,W) (C,T,H,W)的伪图像。

(2) 主干网络

【论文阅读】3D Object Detection for Multi-frame 4D Automotive Millimeter-wave Radar Point Cloud_第2张图片
  主干网络分为两个子网络,分别进行空间下采样和反卷积空间上采样,最后拼接多尺度特征。

(3) 检测头

  使用类似PointPillars和SECOND的单阶段检测头。真实边界框(用上标 g t gt gt表示)和锚框(用上标 a a a表示)均由 ( x , y , z , w , l , h , θ ) (x,y,z,w,l,h,\theta) (x,y,z,w,l,h,θ)定义。二者的残差定义如下:
Δ x = x g t − x a d a , Δ y = y g t − y a d a , Δ z = z g t − z a h a , Δ w = log ⁡ w g t w a , Δ l = log ⁡ l g t l a , Δ h = log ⁡ h g t h a , Δ θ = θ g t − θ a \Delta x=\frac{x^{gt}-x^a}{d^a},\Delta y=\frac{y^{gt}-y^a}{d^a},\Delta z=\frac{z^{gt}-z^a}{h^a},\Delta w=\log\frac{w^{gt}}{w^a},\Delta l=\log\frac{l^{gt}}{l^a},\Delta h=\log\frac{h^{gt}}{h^a},\Delta\theta=\theta^{gt}-\theta^a Δx=daxgtxa,Δy=daygtya,Δz=hazgtza,Δw=logwawgt,Δl=loglalgt,Δh=loghahgt,Δθ=θgtθa其中 d = ( w a ) 2 + ( l a ) 2 d=\sqrt{(w^a)^2+(l^a)^2} d=(wa)2+(la)2
  角度损失: L θ = SmoothL1 ( sin ⁡ ( θ p − Δ θ ) ) L_\theta=\textup{SmoothL1}(\sin(\theta_p-\Delta\theta)) Lθ=SmoothL1(sin(θpΔθ))
  总的回归损失: L l o c = ∑ b ∈ ( x , y , z , w , l , h ) SmoothL1 ( b p − Δ b ) + L θ L_{loc}=\sum_{b\in(x,y,z,w,l,h)}\textup{SmoothL1}(b_p-\Delta b)+L_\theta Lloc=b(x,y,z,w,l,h)SmoothL1(bpΔb)+Lθ其中 SmoothL1 ( x ) = { 0.5 x 2 if      ∣ x ∣ < 1 ∣ x ∣ − 0.5 否 则 \textup{SmoothL1}(x)=\left\{\begin{matrix} 0.5x^2 &\textup{if}\;\; |x|<1 \\ |x|-0.5 &否则 \end{matrix}\right. SmoothL1(x)={0.5x2x0.5ifx<1
  由于角度损失不能区分翻转边界框,因此额外加入方向损失 L d i r L_{dir} Ldir
  目标分类损失: L c l s = − α a ( 1 − p a ) γ log ⁡ p a L_{cls}=-\alpha_a(1-p^a)^\gamma\log p^a Lcls=αa(1pa)γlogpa,其中 p a p^a pa为锚框的类别概率。
  综合损失为 L = 1 N p o s ( β l o c L l o c + β c l s L c l s + β d i r L d i r ) L=\frac{1}{N_{pos}}(\beta_{loc}L_{loc}+\beta_{cls}L_{cls}+\beta_{dir}L_{dir}) L=Npos1(βlocLloc+βclsLcls+βdirLdir)其中 N p o s N_{pos} Npos为正锚框的数量。

C. 实施细节

(1) 数据增广

  使用全局随机翻转、旋转和缩放。

(2) 网络设置

  ST块的结构如下所示(其中第一层卷积步长为2;每个卷积后紧跟BN+ReLU):

L层
1x3x3卷积
1x3x3卷积
输入
1x3x3卷积
平均
3x3x3卷积
输出

V. 实验

  本文方法与其余基于激光雷达点云的方法(使用雷达点云输入)进行了比较。实验结果表明本文的方法能达到总体最好的性能。

VI. 消融研究

  本文对不同结构(不同卷积核)的ST块、不同主干网络(细节)、帧数、体素大小和自运动补偿进行了消融研究。

你可能感兴趣的:(雷达3D目标检测,论文阅读,目标检测,深度学习)