三维目标检测----CT3D论文分享

三维目标检测----CT3D论文分享_第1张图片

代码链接

paper链接

论文总结

本文提出了一种目前二阶段的目标检测算法不能很好的提取proposal中的特征。本文提出了一种基于通道层面的self-attention结构来提高网络对于proposal中点的特征的提取能力。

下面简单介绍一下网络的处理流程:

三维目标检测----CT3D论文分享_第2张图片

与传统的二阶段目标检测器一样,首先使用一个backbone提取点样场景的特征,然后使用RPN网络生成proposal。注意,这里生成的proposal一个三维的边界框。文中为了能够更好的提取其周围点云的特征,将这个三维边界框转化成了一个不限制高度的圆柱体。圆柱体的直径是底边对角线长度的一定倍数。然后在生成的圆柱体中采样256个点,根据这些点来提取proposal的特征。文中使用了各个点点对原始的三维边界框(就是proposal提出的)的八个角点来计算相对位置作为点的特征的一部分。proposal中的原始特征可以表示为 [ △ p i c , △ p i 1 , . . . , △ p i 8 , f i r ] [\bigtriangleup p_i^c, \bigtriangleup p_i^1, ..., \bigtriangleup p_i^8, f_i^r] [pic,pi1,...,pi8,fir],其中 △ p i c \bigtriangleup p_i^c pic表示的相对三维边界框中心点的相对位置, △ p i 1 \bigtriangleup p_i^1 pi1表示的相对边界框角点的位置。 f i r f_i^r fir表示的是点的原始特征。

然后作者使用了一个self-attention网络来提取proposal中的点的特征。

但是在decoder部分,作者并没有使用transformer中的标准的decoder。不使用标准的decoder主要有以下两点原因:

  1. 如果使用transformer中的decoder网络,需要 M M M个quert嵌入,这将消耗大量的内存
  2. 另一方面,标准的transformer中的decoder网络是需要生成 M M M个单词或者句子,而我们只需要一个proposal的特征的表示。

此外,作者还分析了使用一个decoder来处理上述问题时还存在一个原始的transformer中的decoder仅关注了全局的信息,而忽略了各个通道的信息,作者的想法是在3D检测中,各个通道都是非常重要的,不同的通道之间通常意味着不同的几何关系。因此我们要重视不同通道的。所以设计了一个通道层面的re-weigthing网络。

三维目标检测----CT3D论文分享_第3张图片

a)是原始的transformer中的decoder计算权重的方式。b)是作者提出的在通道层面赋予每个点不同权重的方式。其中a)主要关注的是全局信息,b)主要关注的是局部信息,因此c)将两者结合了起来。

然后将生成的特征用于计算置信度和进一步调整三维边界框。

实验结果:

三维目标检测----CT3D论文分享_第4张图片

从表中可以看出,作者的网络在KITTI的test数据集上还是取得了不错的效果。超越了PV-RCNN和Voxel-RCNN。

三维目标检测----CT3D论文分享_第5张图片

该表展示了作者设计的第二阶段网络对于模型性能提升的影响。从表中可以看出,作者设计的二阶段的网络对模型的性能的提升非常大。

三维目标检测----CT3D论文分享_第6张图片

第二三行展示了作者提出的proposal-to-point的效果的对比,从表中结果可以看出,这部分其实对于网络性能的影响非常小。仅0.17%左右。第1行和第3行展示了self-attention中的encoder的作用,该方法提升了2.2%,是一个非常大的提升。此外,作者设计的channel-wise的decoder也在一定程度上提高了模型的精度。

可用知识点

可以使用self-attention中的decoder来提取点云的特征。从文中的结果看出,该部分网络对于模型性能的提升是巨大的。此外,在提取proposal的时候,可以在一定程度上扩大一点proposal的范围。还有就是关于文中的这个decoder结构,我们在使用一些经典的模型的时候,可能需要根据使用环境多一些思考。

常用句式

[挖坑]

代码解读

ecoder结构,我们在使用一些经典的模型的时候,可能需要根据使用环境多一些思考。

常用句式

[挖坑]

代码解读

你可能感兴趣的:(论文阅读,3d,深度学习,transformer)