Paper: https://arxiv.org/pdf/2301.02650.pdf
Code: https://github.com/salesforce/Hierarchical_Point_Attention
导读
本文讨论了基于Transformer的3D目标检测的问题,并提出了一种基于模块化分层设计的两种新型注意力机制,用于解决在简易Transformer上学习特征的不同尺度和局部化特征的困难。 这些限制使它们在不同大小的物体上具有不平衡的性能,尤其是在小物体上性能较差。
引言
Visualization of the attention weights.
本节主要讲述了3D点云数据在计算机视觉应用(例如自动驾驶和增强现实)中的重要性。点云数据的组织方式与图像数据不一样,点云数据是由无序的不规则点构成。基于点云数据的这些独特性质,之前的研究提出了各种用于点云理解的深度神经网络。随着自然语言处理和2D视觉中Transformer的成功,最近很多研究也开始探索基于注意力的点云体系网络,并在3D点云目标检测方面取得了巨大成功。Transformer具有多种性质使其适合对原始点云进行学习,例如其排列不变性对于建模像点云这种无序的集合是非常有效的,并且其注意力机制可以建模远程关系以帮助捕获点云学习的全局上下文。
尽管Transformer对提取点云特征具有独特优势,但是对于不同尺寸的目标,基于Transformer的检测算法的表现是不平衡的,特别是对于小尺寸的目标的平均精度是最低的。作者认为在小目标上表现不佳可能是由两个因素造成的,第一,为了满足实时推理需求,Transformer检测算法仅使用相对于原始点云的一小组点构成的点云特征。由于大量下采样会导致点云会丢失大量的几何细节,这对小物体的影响非常大。第二,常规的Transformer(例如Transformer和ViT)在整个网络中只能提取全局特征,不支持显式的局部特征学习。
根据上述分析, 本文提出了一种基于分层特征学习策略来改进现有的点云Transformer,该策略允许多尺度特征学习并支持局部特征聚合。 然而,考虑到点云Transformer的计算复杂度,在整个网络中使用更高分辨率(即点密度更高)的点云特征是低效的。此外, 由于点云的不规则性, 很难将分层设计和多尺度特征整合到用于点云目标检测算法的Transformer结构中。
在这项工作中,我们的目标是通过模块化的分层设计来改进基于Transformer的3D目标检测算法。我们提出了两种注意模块,用于多尺度特征学习和尺寸自适应局部特征聚合。我们的注意力模块是模型无关的,可以插入现有的点云Transformer进行端到端训练。 首先,我们提出了简单多尺度注意(MS-A)。它使用可学习的上采样策略从单尺度输入特征中构建更高分辨率的点特征,并在注意力函数中使用这两种特征。此外,为了减少计算和参数开销,我们将多尺度特征转换为多尺度tokens,并在多头注意力模块内进行多尺度tokens聚合。第二个模块是尺寸自适应局部注意力(Local-A),通过将更大的注意力区域分配给具有较大边界框建议的目标候选区,它能够有效学习每个目标候选区的局部目标级特征。局部注意力区域由其相应的中间边界框建议定义。
本文的主要贡献如下:
- 提出了Simple Multi-Scale Attention (MS-A),这是一种在单尺度特征上学习多尺度特征的方法。
- 提出了Size-Adaptive Local Attention (Local-A), 这是一种在提议的边界框内进行局部特征聚合的方法。
- 在两个经典室内三维检测基准测试中实现了SOTA结果。
方法
An illustration of our hierarchical attention modules.
Simple Multi-Scale Attention
当将Transformer应用在基于点的3D目标检测时,交叉注意模型可以建模目标候选区和点云中所有其他点之间关系。从直观上来看,对于每个目标候选区,点云中的每个点(即场景)都属于对象或者可以为对象提供上下文信息。因此, 为每个对目标选收集所有点的特征是有意义的,而点对目标候选区的重要性可以由注意力权值确定。
由于注意力函数的计算开销,模型学习的实际点数(即token)被设置为1024。然而,原始点云通常包含数万个,大量的下采样会导致几何信息和细粒度特征的丢失,这些信息和特征对于密集预测任务(如目标检测)非常重要。
为此,我们提出了简单多尺度注意力模块(MS-A),它能够从单尺度特征输入中构建更高分辨率(即点密度更高)的特征图。它的主要思路是在目标候选区和其他点之间的交叉注意力中使用两个尺度的特征作为key和value。此外,多尺度特征聚合是通过多尺度token聚合实现的,其中我们在不同子集的注意头中使用不同尺度的key和value。我们的目标是创建一个更高分辨率的特征图,为点云提供的更丰富的几何细节。
我们的多尺度注意力的第一步是从单尺度输入中获得更高分辨率的特征图。我们提出了一种可学习的上采样操作。给定层的输入点云特征{zi}, i=1,2,3,…, N, zi∈R^d, 我们要创建一个具有2N个点的特征图。为了获取2N个点的位置,我们使用FPS从原始点云{pi}中采样2N个点,i=1,2,3,…, 2N, pi ∈ R^3。然后,对于每个采样点pi,我们在输入特征图{zi}中查找其最近邻居(欧几里距离)的前三个点(记为{z0i,z1i,z2i})。最后,我们根据三点特征到采样点的距离的倒数进行加权插值,接着将插值的特征投影到采样点的特征表示中。上采样点特征图可以写作:
Size-Adaptive Local Attention
尽管注意机制可以模拟每对点之间的关系,但并不保证学习的模型会更多地关注对目标重要的点(例如属于目标的点)而不是不重要的点。另一方面,Transformer缺乏层次结构,不支持显式局部特征提取。与现有的局部注意力不同,我们提出了基于边界框建议尺寸的Size-Adaptive Local Attention (Local-A)来定义局部区域。首先生成中间边界框建议{b^i}i=1 与目标候选者的特征({qi}i=1)。然后我们在每个候选qi和从其相应框建议b^i内采样的点之间执行交叉注意力函数。因此,我们为每个查询点自定义了尺寸自适应局部区域。对于每个输入目标候选者ql ∈ R,在Local-A 中更新为:
由于目标候选者 (即查询) 的边界框建议的尺寸不同,每个目标候选者的 key 和 value 的token也不同。为了计算的高效性,我们为采样过程设置了一个最大点数(N local),并为每个查询点使用 N local 作为固定token长度。对于包含少于 N local 点的边界框,我们在点序列中填充一个未使用的token以达到 N local,并在交叉注意力函数中屏蔽未使用的token;对于包含超过 N local 点的边界框,我们随机丢弃它们并将序列截断为 N local 个点作为key和value。最后,在边界框为空的情况下,我们在目标候选者周围执行球查询(ball query)来采样 N local 个点。与 MS-A 相同,Local-A 不对模块输入提出额外的要求,因此我们可以在Transformer的任何层上应用它。
实验
Qualitative results on SUN RGB-D (top) and ScanNetV2 (bottom).
从上图可以发现,本文提出方法的预测结果和GT是非常相似的。此外,最后一列展示了网络最后一层transformer层的注意力权重可视化。
Performance of object detection on ScanNetV2.Performance of object detection on SUN RGB-D.Performance on different size categories on ScanNetV2.The stand-alone effect of our attention modules.
总结
在本文中,我们提出了简单的多尺度注意力和尺寸自适应局部注意力,这是两个与模型无关的模块,使现有的基于Transformer的3D检测算法拥有了分层设计。我们通过改进的注意力函数实现了多尺度特征学习和明确的局部特征聚合,并且这是通用模块,可以应用在任何现有的基于注意力的网络进行端到端训练。 我们提高了两个具有挑战性的室内3D检测基准的最先进的Transformer检测算法的性能,其中对小物体的检测性能提升最大。由于我们的注意力模块促进了细致的特征学习,这对于各种稠密预测视觉任务非常重要,因此未来工作的一个方向是将我们的注意力模块适用于其他点云学习问题,例如在点云分割任务。另一个方向是在多尺度注意力中引入更高效的注意力机制,以进一步降低计算开销。