【论⽂阅读】3DObjectDetectionwithPointformer解读
⽂章⽬录
前⾔
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使⽤多尺度交叉注意机制来整合来⾃两个分辨率的特征。
udi最后,GT将LGT的输出送⼊到Transformer层中,来捕捉全局信息。
对于上采样块,采⽤和PointNet++相同的特征传播模块,也是基于距离插值的分层传播策略和跨层跳跃链接。
3. 得到了什么结果?
实验表明使⽤Pointformer作为主⼲可以有效提⾼检测精度。
摘要
作者提出了Pointformer,⼀个可以有效学习3D点云特征的Transformer主⼲。具体⽽⾔,局部Transformer模块被⽤来对局部区域中的点之间的交互进⾏建模,旨在学习对象级别的区域特征。全局
Transformer旨在学习场景级别的上下⽂感知表⽰。为了进⼀步捕捉多尺度表⽰之间的依赖关系,作者提出 Local-Global Transformer集成来⾃更⾼分辨率的局部特征和全局特征。此外,作者引⼊了⼀个有效的坐标细化模块,将下采样点移⾄更接近物体质⼼的位置,从⽽改进了⽬标proposal的⽣成。使⽤Pointformer作为当前物体检测模型的主⼲,并在室内和室外数据集上展⽰了对原始模型的显著改进。代码和预训练模型可在/Vladimir2506/Pointformer.获得。
1.介绍
常⽤的点云处理⽅法:
基于体素的⽅法⾯临着效率和准确性之间的困境,更⼩的体素获得更⾼的精度,但计算成本更⾼;更⼤的体素会遗漏局部细节。
帖子英文
基于点的⽅法直接使⽤原始点来学习3D表⽰,避免了信息丢失,由于点云的不规则性,基于点的学习操作必须是排列不变的并且适应输⼊⼤⼩。因此只能学习简单的对称函数(例如使⽤具有汇集函数的逐点前馈⽹络),这极⼤地限制了其表⽰能⼒。
混合⽅法试图组合基于体素和基于点的表⽰,但是这两种表⽰之间的根本差异可能会限制这些⽅法对于三维点云特征学习的有效性。
为了解决上述限制,Transformer模型在学习上下⽂相关表⽰和捕捉输⼊序列中的长范围相关性⽅⾯⾮常有效。Transformer和相关的lf-attention机制不仅满⾜排列不变性的要求,⽽且被证明具有很强的表现⼒。⽬前,lf-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.相关⼯作
unicoFeature learning for 3D point clouds. 先前的⼯作包括体素化⽹格上的特征学习、点云上的直接特征学习以及两者的混合。
Transformers in computer vision.
3D object detection in point clouds.skim
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模型的⼀般公式。让和表⽰⼀组输⼊特征及其位置,其中和分别表⽰标记的特征和位置。然
后,Transformer模块由多头⾃关注模块和前馈⽹络组成:
其中,是query, key和value的投影。m是M个注意头的指标,d是特征维度。是输⼊位置的位置编码函数,代表位置前馈⽹络。为归⼀化函数,多采⽤SoftMax。
为了简单起见,在以下部分中,使⽤:
来表⽰基本的Transformer块(Eq.(1) ~ Eq.(4))。
3.2. Local Transformer
F =f i X =x i f i x i W ,W ,W q k v PE (⋅)FFN (⋅)σ(⋅)
作者在不同分辨率上构建特征学习块来建⽴点云场景的分层表⽰。给定输⼊点云。楚门的世界英文影评
1. 使⽤最远点采样(FPS)来选择⼀组点⼦集作为质⼼集合。
2. 对于每个质⼼,使⽤ball query⽅法在给定半径内的局部区域中获取K个邻点,得到。
3. 分好组的特征加上质⼼的坐标特征作为点序列送到Transformer层,如图3所⽰,这⾥使⽤了Linformer来加速。
表⽰第 t 个质⼼的局部区域,和分别表⽰组中第
个点的坐标和特征。
平安夜 歌词
其中和分别表⽰质⼼
局部区域中的特征和坐标集。
与现有的局部特征提取模块相⽐,作者所提出的Local Transformer具有⼏个优点。
灭绝的意思
⾸先,Transformer块中密集的⾃我关注操作⼤⼤增强了它的表现⼒。⼏种基于图学习的⽅法可以近似为学习参数空间精⼼设计的LT模块
的特殊情况。例如,⼴义图特征学习函数可以表述为:
其中⼤多数模型使⽤求和作为聚合函数,⊕运算选⾃{串联,加,内积}。因此,边缘函数⾄多是的⼆次函数。对于⼀个单
层Transformer块,学习模块可以⽤内积⾃关注机制来表⽰,如下所⽰:
其中是的特征维度,可以观察到边缘函数也是的⼆次函数。在FFNs有⾜够的层数时,基于图的特征学习模块与单层Transformer编码器具有相同的表达能⼒。谈到Pointformer,随着在块中堆叠更多的Transformer层,模块的表现⼒进⼀步增强,可以提取更好的表⽰。
此外,还考虑了相邻点之间的特征相关性,这在其他模型中通常被忽略。在某些情况下,相邻点可能
⽐质⼼点提供更多信息。因此,通过利⽤所有点之间的消息传递,局部区域中的特征被同等地考虑,这使得局部特征提取模块更加有效。
3.3. Coordinate Refinement
最远点采样(FPS)被⼴泛应⽤于许多点云框架中,因为它可以在保持原始形状的同时⽣成相对均匀的采样点,这确保了⼤部分点可以被有限的质⼼覆盖。然⽽,FPS中有两个主要问题:对离群点⾮常敏感,导致⾼度不稳定,尤其是在处理真实世界的点云时。
来⾃FPS的采样点是原始点云的⼦集,这使得在物体被部分遮挡或者没有捕获到物体的⾜够多的点的情况下,推断原始⼏何信息具有挑战性。
P =x ,x ,...,x 12N x ,x ,...,x c 1c 2c N ′[B ,D ,n _points ,n _smaples ]{x ,f }i i t x ∈i R 3f ∈i R C i F ={f ∣i ∈i N (x )}c t X ={x ∣i ∈i N (x )}c t x c t A e ij x ,x ,f ,f i j i j d f ,f i j x ,x ,f ,f i j i j
考虑到点⼤部分是在物体表⾯捕获的,第⼆个问题可能变得更加关键,因为proposal是从采样点⽣成的,导致proposal和ground truth之间存在天然的差距。
为了克服上述缺点,作者借助lf-attention map的提出了⼀个点坐标细化模块。如图3所⽰,⾸先为每个注意⼒头取出Transformer块最
后⼀层的lf-attention map。然后,计算注意⼒图的平均值,并利⽤质⼼点的特定⾏作为权重向量:
其中M代表注意头的数量,
是第m个注意头的注意图。最后,细化的质⼼坐标被计算为局部区域中所有点的加权平均值:
其中是w的第k条。利⽤所提出的坐标细化模块,质⼼点⾃适应地向物体中⼼移动得更近。此外,通过利⽤⾃关注图,模块引⼊了很少的计算成本,并且没有额外的学习参数,使得细化过程更加有效。
3.4. Global Transformer
表⽰场景上下⽂和不同对象之间的特征相关性的全局信息在检测任务中也是有价值的。先前的⼯作使⽤PointNet++或稀疏3D卷积来提取3D点云的⾼级特征,随着其⽹络深度的增加,扩⼤了感受野。然⽽,这对远程交互建模有局限性。
作者利⽤Transformer模块对⾮局部关系建模的能⼒,提出了⼀个全局Transformer来实现信息流通整个点云。具体来说,所有的点都被收集到⼀个单⼀的组
medion
beyond是什么意思中,并作为⼀个Transformer模块的输⼊。GT的公式总结如下:
通过在场景级别利⽤Transformer,可以捕获上下⽂感知的表⽰,并促进不同对象之间的消息传递。此外,全局表⽰对于检测点很少的对象特别有帮助。
3.5. Local-Global Transformer
Local-Global Transformer也是⼀个关键模块,⽤于组合由LT和GT模块提取的局部和全局特征。如图2所⽰,LGT采⽤多尺度交叉注意模块,并⽣成低分辨率质⼼和⾼分辨率点之间的关系。在形式上,应⽤类似于在Transformer中使⽤的编码器-解码器注意的交叉注意。LT的输出作为query,上⼀层GT的输出从更⾼的分辨率作为key和value。使⽤
-layer Transformer模块,模块的公式如下:
其中(关键点,图2中LT的输出)和(图2中Pointformer块的输⼊)分别代表来⾃低分辨率和⾼分辨率的点云的⼦样本。通过Local-Global Transformer模块,利⽤整体质⼼点通过注意机制整合全局信息,使得两者的特征学习更加有效。
3.6. Positional Encoding
位置编码是Transformer模型不可或缺的⼀部分,因为它是对输⼊序列中每个标记的位置信息进⾏编码的唯⼀机制。当针对3D点云数据调整Transformer时,位置编码起着更关键的作⽤,因为点云的坐标是指⽰局部结构的有价值的特征。与⾃然语⾔处理中使⽤的技术相⽐,我们提出了⼀种简单⽽有效的⽅法。对于所有Transformer模块,⾸先将每个输⼊点的坐标映射到特征维度。然后,我们减去query和key点的坐标,并使⽤相对位置进⾏编码。
3.7. Computational Cost Reduction A (m )w k P L P l P h P