即插即用系列!| Hierarchical Attention: 轻松助力点云Transformer解决小目标和局部特征问题

简介: 即插即用系列!| Hierarchical Attention: 轻松助力点云Transformer解决小目标和局部特征问题

640.png


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),通过将更大的注意力区域分配给具有较大边界框建议的目标候选区,它能够有效学习每个目标候选区的局部目标级特征。局部注意力区域由其相应的中间边界框建议定义。

本文的主要贡献如下:

  1. 提出了Simple Multi-Scale Attention (MS-A),这是一种在单尺度特征上学习多尺度特征的方法。
  2. 提出了Size-Adaptive Local Attention (Local-A), 这是一种在提议的边界框内进行局部特征聚合的方法。
  3. 在两个经典室内三维检测基准测试中实现了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检测算法的性能,其中对小物体的检测性能提升最大。由于我们的注意力模块促进了细致的特征学习,这对于各种稠密预测视觉任务非常重要,因此未来工作的一个方向是将我们的注意力模块适用于其他点云学习问题,例如在点云分割任务。另一个方向是在多尺度注意力中引入更高效的注意力机制,以进一步降低计算开销。

目录
相关文章
|
机器学习/深度学习 编解码 数据可视化
【即插即用】涨点神器AFF:注意力特征融合(已经开源,附论文和源码链接)
【即插即用】涨点神器AFF:注意力特征融合(已经开源,附论文和源码链接)
7487 1
|
存储 数据采集 传感器
一文多图搞懂KITTI数据集下载及解析
一文多图搞懂KITTI数据集下载及解析
15664 3
一文多图搞懂KITTI数据集下载及解析
|
机器学习/深度学习 传感器 算法
【论文速递】AAAI2023 - BEVDepth: 用于多视图三维物体检测的可靠深度采集
【论文速递】AAAI2023 - BEVDepth: 用于多视图三维物体检测的可靠深度采集
|
机器学习/深度学习 存储 编解码
Open3d系列 | 3. Open3d实现点云上采样、点云聚类、点云分割以及点云重建
Open3d系列 | 3. Open3d实现点云上采样、点云聚类、点云分割以及点云重建
14128 1
Open3d系列 | 3. Open3d实现点云上采样、点云聚类、点云分割以及点云重建
|
前端开发 rax Python
Open3d系列 | 2. Open3d实现点云数据增强
Open3d系列 | 2. Open3d实现点云数据增强
3678 1
Open3d系列 | 2. Open3d实现点云数据增强
|
机器学习/深度学习 人工智能 数据可视化
ShuffleNet:极致轻量化卷积神经网络(分组卷积+通道重排)
我们引入了一个高效计算的CNN结构名字叫做shuffleNet,这个结构被设计用来解决部署算力非常有限的移动设备问题,这个新的结构使用了两个新的操作,pointwise group convolution 和 channel shuffle能够在极大减少计算量的同时保持一定的精度。我们在ImageNet classification和MS COCO目标检测数据集上做实验论证了ShuffleNet和其他的结构相比有着很好的性能。比如,相比于mobilenet,shufflenet在ImageNet 分类任务上有着更低的top-1错误率(错误率是7.8%)需要的计算量为40MFLOPs。在一个AR
3619 0
ShuffleNet:极致轻量化卷积神经网络(分组卷积+通道重排)
|
机器学习/深度学习 传感器 编解码
史上最全 | 基于深度学习的3D分割综述(RGB-D/点云/体素/多目)(上)
3D目标分割是计算机视觉中的一个基本且具有挑战性的问题,在自动驾驶、机器人、增强现实和医学图像分析等领域有着广泛的应用。它受到了计算机视觉、图形和机器学习社区的极大关注。传统上,3D分割是用人工设计的特征和工程方法进行的,这些方法精度较差,也无法推广到大规模数据上。在2D计算机视觉巨大成功的推动下,深度学习技术最近也成为3D分割任务的首选。近年来已涌现出大量相关工作,并且已经在不同的基准数据集上进行了评估。本文全面调研了基于深度学习的3D分割的最新进展,涵盖了150多篇论文。论文总结了最常用的范式,讨论了它们的优缺点,并分析了这些分割方法的对比结果。并在此基础上,提出了未来的研究方向。
史上最全 | 基于深度学习的3D分割综述(RGB-D/点云/体素/多目)(上)
|
8月前
|
算法
一次推理,实现六大3D点云分割任务!华科发布大一统算法UniSeg3D,性能新SOTA
华中科技大学研究团队提出了一种名为UniSeg3D的创新算法,该算法通过一次推理即可完成六大3D点云分割任务(全景、语义、实例、交互式、指代和开放词汇分割),并基于Transformer架构实现任务间知识共享与互惠。实验表明,UniSeg3D在多个基准数据集上超越现有SOTA方法,为3D场景理解提供了全新统一框架。然而,模型较大可能限制实际部署。
653 15
|
存储 传感器 数据可视化
3D目标检测数据集 KITTI(标签格式解析、3D框可视化、点云转图像、BEV鸟瞰图)
本文介绍在3D目标检测中,理解和使用KITTI 数据集,包括KITTI 的基本情况、下载数据集、标签格式解析、3D框可视化、点云转图像、画BEV鸟瞰图等,并配有实现代码。
3977 1
|
移动开发 数据可视化 算法
Pointnet语义分割任务S3DIS数据集
Pointnet语义分割任务S3DIS数据集
1326 0