这篇文章整体没什么好说的,只是将Deformable DETR应用到了LiDAR 3D检测任务上,所以我们这里看一下其细节部分就行。
1. 方法
下图是Li3DeTr 的整体结构, 首先网络的输入是由LiDAR得到的点云数据,点云首先经过SparseConv 或者 PointPillars 网络将点云数据转到BEV上,然后经过FPN生成多尺度的BEV特征,这里 (SparseConv/PointPillars + FPN)称为backbone部分,然后经过由多层encoder layer组成的encoder部分,encoder部分和deformable DETR中的定义相同,每个feature map上的pixel作为query,来自多level的特征图由deformable 形式选择的点作为value进行融合,融合后的特征称为LiDAR Global Features, 接着将global features 送入到decoder中进行解码,这里和deformable detr的操作也类似,即一组可学习参数称为queries,先经过MHSA交互,再送入cross attention中与global feature交互,cross attention中同样采用的deformable attention的形式降低计算量,注意cross attention中deformable使用的ref_pts 由queries经过单层线性层映射得到。decoder 由多层decoder layer构成,最终输出进行set2set_prediction的监督约束。
ok,接下来看下细节:
- encoder 完全采用的deformable detr的detr结构
- decoder layer的每一层ref_pts, 由输入query经FC生成,
- decoder layer 中attention的计算方式 , 其中表示第j层的global feat,总共4个level, 表示将第i个ref_pts 映射到第j个level尺度上的位置,是由经过FC层生成的,可以发现和deformable attention相比,这里没有生成offset,而是每个level的feat上只取对应ref_pts位置的双线性插值特征进行加权和。最后query的更新方式为 这里 是对ref_pts的位置编码,有点奇怪的是这里是在skip-connection的基础上又加上了位置编码,然后再进行LayerNorm?
- decoder layer的每一层bbox_embed 预测的是相对于前一层layer的ref_pts的delta增量,包括.
2. 实验
消融实验
-
object category
文章对比的transformer方法是Object-DGCNN,因为作者认为该模型是和本文方法类似的standalone transformer 模型,对比更公平。作者认为该方法由于使用多尺度的deformable attention能够充分利用lidar的更长距离特征,因此对于大目标提升更明显,比如vehicle、trailer,truck等,即使是数目较少的bicycle类本文方法相对于Obj-DGCNN也提升了6.9个点,作者认为是cross attention中local和global特征的抽取。
-
object distance
本文对30m外的目标的指标mAP提升最明显,作者认为是本文的attention 建模了long-range的交互,即使远处的点云较稀疏。
-
object size
基于transformer的目标在大目标上的提升会更高一些。
- attention blocks
这个地方没有搞懂为什么本文的cross attention和deformable detr差距不大但指标带来这么大变化,需要看下代码。 - number of queries
900个query效果最好,这个可能得依赖具体的任务场景
3. 结论
本质就是DeformableDETR在LiDAR数据上的应用。