【论文笔记】Diffusion-based 3D Object Detection with Random Boxes

原文链接:https://arxiv.org/abs/2309.02049

1. 引言

基于激光雷达的3D目标检测方法通常依赖经验设置锚框或中心半径,而本文探索从随机框直接预测真实边界框。

本文提出Diff3Det,使用扩散模型进行3D目标检测。首先为真实边界框添加高斯噪声,获得带噪声的边界框,然后从BEV特征图提取RoI特征,并输入到解码器预测带噪声边界框与真实边界框的偏移。这样,模型能从带噪声边界框中恢复真实边界框。

3. 方法

3.1 对扩散模型的回顾

此文3.1节(本文中,数据用 x 0 , x 1 , ⋯   , x t , ⋯   , x T x_0,x_1,\cdots,x_t,\cdots,x_T x0,x1,⋯,xt,⋯,xT表示)。

本文将真实边界框作为 x 0 ∈ R N × 5 x_0\in\mathbb{R}^{N\times5} x0∈RN×5,并训练神经网络 f θ ( x t , t , x ) f_\theta(x_t,t,x) fθ(xt,t,x)预测 x 0 x_0 x0,其中 x t x_t xt为带噪声边界框, x x x为相应的点云特征。

3.2 概述

本文的方法包含由扩散指导的提案生成器(通过为真实边界框添加高斯噪声得到 x t x_t xt),编码器(3D体素主干,提取点云特征)和解码器(从 x t x_t xt和相应的RoI特征预测真实边界框),如上图所示。

3.3 扩散指导的提案生成器

BEV是3D目标检测的有效表达,本文使用BEV边界框 ( c x , c y , d x , d y , θ ) (cx,cy,dx,dy,\theta) (cx,cy,dx,dy,θ)表达边界框。首先将真实边界框的数量复制到 N N N,并归一化到0和1之间,并引入信号缩放因数,控制扩散过程的信噪比。然后按照下式添加噪声,得到提案框 x t x_t xt: x t = α ˉ t x 0 + 1 − α ˉ t ϵ x_t=\sqrt{\bar{\alpha}_t}x_0+\sqrt{1-\bar{\alpha}_t}\epsilon xt=αˉt x0+1−αˉt ϵ其中 ϵ ∼ N ( 0 , I 5 ) \epsilon\sim\mathcal{N}(0,I_5) ϵ∼N(0,I5)。

由于从不含激光雷达点的提案框中恢复真实边界框很困难,因此统计各提案框内的点数 m m m,并设置阈值 η \eta η。若 m < η m<\eta m<η,移除提案框并替换为随机边界框,直到所有提案框都至少有 η \eta η个点。该方法同样被用于提案框的细化,因为本文发现提案框的质量是该方法成功的关键(见后文)。

尺寸的相关系数 :真实世界中物体的长宽有一定关系,因此将随机边界框的长和宽看作两个独立的随机变量是不合适的。本文引入相关系数以限制随机边界框的尺寸: W = ρ L + 1 − ρ 2 X W=\rho L+\sqrt{1-\rho^2}X W=ρL+1−ρ2 X其中 L , X ∼ N ( 0 , 1 ) L,X\sim\mathcal{N}(0,1) L,X∼N(0,1)且独立, ρ = 0.8 \rho=0.8 ρ=0.8。此后,将随机变量 W , L W,L W,L分别缩放到 ( 0 , w ) (0,w) (0,w)和 ( 0 , l ) (0,l) (0,l)范围内作为提案的尺寸。

动态时间步长 :在训练的早期,从带噪声样本恢复真值很困难,因此本文使用正弦调度控制时间步长范围,噪声在训练阶段逐步提高。设 n n n为训练总轮数, T T T为需要的最大时间。则当前轮次 x x x的最大时间 T max ⁡ T_{\max} Tmax为: T max ⁡ = { T ⌊ sin ⁡ ( cos ⁡ − 1 ( ω T ) σ n x + sin ⁡ − 1 ( ω T ) ) ⌋ x < σ n T x ≥ σ n T_{\max}=\left\{\begin{matrix}T\left \lfloor \sin(\frac{\cos^{-1}(\frac{\omega}{T})}{\sigma n}x+\sin^{-1}(\frac{\omega}{T})) \right \rfloor &x<\sigma n\\T&x\geq\sigma n\end{matrix}\right. Tmax={T⌊sin(σncos−1(Tω)x+sin−1(Tω))⌋Tx<σnx≥σn其中超参数 ω \omega ω和 σ \sigma σ分别控制第一轮训练的步数和训练到达最大步数 T T T的轮数。

3.4 损失函数

给定真实物体集合 y = { y i } i = 1 M y=\{y_i\}{i=1}^M y={yi}i=1M和预测集合 y ^ = { y ^ i } i = 1 N \hat{y}=\{\hat{y}i\}{i=1}^N y^={y^i}i=1N,匹配代价定义如下: C match = λ c l s L c l s + λ r e g L r e g + λ I o U L B E V _ I o U C = arg min ⁡ i ∈ M , j ∈ N C match ( y ^ i , y j ) \mathcal{C}\text{match}=\lambda_{cls}\mathcal{L}{cls}+\lambda{reg}\mathcal{L}{reg}+\lambda{IoU}\mathcal{L}{BEV\IoU}\\\mathcal{C}=\argmin{i\in M,j\in N}\mathcal{C}\text{match}(\hat{y}i,y_j) Cmatch=λclsLcls+λregLreg+λIoULBEV_IoUC=i∈M,j∈NargminCmatch(y^i,yj)其中 L c l s \mathcal{L}{cls} Lcls为分类的focal损失, L r e g \mathcal{L}{reg} Lreg和 L B E V _ I o U \mathcal{L}{BEV\_IoU} LBEV_IoU分别为边界框预测的L1损失和BEV IoU损失。

训练损失仅对匹配物体对计算: L = λ c l s L c l s + λ r e g L r e g + λ I o U L D I o U \mathcal{L}=\lambda_{cls}\mathcal{L}{cls}+\lambda{reg}\mathcal{L}{reg}+\lambda{IoU}\mathcal{L}{DIoU} L=λclsLcls+λregLreg+λIoULDIoU其中 L D I o U \mathcal{L}{DIoU} LDIoU为旋转3D IoU损失。

3.5 推断阶段

推断阶段为从噪声到边界框的去噪过程。Diff3Det迭代地从采样自高斯分布的边界框细化预测。给定随机边界框或上一步的预测边界框,解码器会给出当前的预测结果。下一步的提案框可按下式计算: x t − s = α t − s ( x t − 1 − α t ϵ θ ( t ) ( x t ) α t ) + 1 − α t − s − σ t 2 ϵ θ ( t ) ( x t ) + σ t ϵ t σ t = 1 − α t / α t − s ( 1 − α t − s ) / ( 1 − α t ) x_{t-s}=\sqrt{\alpha_{t-s}}(\frac{x_t-\sqrt{1-\alpha_t}\epsilon_\theta^{(t)}(x_t)}{\sqrt{\alpha_t}})+\sqrt{1-\alpha_{t-s}-\sigma_t^2}\epsilon_\theta^{(t)}(x_t)+\sigma_t\epsilon_t\\\sigma_t=\sqrt{\frac{1-\alpha_t/\alpha_{t-s}}{(1-\alpha_{t-s})/(1-\alpha_t)}} xt−s=αt−s (αt xt−1−αt ϵθ(t)(xt))+1−αt−s−σt2 ϵθ(t)(xt)+σtϵtσt=(1−αt−s)/(1−αt)1−αt/αt−s 其中 x t , x t − s x_t,x_{t-s} xt,xt−s分别表示相邻两步的提案框, ϵ θ ( t ) ( x t ) \epsilon_\theta^{(t)}(x_t) ϵθ(t)(xt)为解码器预测的偏移量, ϵ t \epsilon_t ϵt为高斯噪声。采样步数 m m m可以大于1,且 s = T / m s=T/m s=T/m。若使用多步迭代,需要使用NMS处理冗余边界框。

4. 结果与分析

4.3 主要结果

Diff3Det能超过基于锚框的经典模型的性能。

当步数大于1时,性能提升主要在困难物体上,因为更多的步数导致更多的预测边界框,对困难物体的检测有利。但过多的预测会混淆NMS的处理,导致简单物体的性能略微下降。

4.4 消融研究

提出的组件 :针对扩散指导的提案生成器,本文以完全随机边界框作为基准,逐步添加(1)带噪声的真实边界框;(2)丢弃点数为0的随机框并进行重采样;(3)使用尺寸相关性约束边界框长宽比;(4)动态时间步长,性能均有提升。

采样步数:推断时,适当地增加采样步数能提高性能。

4.5 局限性

解码器从随机边界框回归预测结果比较困难,导致相对慢的收敛速度。

相关推荐
没有余地 EliasJie31 分钟前
Windows Ubuntu下搭建深度学习Pytorch训练框架与转换环境TensorRT
pytorch·windows·深度学习·ubuntu·pycharm·conda·tensorflow
技术无疆1 小时前
【Python】Streamlit:为数据科学与机器学习打造的简易应用框架
开发语言·人工智能·python·深度学习·神经网络·机器学习·数据挖掘
xuehaishijue1 小时前
红外画面空中目标检测系统源码分享
人工智能·目标检测·计算机视觉
浊酒南街1 小时前
吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)2.7-2.8
人工智能·深度学习·神经网络
被制作时长两年半的个人练习生2 小时前
【pytorch】权重为0的情况
人工智能·pytorch·深度学习
Q_w77423 小时前
计算机视觉小目标检测模型
人工智能·目标检测·计算机视觉
摇曳的树3 小时前
【3D目标检测】激光雷达和相机联合标定(二)——MATLAB联合标定工具使用
数码相机·目标检测·3d
阿利同学8 小时前
蘑菇分类检测数据集 21类蘑菇 8800张 带标注 voc yolo
目标检测·数据集·获取qq1309399183·蘑菇分类检测数据集
xiandong209 小时前
240929-CGAN条件生成对抗网络
图像处理·人工智能·深度学习·神经网络·生成对抗网络·计算机视觉
innutritious10 小时前
车辆重识别(2020NIPS去噪扩散概率模型)论文阅读2024/9/27
人工智能·深度学习·计算机视觉