论文标题:CAT-Det: Contrastively Augmented Transformer for Multi-modal 3D Object Detection
作者单位:北航
论文:https://arxiv.org/abs/2204.00325
代码:暂未开源
- Introduction
Kitti上多模态方法没有纯点云方法好的原因主要有一下三个方面:
(1)在多模态 3D 对象检测中,PointNet++/3D 稀疏卷积 和 2D CNN 是分别提取点云和图像特征的主要模块。受限于它们的局部感受野,无法从两种模态中全面获取上下文,从而引发信息丢失。 (2) 广泛采用的融合方案,特别是特征级的融合方案,如直接连接 [7, 18]、附加卷积 [22, 23] 和简单注意 [17, 55],不分配权重或粗略在有限的感受野中学习到不同特征的权重,其中关键线索没有很好地突出显示。 (3) Groundtruth 数据增强 [52] 是促进仅 LiDAR 方法的常见做法;不幸的是,将这种机制应用于多模态方法并不是那么简单,因为单一模态中的增强往往会导致语义错位。 [43]确实提出了一种用于配对数据的交叉模态增强技术,但图像处理过程繁琐且容易产生噪声。
综上所示其实就三点:感受野太小,特征的融合方式太简单、数据增广难
为了解决这些问题,提出了 Contrastively Augmented Transformer Detector (CAT-Det).
针对三个问题的解决方案:
(1)用一个局部Transformer和全局Transformer 提取特征,分别获得局部特征和全局特征。
(2)用Transformer进行特征融合
(3)数据增广后使用对比学习策略
包括:Pointformer (PT) branch, Imageformer (IT) branch, Cross-Modal Transformer (CMT),不像PointNet和CNN,PT和IT都有很大的感受野,随后,CMT 模块进行跨模态特征交互和多模态特征组合,其中在两种模态中提取的基本线索通过整体学习的细粒度权重得到充分强调。PT、IT 和 CMT 的集成将模式内和模式间的远程依赖完全编码为强大的表示,从而有利于检测性能。此外,我们通过分层对比学习提出了一种单向多模态数据增强(OMDA)方法,该方法通过仅在点云模态上执行来实现有效的增强。
- Related Work
Image based 3D Object Detector.
Point-cloud based 3D Object Detector.
Multi-modal 3D Object Detector:MV3D [7],AVOD [18],F-PointNet [34],F-ConvNet [48],PointPainting [42],PI-RCNN [50],CLOCs [33],Enhancing point features with image semantics for 3d object detection[17],Multi-task multi-sensor fusion for 3d object detection[22],Deep continuous fusion for multi-sensor 3d object detection[23],Hierarchical transformer with momentum contrast for video-text retrieval[55]
- The Proposed Approach
3.1. Framework Overview
如上图所示,PTB和ITB分别提取点云和图像长距离上下文特征。为了补充每个单一模态的学习,跨模态transformer (CMT) 模块用于执行跨模态特征交互,然后是多模态特征聚合和整体细粒度权重学习。PT、IT 和 CMT 的组合构成了一种新型的transformer backbone。同时,开发了一种单向多模态数据增强(OMDA)方法,通过点级和对象级的分层对比学习来实现有效的数据增强,进一步促进了强大的深度transformer 网络的训练模态 3D 对象检测。
3.2. Two-stream Multi-modal Transformer
Pointformer. 我们提出了一种新颖的Pointformer,由多个堆叠的点Transformer块 (PTB) 组成。如图 3 所示,PTB 由一个局部Transformer层和一个全局Transformer层组成。局部层探索邻域内点的几何结构,全局层在场景级别编码整体上下文。通过组合它们,PTB 从附近局部区域的点以及整个场景中捕获上下文信息.
local transformer layer:先在P上最远点采样,获得子集C。然后把每个C作为中心进行ball query,每个ball内的点记为B,把B喂进一个transformer block,进行局部特征的提取。
global transformer layer:和局部特征提取一样,只不过输入变成了子集C,而不是ball query的B。
然后使用Feature Propagation (FP) layer进行上采样获得每个点的特征。
Imageformer. 为了与 Pointformer 对齐,我们通过堆叠几个图像transformer 块 (ITB) 采用类似的结构,如图 4 所示。每个 ITB 由两个用于局部视觉上下文编码的卷积层和一个连续的基本多头transformer 编码器 [10]用于全局上下文信息探索。最后,ITB 将转换后的向量序列重新整形为 2D 特征图以供进一步处理。在堆叠的 ITB 之后,使用上采样 (UP) 层来恢复图像分辨率,生成与原始图像大小相同的特征图。
就是卷积,然后transformer 编码输出特征,然后上采样到原始图像大小的特征图(为了和点云对齐)。
Cross-Modal Transformer. 将点云投影到图像上,获得与点云对应的图像特征(原始图像特征数量多余点云数量)
点云特征经过3个变换矩阵(学习到的)得到Q,K,V,图像也一样得到Q,K,V。然后用点云的Q乘图像的K,图像的Q乘点云的K,经过Softmax获得权重,然后乘上各自的V,然后就获得了各自的融合特征,将两个原始特征和两个融合特征拼起来就获得了最终的融合特征。
3.3. One-way Multi-modal Data Augmentation
数据增强已被证明是一种有效的目标检测方法,但它主要应用于单一模态,很少用于多模态场景。由于点云与图像之间的异质性,通常难以跨模态同步增强操作,导致严重的跨模态不对中。最近[43]提出了一种复杂的成对数据生成方法,但图像上的流水线操作繁琐且容易产生噪声。相反,我们提出了一种新的单向多模态数据增强(OMDA)方法,该方法只对点云进行增强,并通过对比学习有效地将其扩展到多种模态。
OMDA的基本思想有两个方面:(1)高质量的图像增强通常比点云上的图像增强要复杂和困难得多,因此只需要对LiDAR数据进行增强,然后进行轻量级的多模态扩展。(2)单向augmentation如(1)可能带来严重的跨模态偏差。受最近在自监督模型[4,16]和跨模态语义对齐[25,26]中的对比学习成功的启发,我们精心设计了一种对比学习方案,以解决跨模态的这种错位。
具体来说,OMDA采用的是GT-Paste[52],这种方法广泛应用于仅使用激光雷达的方法,通过粘贴来自其他激光雷达帧的额外3D对象来增强给定的点云,而不会产生空间碰撞。由于缺少增加的点云对应的图像,就会出现跨模态数据错位,可能会恶化多模态交互作用(例如CMT),这隐含地假设点云/图像对是良好对齐的。因此,我们在原始点云 P 、相应的图像 I 和增强的点云 Paug 之间以分层方式在点和对象级别执行对比学习。
Point-level Contrastive Augmentation.
为了保持对原始数据对的监督,我们首先构建交叉模态正/负点对以进行对比学习。给定点P,根据投影关系,可以得到对应的像素坐标,因此P和I是对齐的,因此他们自然的组成的正样本对。为了构建负样本对,先在P中选择点,选的点是分割分数小于阈值的来自不同物体的点。同样经过投影获得点对。
然后从增广的点云中构建正负样本对。增广的点云,在图像中是没有对应点的,因此将整个点投影到图像上的时候,对应的像素点不是该点云的对应的,他们组成了负样本点对。正样本的构成:选择与增广物体同样类别的点云(根据分割分数)然后用这个raw point对应的像素点与增广的点云构成的点对为正样本。
基于选择的正/负对 S`/S´,我们将以下点级对比损失公式化为:
Object-level Contrastive Augmentation. 点级的对比学习提供了细粒度的逐点语义对齐,而detectors则专注于区域。为了减轻区域语义对齐,我们另外对增强数据执行对象级对比学习。
与点级对比学习类似,我们首先构建跨模态的正/负对象对。如图 6 所示,来自原始点云 P 的对象 O 及其在对齐图像 I 中的配对对象 O1 I 自然构成正对。粘贴的虚拟对象 Ovir 与 O 属于同一类,也与 O1 I 形成正对。由于标记数据中经常出现类不平衡,P 和 I 可能只包含一个类的对象。虽然我们可以简单地选择背景区域来形成负对,但属于不同类别的对象的前景区域更可取,因为它们提供了更强的监督。受 [16] 的启发,我们使用一个记忆库来为负对选择生成更精确和有区别的表示。如图 2 所示,存储库采用与双流多模态变换器结构相同的编码器 Ep¨q,并维护两个特征队列,分别表示为 QP 和 QI。 QP 包含来自所有类的对象的点特征,而 QI 包含图像特征。对于 O 或 O1 vir,我们从不同的类中选择 QP 和 QI 中的元素来收集负对。
损失如下:
Overall optimization.