【论文阅读】3D Object Detection with Pointformer解读


前言

1. 为什么要做这个研究?
作者认为基于体素的方法需要使用3D稀疏卷积,面临效率和准确性之间的平衡问题;基于点的学习操作需要保证置换不变性,只能使用具有汇集函数的前馈网络,学习能力不够。
本文主要探究Transformer在3D目标检测中的应用,尤其是当使用纯Transformer作为主干的效果。
2. 实验方法是什么样的?
整个网络的框架是U-Net结构,最后接检测头得到结果。
下采样使用了4个Pointformer块,每一块主要由3部分组成:Local Transformer (LT), Local-Global Transformer (LGT) and Global Transformer (GT)。

  • 首先,LT接收来自上一层的输出(高分辨率),通过FPS方法提取N个质心,再对每个质心使用ball query方法获取K个邻点,将分好组的[B, D, n_points, n_samples] 加上位置编码作为点序列送入Transformer层中,注意这里使用了Linformer来降低时间复杂度。接着通过最大池化消去n_samples维度。
  • 然后,LT的输出和上一层的输出作为LGT的输入。LGT使用多尺度交叉注意机制来整合来自两个分辨率的特征。
  • 最后,GT将LGT的输出送入到Transformer层中,来捕捉全局信息。

对于上采样块,采用和PointNet++相同的特征传播模块,也是基于距离插值的分层传播策略和跨层跳跃链接。
3. 得到了什么结果?
实验表明使用Pointformer作为主干可以有效提高检测精度。

摘要

作者提出了Pointformer,一个可以有效学习3D点云特征的Transformer主干。具体而言,局部Transformer模块被用来对局部区域中的点之间的交互进行建模,旨在学习对象级别的区域特征。全局Transformer旨在学习场景级别的上下文感知表示。为了进一步捕捉多尺度表示之间的依赖关系,作者提出 Local-Global Transformer集成来自更高分辨率的局部特征和全局特征。此外,作者引入了一个有效的坐标细化模块,将下采样点移至更接近物体质心的位置,从而改进了目标proposal的生成。使用Pointformer作为当前物体检测模型的主干,并在室内和室外数据集上展示了对原始模型的显著改进。代码和预训练模型可在https://github.com/Vladimir2506/Pointformer.获得。

1.介绍

在这里插入图片描述
常用的点云处理方法:

  • 基于体素的方法面临着效率和准确性之间的困境,更小的体素获得更高的精度,但计算成本更高;更大的体素会遗漏局部细节。
  • 基于点的方法直接使用原始点来学习3D表示,避免了信息丢失,由于点云的不规则性,基于点的学习操作必须是排列不变的并且适应输入大小。因此只能学习简单的对称函数(例如使用具有汇集函数的逐点前馈网络),这极大地限制了其表示能力。
  • 混合方法试图组合基于体素和基于点的表示,但是这两种表示之间的根本差异可能会限制这些方法对于三维点云特征学习的有效性。

为了解决上述限制,Transformer模型在学习上下文相关表示和捕捉输入序列中的长范围相关性方面非常有效。Transformer和相关的self-attention机制不仅满足排列不变性的要求,而且被证明具有很强的表现力。目前,self-attention已经成功应用于目标分类和检测。然而,将Transformer直接应用于三维点云是极其昂贵的,因为计算成本随着输入大小的平方增长。
在这里插入图片描述

Pointformer是用于3D点云的主干,通过利用Transformer模型在集合结构数据上的优势来更有效地学习特征。如图2所示,Pointformer是一个带有多尺度Pointformer块的U-Net结构。Pointformer块由基于Transformer的模块组成,这些模块既具有表现力,又适合3D目标检测任务。

  • 首先,使用局部变换模块来建模局部区域中点之间的交互,该模块在对象级别学习与上下文相关的区域特征。
  • 其次,提出了一种坐标细化模块来调整从最远点采样(FPS)采样的质心,提高了生成的目标proposal的质量。
  • 第三,作者建议使用Local-GlobalTransformer(LGT)将局部特征与更高分辨率的全局特征进行整合。
  • 最后,GlobalTransformer(GT)模块被设计为在场景级别学习上下文感知表示。如图1所示,Pointformer可以捕获局部和全局依赖关系,从而提高具有多个杂乱对象的场景的特征学习性能。

作者在几个检测基准上进行了大量实验,以验证方法的有效性。使用Pointformer作为三个对象检测模型(CBGS、VoteNet和PointRCNN)的主干,并分别在三个室内和室外数据集(SUN-RGBD、KITTI和nuScenes)上进行实验。观察到在所有实验设置上对原始模型的显著改进,这证明了我们方法的有效性。
贡献如下:

  • 提出了一个纯transformer模型,即Pointformer,它是3D点云高效的特征学习主干。Pointformer是置换不变的,局部和全局上下文感知的。
  • Pointformer可以很容易地作为最先进的点云3D对象检测器的替代主干。
  • 作者使用Pointformer作为三个最先进的3D对象检测器的主干进行了广泛的实验,并在包括室内和室外数据集在内的几个基准上显示出显著的性能提升。这表明Pointformer可以广泛用于室内外的3D对象检测器的设计和优化。

2.相关工作

Feature learning for 3D point clouds. 先前的工作包括体素化网格上的特征学习、点云上的直接特征学习以及两者的混合。
Transformers in computer vision.
3D object detection in point clouds.

3.Pointformer

3D点云的特征学习需要面对其不规则性、无序性和变化的大小。先前的工作或利用简单的对称函数(如PointNet,PointNet++),或使用图神经网络聚集来自局部邻域的信息。然而,前者无法有效地结合简单对称函数能力之外的局部上下文相关特征;后者侧重于中心点与其邻居之间的消息传递,而忽略了邻居点之间的特征相关性。此外,全局表示也提供信息,但很少用于三维对象检测任务。
本文中,作者设计了基于Transformers的点集运算模块,不仅增加了提取局部特征的表现力,还将全局信息融入到点表示中。如图2所示,一个Pointformer块主要由3部分组成:Local Transformer (LT), Local-Global Transformer (LGT) and Global Transformer (GT)。对于每个块,LT首先接收来自上一层的输出(高分辨率),并提取具有较少元素(低分辨率)的新集合的特征。然后,LGT使用多尺度交叉注意机制来整合来自两个分辨率的特征。最后,采用GT来捕获上下文感知表示。对于上采样块,我们遵循PointNet++并采用特征传播模块,因为它简单。

3.1. Background

首先回顾一下Transformer模型的一般公式。让 F = f i F = {f_i} F=fi X = x i X = {x_i} X=xi表示一组输入特征及其位置,其中 f i f_i fi x i x_i xi分别表示标记的特征和位置。然后,Transformer模块由多头自关注模块和前馈网络组成:
在这里插入图片描述
其中, W q , W k , W v W_q,W_k,W_v Wq,Wk,Wv是query, key和value的投影。m是M个注意头的指标,d是特征维度。 P E ( ⋅ ) PE(\cdot) PE()是输入位置的位置编码函数, F F N ( ⋅ ) FFN(\cdot) FFN()代表位置前馈网络。 σ ( ⋅ ) σ(\cdot) σ()为归一化函数,多采用SoftMax。
为了简单起见,在以下部分中,使用:
在这里插入图片描述
来表示基本的Transformer块(Eq.(1) ~ Eq.(4))。

3.2. Local Transformer

作者在不同分辨率上构建特征学习块来建立点云场景的分层表示。给定输入点云

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值