DetCo: Unsupervised Contrastive Learning for Object Detection


参考 DetCo: Unsupervised Contrastive Learning for Object Detection - 云+社区 - 腾讯云

摘要

我们提出了一种简单而有效的自监督目标检测方法。无监督的预训练方法最近被设计用于目标检测,但是它们通常在图像分类方面有缺陷,或者相反。与它们不同,DetCo在下游实例级密集预测任务上传输良好,同时保持有竞争力的图像级分类精度。优点来自于:(1)对中间表示的多级监督,(2)全局图像和局部块之间的对比学习。这两种设计有助于在特征金字塔的每一层进行有区别且一致的全局和局部表示,同时改进检测和分类。

在VOC、COCO、Cityscapes和ImageNet上的大量实验表明,DetCo不仅在一系列2D和3D实例级检测任务上优于最近的方法,而且在图像分类上也具有竞争力。比如在ImageNet分类上,DetCo比InsLoc和DenseCL这两个当代专为物体检测而设计的工作,top-1准确率分别好了6.9%和5.0%。而且,在COCO检测上,DetCo比带SwAV和Mask R-CNN C4好6.9 AP。值得注意的是,DetCo在很大程度上提升了Sparse R-CNN,一个最近很强的检测器,从45.0 AP提升到46.5 AP (+1.5 AP),在COCO上建立了一个新的SOTA。

1、介绍

视觉表示的自监督学习是计算机视觉中的一个重要问题,它有助于许多下游任务,如图像分类、目标检测和语义分割。 它旨在为下游任务提供基于大规模未标记数据的预训练模型。 以往的方法侧重于设计不同的pretext任务。 其中最有前途的方向之一是对比学习,它将一幅图像转换为多个视图,使同一图像的视图之间的距离最小化,并使特征图中不同图像的视图之间的距离最大化。  

                

在过去的两年里,一些基于对比学习和在线聚类的方法,如MoCo v1/v2, BYOL, SwAV
,取得了很大的进展,弥补了图像分类中无监督方法和完全监督方法之间的性能差距。 然而,它们在目标检测中的迁移能力并不令人满意。 在我们工作的同时,最近DenseCL, InsLoc和PatchReID也采用了对比学习来设计检测友好的借口任务。 然而,这些方法在目标检测上效果较好,但牺牲了图像分类性能,如图1和表1所示。 因此,设计一种能够协调实例级检测和图像分类的pretext任务具有挑战性  

            

我们假设在图像级分类和实例级检测之间没有不可逾越的鸿沟。 直观地说,图像分类从单一的高级特征图中识别出全局实例,而目标检测从多层次特征金字塔中识别出局部实例。 从这个角度来看,我们希望构建的实例表示(1)在特征金字塔的每一层都具有区别性(2)对于全局图像和局部patch(也就是滑动窗口)都是一致的。 然而,现有的无监督方法忽略了这两个方面。 因此,检测和分类不能相互改进。  

 在这项工作中,我们提出了一个对比学习框架DetCo,它有利于实例级检测任务,同时保持有竞争力的图像分类转移精度。 DetCo包含:(1)、对骨干网不同阶段特征的多级监督。 (2)、全局图像与局部patch的对比学习。 具体来说,多层次监管直接从骨干网络的各个阶段优化特征,保证了对各层次金字塔特征的强烈区分。 这种监督使密集目标检测器通过多尺度预测获得更好的性能。 全局和局部对比学习引导网络在图像级和斑块级上学习一致的表示,既能保持每个局部patch的高度鉴别性,又能促进整个图像的表示,有利于目标检测和图像分类。  

 DetCo在各种2D和3D实例级检测任务上实现了最先进的传输性能,例如VOC和COCO目标检测,语义分割和密集。 此外,DetCo在ImageNet分类和VOC SVM分类上的性能仍然很有竞争力。 例如,如图1和表1所示,DetCo在分类和密集预测任务上改进了MoCo v2。 DetCo在ImageNet分类上显著优于DenseCL、InsLoc和PatchReID,分别提高6.9%、5.0%和4.8%,在目标检测和语义分割上略好。 请注意,DenseCL, InsLoc和PatchReID是三个并行的作品,它们是为目标检测而设计的,但牺牲了分类。 此外,DetCo增强了Sparse R-CNN,这是一个最近的没有q的端到端目标检测器,在具有ResNet-50骨干的COCO数据集上,从非常高的基线45.0 AP到46.5 AP (+1.5 AP),建立了一个新的最先进的检测结果。 在3D任务中,DetCo在COCO DensePose的所有指标上都优于ImageNet监督的方法和MoCo v2,特别是在AP50上+1.4。 

总的来说,这项工作的主要贡献有三个方面:  

  • 我们引入了一个简单而有效的自监督借口任务DetCo,它有利于实例级检测任务。 DetCo可以利用大量未标记数据,并为各种下游任务提供强大的预训练模型。  
  • 得益于全局图像和局部图像块之间多层次监督和对比学习的设计,与当代自监督同行相比,DetCo在不牺牲图像分类的情况下,成功地提高了目标检测的迁移能力。 
  • 在PASCAL VOC、COCO和Cityscapes上的大量实验表明,当转移到一系列2D和3D实例级检测任务时,DetCo优于先前的最先进的方法,如目标检测、实例分割、人体姿态估计、DensePose和语义分割。  

2、相关工作

现有的无监督表示学习方法大致可分为生成式和判别式两类。 生成方法通常依赖于图像的自编码或对抗性学习,直接在像素空间操作。 因此,它们中的大多数在计算上都很昂贵,而图像生成所需的像素级细节对于学习高级表示可能不是必需的。  

在鉴别方法中,自监督对比学习目前取得了最先进的成绩,引起了研究者的广泛关注。 与生成方法不同,对比学习通过将同一图像的不同视图(即正负对)的表示拉近,并将不同图像(即负对)的视图的表示分开,避免了耗时的生成步骤。 Chen等人开发了一个简单的框架,称为SimCLR,用于视觉表征的对比学习。 经过数据增强后,它通过对比图像来学习特征。 之后,He等人和Chen等人提出了MoCo和MoCo v2,使用移动平均网络(动量编码器)来保持从存储库提取的负对的一致表示。 最近,SwAV将在线聚类引入对比学习,不需要计算两两比较。 BYOL通过迭代地引导网络的输出作为增强表示的目标来避免使用负对。  

此外,早期的方法依赖于各种借口任务来学习视觉表征。 相对patch预测、灰度图像着色、图像修复、图像jigsaw迷惑、图像超分辨率和几何变换已被证明对表示学习有用。 然而,上述大多数方法都是专门为图像分类而设计的,而忽略了目标检测。 在我们工作的同时,最近DenseCL, InsLoc和PatchReID为目标检测设计pretext任务。 然而,它们在图像分类中的传输性能较差。 我们的工作重点是设计一个更好的pretext任务,既有利于实例级检测,又保持较强的图像分类表示。  

3、方法

在本节中,我们首先简要介绍图2所示的建议的DetCo的整体架构。然后,我们提出了多级监督的设计,使特征在多个阶段保持区别性。接下来,我们引入全局和局部对比学习来增强全局和局部表示。最后,我们提供了DetCo的实现细节。

3.1、DetCo框架

DetCo是一个简单的流程,主要基于强基线MoCo v2设计。它由一个主干网、一系列MLP头和记忆库组成。为简单起见,MLP磁头和存储体的设置与MoCo v2相同。DetCo的整体架构如图2所示。

具体来说,DetCo有两个简单有效的设计,不同于MoCo v2。(1)、多层次监管,保持多阶段特征的区分性。(2)、全局和局部对比学习,以增强全局和局部特征表示。以上两种不同的设计使得DetCo不仅成功地继承了MoCo v2在图像分类上的优势,而且在实例级检测任务上迁移了更强的能力。

DetCo的完全损失函数可以定义如下:

             

其中,表示全局图像,P表示局部patch集。 Eqn. 1是一个多阶段对比损失。 在每个阶段,都有三种跨区域和全局的对比损失。 我们将在第3.2节描述多层次监督,在第3.3节描述全局和局部对比学习。  

 3.2、多层监督

现代物体检测器在不同的水平上预测物体,如RetinaNet和Faster R-CNN FPN。 他们需要每个层次的特征来保持强烈的歧视。 为了满足上述要求,我们对原始MoCo基线做了简单而有效的修改。 

具体来说,我们将一张图像输入标准的骨干ResNet-50,它会输出不同阶段的特征,称为Res2、Res3、Res4、Res5。 与只使用Res5的MoCo不同,我们利用所有级别的特征来计算对比损失,确保主干的每个阶段产生鉴别表示。  

给定图像,首先将其转换为图像的两个视图,并从一组全局视图的变换中随机抽取两个变换,称为。 我们的目标是训练一个编码器和一个具有相同架构的编码器,其中编码器使用动量更新策略更新权值。 编码器包含一个主干和四个全局MLP头,用于从四个层次提取特征。 将赋给主干,以θ为参数提取特征,其中为第i阶段的特征。 在获得多层次特征后,我们增加了四个全局MLP头,其权重是非共享的。 结果,我们得到了四种全局表示。 同样,我们可以很容易地得到。  

MoCo使用InfoNCE计算对比损失,公式为: 

        

τ是一个温度超参数。 我们将其扩展到多阶段特征的多层次对比损失,公式为:

        

 其中w为减重,I为当前阶段。 受PSPNet中减重设置的启发,我们将浅层的减重设置为小于深层。 此外,我们为每一层建立了一个单独的存储体。 在附录中,我们提供了中间对比度损失的伪代码。  

3.3、全局和局部对比学习

现代的物体检测器在局部区域(也就是滑动窗口)上重新使用分类器来执行检测。 因此,它要求每个局部区域对实例进行区分。 为了满足上述要求,我们开发了全局和局部对比学习来保持patch集和整幅图像上的实例表示一致。 该策略利用图像级表示来增强实例级表示,反之亦然。 

首先,我们使用jigsaw增强将输入图像变换成9个局部patches,具体的增强细节如3.4节所示。 这些patch通过编码器,然后我们可以得到9个局部特征表示。 然后,我们将这些特征结合到一个特征表示的MLP头,并建立一个跨全局和局部对比学习。  

给定图像,首先从一个局部变换集中选择两个变换,将其转换为两个局部patch集。 每个局部patch集中有9个patch 。 我们将局部patch集提供给主干,在每个阶段得到9个特征。 以一个阶段为例,我们为局部patch构建一个MLP头,表示为,它不与3.2节中的共享权重。  然后,将连接并馈给局部patch MLP头以得到最终的表示。同样,我们可以使用相同的方法得到。 

对比交叉损失由对比损失和对比损失组成。 对比损失可以写成:

                

同样,对比损失可表示为:

                     

通过学习全局图像和局部图像块的表示,改进了图像级和实例级的实例识别。 从而提高了检测和分类的性能。  

 3.4、实现细节

我们使用OpenSelfSup 1作为代码库。 每个实验我们使用256批大小的8个Tesla V100 GPUs。 我们遵循MoCo v2的最超参数设置。 对于数据增强,全局视图增强几乎与MoCo v2的随机裁剪和调整为224 × 224的随机水平翻转,高斯模糊和与亮度、对比度、饱和度、色相和灰度相关的颜色抖动相同。 Rand-Enhancement也用于全局视图。 局部补片在PIRL后进行。 首先,用至少60%的图像裁剪一个随机区域,并将其大小调整为255×255,然后是随机翻转、颜色抖动和模糊,与全局增强共享相同的参数。 然后将图像划分为3×3网格并随机打乱; 每个网格是85×85。 在每个patch上随机应用一种作物,得到64 × 64,以避免patch之间的连续性。 最后,我们得到9个随机打乱的patch。 为了公平比较,我们在所有实验中都使用标准的ResNet-50。 除非另有规定,否则我们在ImageNet上预先训练200个epoch,以便进行公平的比较。 

4、实验

我们在一系列二维和三维密集预测任务上评估DetCo,例如PASCAL VOC检测、COCO检测、实例分割、二维姿态估计、密集和城市景观实例和语义分割。 我们看到,DetCo优于现有的自监督和监督方法。  

4.1、目标检测

实验设置: 我们选择了三个有代表性的检测器:Faster R-CNN, Mask R-CNN、RetinaNet,以及一个最近的强检测器:Sparse RCNN。 Mask R-CNN是两级的,RetinaNet是一级的检测器。 Sparse R-CNN是一个没有NMS的端到端检测器,它也是最先进的,在COCO上有高mAP。 为了公平比较,我们的训练设置与MoCo相同,包括在骨干和FPN中使用“SyncBN”。  

PASCAL VOC:如表9和图3所示,MoCo v2是一个很强的基线,在VOC检测方面已经超过了其他无监督学习方法。 然而,我们的DetCo在200和800个epoch的表现始终优于MoCo v2。 更重要的是,只有100个epoch的预训练,DetCo取得了几乎相同的表现MoCo v2-800ep(800个epoch预训练)。 最后,DetCo-800ep建立了SOTA,58.2在mAP和65.0在,这带来了AP和AP75分别4.7和6.2的改进,相比监督的同行。 在更严格的AP75上的改进要比AP大得多,说明中间和patch对比有利于定位。 

                    

COCO有1×和2×步骤:表3显示了1× schedule下的Mask RCNN结果,对于R50-C4和R50-FPN骨干,DetCo比MoCo v2基线性能高出0.9和1.2 AP。 对于R50-C4和R50-FPN,它也比有监督的对口产品分别高出1.6和1.2 AP。 2× schedule的结果在附录中。 表7的第2-3列显示了一级检测器RetinaNet的结果。 与监督方法和MoCo v2相比,DetCo预训练的AP值分别为1.0和1.2 AP。 在AP50上,“DetCo”比“MoCov2”高1.3倍(1× schedule)。  

带有少量训练迭代的COCO:在数据尺度上,COCO要比PASCAL VOC大得多。 即使从头开始训练也能得到满意的结果。 为了验证无监督预训练的有效性,我们在极其严格的条件下进行实验:只有12k迭代(≈1/7× vs. 90k-1× schedule)的检测器。 12k的迭代使检测器严重缺乏训练,远远不能聚合,如表2和表7列1所示。 在此设置下,对于Mask RCNN-C4, DetCo在APbb 50中比MoCo v2高出3.8 AP,并且在所有指标上都优于监督方法,这表明DetCo可以显著加快训练收敛。 对于Mask RCNNFPN和RetinaNet,DetCo也比MoCo v2和监督对等物有显著的优势。  

半监督学习COCO:转移到小数据集更有实用价值。 如[21]所示,当仅使用1%的COCO数据时,从零开始训练性能在mAP中无法与预先训练过的初始化列车相比。 为了验证自监督学习在小规模数据集上的有效性,我们随机抽取1%、2%、5%、10%的数据对RetinaNet进行微调。 对于所有设置,我们微调探测器与12k迭代,以避免过拟合。 其他设置与COCO 1×和2× schedule相同。

1%、2%、5%、10%时的结果如表8所示。 我们发现,在四种半监督的环境中,DetCo显著超过监督的对手和MoCo v2强基线。 例如,当使用10%的数据时,DetCo比监督方法高出2.3 AP, MoCo v2高出1.9 AP。 这些结果表明,DetCo预训练模型也有利于半监督目标检测。 更多Mask R-CNN的结果,1%,2%,5%和10%的数据在附录中。  

DetCo+最近的先进检测器: 在表4中,我们发现DetCo可以用1.5mAP和3.1对Sparse R-CNN进行改进。 Sparse R-CNN是一种高性能的端到端检测器,DetCo可以进一步大幅提高Sparse R-CNN的性能,并在COCO上实现了46.5 AP的新状态。 

                

DetCo与并发SSL方法:InsLoc, DenseCL和PatchReID是最近为目标检测而设计的工作。 它们提高了目标检测的性能,但在很大程度上牺牲了图像分类的性能。 从表1可以看出,在ImageNet分类上,DetCo比InsLoc、DenseCL和PatchReID具有+6.9%、+5.0%和+4.8%的显著优势。 此外,在COCO检测上,DetCo也优于这些方法。   

讨论:我们比较了在不同的数据集规模和微调迭代情况下转换为目标检测时的性能。 首先,DetCo极大地提高了监督方法在小数据集(如PASCAL VOC)上的性能。 其次,DetCo在COCO 12k迭代中也有很大的优势。 这表明,与其他无监督和有监督方法相比,DetCo可以加快训练收敛速度。 第三,即使有足够的数据(如COCO),与其他无监督和有监督的对手相比,Detco仍然显著提高了性能。 最后,与并发SSL方法相比,DetCo在不牺牲分类的情况下对检测任务是友好的。  

4.2、分割和姿态估计

多人姿态估计:表7最后一列是使用Mask RCNN进行COCO关键点检测的结果。 DetCo在所有指标上也优于其他方法,例如比受监督的同行高1.4 和1.5。  

Cityscape上的分割:Cityscape是一个用于城市街道自动驾驶的数据集。 我们遵循MoCo评估了Mask RCNN的实例分割和FCN-16s的语义分割。 结果如表6所示。 

虽然它的领域与COCO完全不同,但DetCo预训练仍然可以显著提高转会性能。 在实例分割方面,DetCo在APmk50上比监督对等体和MoCo v2的性能分别高出3.6和2.4。 在语义分割方面,DetCo比监督方法和MoCo v2分别高出1.9%和0.8%。  

                      

密集姿势: 从单一的二维图像中估计三维形状是一项挑战。 它可以作为自监督学习方法的良好测试平台,因此我们在COCO dense任务上对DetCo进行了评估,发现DetCo在该任务上的迁移效果也很好。 如表5所示,在所有指标上,DetCo显著优于ImageNet监督方法和MoCo v2,特别是在上+1.4。 

                  

 4.3、图像分类

我们遵循标准设置:ImageNet线性分类和VOC SVM分类。 对于ImageNet线性分类,训练epoch为100,学习率为30,与MoCo相同。 我们的DetCo在Top-1 Accuracy方面也比其强大的基准MoCo v2高出了+1.1%,如表10所示。 在VOC支持向量机分类精度方面,与先进的同类工作相比也具有竞争力。  

                         

讨论:虽然DetCo是为目标检测而设计的,但它的分类精度仍然具有竞争力。 在ImageNet分类上,DetCo在很大程度上优于DenseCL, PatchReID和InstLoc,甚至比MoCo v2基线高出1.1%。 虽然比不上最强的分类方法swv, DetCo的检测精度更好。 总的来说,DetCo实现了最好的分类-检测折衷。  

 4.4、可视化结果

图4可视化了DetCo和MoCo v2的注意力图。 我们可以看到,当图像中有多个对象时,DetCo成功地定位了所有目标,而MoCo v2无法激活一些目标。 此外,在最后一列中,DetCo的注意力图在边界上比MoCo v2更准确。 从侧面反映出DetCo的定位能力强于MoCo v2,有利于目标检测。 附录中显示了更多的分析、实现细节和可视化结果。  

                

4.5、消融实验

实验设置:我们通过训练100个epoch来进行所有的对照实验。 我们采用MoCo v2作为强大的基线。 更多关于超参数的消融研究见附录。 在表11和表12中,“MLS”表示多层次监督,“GLC”表示全局和局部对比学习。  

                    

多层监督的效果:如表11 (a)和(b)所示,当仅对MoCo v2添加多级监督时,分类精度下降,但检测性能提高。 这是合理的和可预期的,因为在图像分类中,不需要每一层都保持判别性,只需要最后一层特征具有判别性。 然而,保持多级特征的鉴别性对于目标检测是至关重要的,因为现代检测器在特征金字塔中预测框。 我们发现,中间监督会略微降低最后一层特征的表示,而提高浅层特征的表示,这有利于目标检测。 

同时,对VOC支持向量机的分类精度进行了四个阶段的评价:Res2; Res3; Res4; Res5来演示中间特性的增强。 如表12 (a)和(b)所示,与基线相比,浅层特征的识别能力有了很大的提高。  

全局和局部对比学习的效果:

如表11 (a)和(c)所示,当仅加入全局和局部对比学习时,分类和检测的性能都得到提升,并超过MoCo v2基线。 此外,如表11 (d)所示,GLC可以进一步提高检测精度和分类精度。 这种改进主要得益于GLC成功地使网络学习到图像级和patch级的表示,有利于目标检测和图像分类。 从表12 (a)、(c)和(d)可以看出,GLC还可以改善对不同阶段的区分。  

5、结论和将来的工作

这项工作提出了DetCo,一个简单而有效的pretext任务,可以利用大规模的未标记数据为各种下游任务提供训练前模型。 DetCo继承了强大的MoCo v2基线的优势,并通过增加:(1)多层次监督。(2)全局和局部对比学习。 它在各种实例级检测任务(如VOC和COCO检测以及语义分割)上展示了最先进的传输性能,同时在图像分类上保持了竞争力。 我们希望DetCo可以作为一个替代和有用的训练前模型,密集预测和促进未来的研究。 

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wanderer001

ROIAlign原理

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值