本文提出了一种简单而有效的目标检测自监督方法 DetCo。无监督的预训练方法最近被设计用于目标检测,但它们通常在图像分类方面存在缺陷,或相反。与它们不同,DetCo在下游实例级密集预测任务上迁移性能良好,同时保持具有竞争力的图像级分类精度。
它的优势来自于 (1)对中间表征的多级监督,(2)全局图像和局部patch之间的对比学习。这两种设计有利于在特征金字塔的每一层进行有区别的、一致的全局和局部表示,同时提高了检测和分类的效率。
例如,在ImageNet分类中,DetCo的top-1准确率比InsLoc和DenseCL高出6.9%和5.0%,而InsLoc和DenseCL是当代两款用于目标检测的作品。在COCO检测上,DetCo比带Mask R-CNN C4的SwAV好6.9 AP。值得注意的是,DetCo很大程度上提高了稀疏R-CNN,一个最近的强检测器,从45.0 AP到46.5 AP (+1.5 AP),在COCO上建立了一个新的SOTA。
引言:
视觉表示的自监督学习是计算机视觉中的一个基本问题,它可以促进许多下游任务,如图像分类、目标检测和语义分割[23,35,43]。它旨在为下游任务提供大规模未标记数据的预训练模型。以往的方法侧重于 设计不同的前置任务。其中,对比学习[32]是最有前景的方向之一,它将一幅图像转换为多个视图,最小化同一图像的视图之间的距离,最大化在特征图上 不同图像的视图之间的距离。
图1:DetCo在分类和检测两方面都实现了最佳的性能权衡。例如,在COCO检测上,DetCo的性能比其强基线MoCo v2[5]高出0.9 AP。此外,在ImageNet分类上,DetCo比DenseCL[39]、InsLoc[41]、PatchReID[8]等最近的工作有显著的提高,同时在目标检测上也有优势。注意,这三种方法是同期的工作,专门为目标检测设计的(用绿色标记)。
在过去的两年中,一些基于对比学习和在线聚类的方法,如MoCo v1/v2 [19, 5], BYOL[18]和SwAV[3],在弥补无监督和全监督图像分类方法之间的性能差距方面取得了很大的进展。然而,它们对目标检测的迁移能力并不理想。在我们工作的同时,最近DenseCL [39], InsLoc[41]和PatchReID[8]也采用了对比学习来设计 检测友好的(detection-friendly) 前置任务。尽管如此,这些方法只能很好地迁移目标检测,而牺牲了图像分类的性能,如图1和表1所示。因此,如何设计一种能够兼顾实例级检测和图像分类的前置任务是一项很有挑战性的工作。
我们假设图像级分类和实例级检测之间没有不可逾越的鸿沟。直观上,图像分类 从单个高级特征映射中识别全局实例,而目标检测 从多层特征金字塔中识别局部实例。
从这个角度来看,我们希望构建的实例表示能够:(1)在特征金字塔的每一层都是可判别的 (2)对于全局图像和局部patch(又称滑动窗口)是一致的。但是现有的无监督方法忽略了这两个方面。因此,检测和分类不能相互促进。
本文提出了一种对比学习框架DetCo,它有利于 实例级检测任务,同时保持竞争性的图像分类迁移精度。DetCo包含 (1) 对骨干网不同阶段的特征的多级监督。(2)全局图像与局部patch的对比学习。
具体来说,多级监督直接优化骨干网各个阶段的特征,保证了金字塔特征的各个层次具有很强的辨别能力。这种监督使得密集目标检测器 通过多尺度预测 获得更好的性能。
全局和局部的对比学习 引导网络学习 图像级和patch级 的一致表示,既能保持每个局部patch的高度判别力,又能 促进整个图像的表示,既有利于目标检测,又有利于图像分类。
Contributions:
• 本文引入了一个简单而有效的自监督前置任务DetCo,它有利于实例级的检测任务。DetCo可以利用大规模未标记数据,并为各种下游任务提供强大的预训练模型。
• 受益于 多级监督 和 全局图像和局部patch之间的对比学习的设计,与同期的自监督方法相比,DetCo成功地在不牺牲图像分类的情况下提高了目标检测的迁移能力。
• 对PASCAL VOC[15]、COCO[28]和Cityscapes[6]的广泛实验表明,当转移到一系列2D和3D实例级检测任务时,DetCo的性能优于以往最先进的方法,即目标检测,实例分割,人体姿态估计,密集姿态,以及语义分割。
相关工作:
现有的无监督表示学习方法大致可以分为 生成式 和 判别式 两类。生成方法[11,14,12,2]通常依赖于图像的自动编码[38,24,36]或对抗性学习[17],并直接在像素空间中操作。因此,它们中的大多数都是计算成本很高的,而图像生成所需的像素级细节对于学习高级表示可能不是必需的。
在判别方法[9,5]中,自监督对比学习[5,19,5,3,18]目前取得了最先进的性能,引起了研究者的广泛关注。与生成方法不同,对比学习通过将同一图像的不同视图的表示(即正对)拉近,并将不同图像的视图的表示(即负对)分开 来避免 计算成本很高的 生成步骤。Chen等人开发了一个简单的框架,称为SimCLR,用于视觉表征的对比学习。它通过数据增强的组合后的对比图像来学习特征。随后,He等人[19]和Chen等人[5]提出了MoCo和MoCo v2,使用移动平均网络(动量编码器)来保持 从内存库中 提取的负对的一致表示。最近,SwAV[3] 将在线聚类引入了对比学习,不需要计算成对比较。BYOL[18] 避免使用负对,通过迭代引导网络的输出作为增强表示的目标。
此外,早期的方法依赖于各种各样的前置任务来学习视觉表征。相对块预测[9,10], 灰度图像着色[42,25],图像修复 [33],拼图[31],图像超分辨[26],以及几何变换[13,16]已经被证明是有用的表示学习。
然而,上述方法大多是专门针对图像分类而设计的,而忽略了目标检测。在我们工作的同时,最近DenseCL [39], InsLoc[41]和PatchReID[8]设计了目标检测任务。但它们在图像分类上的迁移性能较差。本文的工作重点是设计一个更好的前置任务,既有利于实例级检测,又为图像分类保持强的表示。
Methods:
本文提出了多级监督的设计,以保持不同阶段特征的判别性。然后,引入全局和局部的对比学习来增强全局和局部的表示。
DetCo是一个简单的流程,主要基于强大的基线MoCo v2设计。它由一个骨干网络、一系列MLP头和内存库组成。MLP头部和内存库的设置与MoCo v2相同。DetCo的整体架构如图2所示。
具体来说,DetCo有两种不同于MoCo v2的简单有效的设计。(1)多级监督,保持多阶段特征的辨别性。(2)全局和局部的对比学习,增强全局和局部特征表示。以上两种不同的设计使得DetCo不仅成功地继承了MoCo v2在图像分类方面的优势,而且在实例级检测任务上迁移能力更强。
DetCo的完整的损失函数可以定义为:
其中,I表示全局图像,P表示局部patch集。公式1是多阶段的对比损失。在每个阶段,有三个交叉局部和全局对比损失。:多级监督损失,
:全局和局部对比损失。
现代的目标检测器可以在不同的层次上预测目标,例如:RetinaNet和Faster R-CNN FPN。它们要求每个层次的特征保持很强的判别力。为了满足上述要求,我们对原有的MoCo基线进行了简单而有效的修改。
具体地说,我们将一个图像输入到一个标准的骨干ResNet-50,它从不同的阶段输出特征,称为Res2, Res3, Res4, Res5。不像MoCo只使用Res5,本文利用所有级别的特性来计算对比损失,确保骨干的每个阶段产生区别表示。
给定图像I,首先将其转换为图像 Iq 和 Ik 的两个视图,两个变换从全局视图的一组变换中随机抽取,称为Tg。我们的目标是训练一个 encoder q 和一个具有相同架构的 encoder k,其中encoder k使用 动量更新策略 更新权重。encoder q包含一个骨干和四个全局MLP头,用于从四个层次提取特征。
我们将Iq输入有着参数θ的 骨干网络,提取特征{f2, f3, f4, f5} =
,其中fi表示来自 第i阶段的特征。在获得多级特征后,我们附加四个全局MLP头
,它们的权值是不共享的。因此,我们得到了四个全局表示
。同样,我们可以很容易地得到
。
MoCo使用InfoNCE计算对比损失,公式为:
本文将其推广到 多级特征的多级对比损失,公式为:
本文将浅层的loss weight设置为小于深层。此外,为每一层建立一个单独的内存库队列。
现代的目标检测器 重新利用局部区域(又称滑动窗口)上的分类器来执行检测。因此,它要求每个局部区域都具有区别性,以便进行实例分类。为了满足上述要求,本文提出 全局和局部对比学习,以保持patch集和整个图像上的实例表示一致。这种策略 利用图像级表示来增强实例级表示,反之亦然。
我们首先将输入图像通过 拼图增强 变换为9个局部patch。这些patch通过编码器,我们就可以得到9个局部特征表示。之后,我们通过MLP头将这些特征组合成一个特征表示,并构建一个跨全局和局部的对比学习。
对比交叉损失有两部分:全局↔局部对比损失 和 局部↔局部对比损失。全局↔局部对比损失可写为:
同样,局部↔局部对比损失可表示为:
通过学习全局图像和局部patch之间的表示,相互提高了图像级和实例级的实例判别能力。从而提高了检测和分类性能。
DetCo优于现有的自监督和监督方法。
中间层级和图像块的对比有利于定位。
这表明DetCo可以显著加快训练收敛速度。
这些结果表明,DetCo预训练模型也有利于半监督目标检测。
DetCo可以进一步大幅提升Sparse R-CNN的性能,
本文比较了在不同数据集尺度和微调迭代下迁移到目标检测的性能。首先,DetCo极大地提高了监督方法在小数据集(如PASCAL VOC)上的性能。其次,在COCO 12k迭代方面,DetCo也有很大的优势。这表明,与其他无监督和有监督方法相比,DetCo可以加快训练收敛速度。第三,即使有足够的数据(例如 COCO),与其他无监督和有监督的同行相比,Detco仍然显著提高了性能。最后,与同期的SSL方法相比,DetCo对于检测任务是友好的,同时它不会牺牲分类。
虽然分割和姿势估计 的领域与COCO完全不同,但DetCo的预训练仍然可以显著提高迁移性能。
虽然DetCo是为目标检测而设计的,但其分类精度仍然具有竞争力。在ImageNet分类上,DetCo大大超过并发DenseCL [39], PatchReID[8]和InstLoc[41],甚至超过MoCo v2基线[5]1.1%。虽然不如最强分类方法SwAV,但DetCo具有更好的检测精度。总的来说,DetCo实现了最佳的分类-检测权衡。
图4:与MoCov2相比,DetCo可以在热力图中 激活更精确的物体区域。当图像中有多个对象时,DetCo成功地定位了所有的对象,而MoCo v2无法激活一些对象。而且在最后一列中,DetCo的attention map在边界上比MoCo v2更精确。这从侧面反映了DetCo的定位能力强于MoCo v2,有利于目标检测。
因为对于图像分类来说,不需要保持每一层的区别性,只需要最后一层特征的区别性。然而,保持多层特征的鉴别性对于目标检测是必要的,因为现代检测器 预测特征金字塔中的边界框。我们发现,中间监督会略微降低最终层特征的表示,提高浅层特征的表示,这有利于目标检测。
GLC可以进一步提高检测精度和分类精度。这种改进主要得益于GLC成功地使网络学习到图像级和patch级的表示,这有利于目标检测和图像分类。从表12 (a)、(c)和(d)可以看出,GLC也可以提高不同阶段的辨别能力。
Conclusion:
本研究提出了一种简单而有效的前置任务DetCo,它可以利用大规模未标记数据为各种下游任务提供预训练模型。它展示了在各种实例级检测任务(如VOC和COCO检测以及语义分割)上最先进的迁移性能,同时保持了在图像分类上的竞争性能。我们希望DetCo可以作为密集预测的替代和有用的预训练模型,并促进未来的研究。