UP-DETR: Unsupervised Pre-training for Object Detection with Transformers 论文阅读

date
Oct 9, 2022
Last edited time
Mar 27, 2023 08:45 AM
status
Published
slug
UP-DETR论文阅读
tags
DL
summary
type
Post
Field
Plat
UP-DETR:收敛更快!精度更高!华南理工&微信开源无监督预训练目标检测模型...
0 写在前面 基于Transformer编码器-解码器结构的DETR达到了与Faster R-CNN类似的性能。受预训练Transformer在自然语言处理方面取得巨大成功的启发,作者提出了一种基于 random query patch detection 预训练代理任务的无监督预训练DETR(UP-DETR)来用于目标检测。 该模型在预训练过程中,能够从原始图像中检测出查询patch。在预训练任务中,作者主要解决了两个关键问题: 多任务学习 和 多查询定位 : 1)为了权衡代理任务中的分类和定位的重要性,作者冻结了CNN主干网络,并提出了一个与patch检测联合优化的 patch特征重构分支 。 2)为了实现多查询定位,作者基于单查询patch,将其扩展到具有 对象查询shuffle 和 注意力掩码 的多查询patch中,进一步缩小预训练任务和目标检测任务之间的gap。 实验表明,UP-DETR显著提高了DETR的性能,在目标检测、one-shot检测和全景分割任务上具有更快的收敛速度和更高的精度。 1 UP-DETR: Unsupervised Pre-training for Object Detection with Transformers 论文地址:https://arxiv.org/abs/2011.09094 代码地址:https://github.com/dddzg/up-detr CVPR 2021 Oral 论文。 2 Motivation DETR是目前目标检测的一个新框架,它将目标检测任务视为通过Transformer编码器-解码器的直接预测问题。在没有手工设计的anchor机制和nms的情况下,DETR达到了与Faster R-CNN相似的性能。 然而,DETR需要大规模的训练数据和更长的训练时间。上表展示了DETR和UP-DETR在训练过程中精度的变化,可以看出DETR的收敛速度更慢。此外,作者也发现,当DETR用于小规模的数据训练时(比如:PASCAL VOC),它的模型性能会有显著的下降。 通过设计良好的预训练代理任务,无监督的预训练模型在自然语言处理(如GPT和BERT)和计算机视觉(如MoCo和SwAV)上取得了快速的发展。在DETR中,CNN主干网络是用ImageNet预训练过的,能够提取良好的视觉表示,但Transformer模块并没有进行预训练。 此外,虽然无监督视觉表征学习在最近的研究中引起了广泛关注,但现有的这些代理任务都不能直接应用于DETR的预训练。其主要原因是 DETR主要关注空间定位学习,而不是基于图像实例或基于聚类的对比学习 。 受自然语言处理中无监督预训练的启发, 本文的目标是在一个大规模的数据集(如ImageNet)上对DETR中的Transformer进行无监督的预训练,并将目标检测作为下游任务进行处理 。然而,现有的代理任务大多是基于图像实例和聚类的学习,不适用于目标检测。 因此,作者在本文中提出了一个新的用于目标检测的代理任务-- random query patch detection ,并基于这个预训练代理任务提出了无监督预训练DETR(UP-DETR)。该任务从给定的图像中随机裁剪多个查询patch,并对Transformer进行检测的预训练,以预测给定的图像中这些查询patch的边界框。 在预训练过程中,作者主要解决了两个问题: 1) 多任务学习 :目标检测是目标分类和目标定位任务的耦合。为了避免查询patch检测破坏分类特征,作者提出 冻结预训练主干网络 和 patch特征重建 ,以保持Transformer的特征识别。 2) 多查询定位 :单查询patch预训练不能满足目标检测的要求,而直接将单查询patch的版本拓展为多查询版本又会存在一些问题。因此,对于多查询patch,作者设计了 对象查询shuffle 和 注意掩码机制 ,来解决查询patch和对象查询之间的分配问题。 3 UP-DETR包括预训练和微调两个过程: 1)Transformer在无任何人工标注的大规模数据集上进行无监督预训练; 2)整个模型使用标注的数据进行微调,这与下游任务上的原始DETR相同。 UP-DETR的流程如上图所示,首先一个冻结参数的CNN backbone用于提取视觉特征 。然后,将位置编码添加到特征映射中,并传递到DETR中的Transformer编码器。对于随机裁剪的查询patch,用具有全局平均池化(GAP)的CNN主干网络提取patch特征,然后将其与目标查询相加之后输入到Transformer的解码器中。在预训练过程中,解码器预测与查询patch的位置相对应的边界框。 DETR为每个对象查询(object ...
UP-DETR:收敛更快!精度更高!华南理工&微信开源无监督预训练目标检测模型...
 

Abstract

DETR是目前目标检测的一个新框架,它将目标检测任务视为通过Transformer编码器-解码器的直接预测问题。在没有手工设计的anchor机制和nms的情况下,DETR达到了与Faster R-CNN相似的性能。
然而,DETR需要大规模的训练数据和更长的训练时间。上表展示了DETR和UP-DETR在训练过程中精度的变化,可以看出DETR的收敛速度更慢。此外,作者也发现,当DETR用于小规模的数据训练时(比如:PASCAL VOC),它的模型性能会有显著的下降。
通过设计良好的预训练代理任务,无监督的预训练模型在自然语言处理(如GPT和BERT)和计算机视觉(如MoCo和SwAV)上取得了快速的发展。在DETR中,CNN主干网络是用ImageNet预训练过的,能够提取良好的视觉表示,但Transformer模块并没有进行预训练。
此外,虽然无监督视觉表征学习在最近的研究中引起了广泛关注,但现有的这些代理任务都不能直接应用于DETR的预训练。其主要原因是DETR主要关注空间定位学习,而不是基于图像实例或基于聚类的对比学习 。
受自然语言处理中无监督预训练的启发,本文的目标是在一个大规模的数据集(如ImageNet)上对DETR中的Transformer进行无监督的预训练,并将目标检测作为下游任务进行处理 。然而,现有的代理任务大多是基于图像实例和聚类的学习,不适用于目标检测。
因此,作者在本文中提出了一个新的用于目标检测的代理任务——random query patch detection ,并基于这个预训练代理任务提出了无监督预训练DETR(UP-DETR)。该任务从给定的图像中随机裁剪多个查询patch,并对Transformer进行检测的预训练,以预测给定的图像中这些查询patch的边界框。
notion image
在预训练任务中,作者主要解决了两个关键问题:多任务学习 和多查询定位 :
1)多任务学习 :目标检测是目标分类和目标定位任务的耦合。为了避免查询patch检测破坏分类特征,作者提出冻结预训练主干网络和patch特征重建 ,以保持Transformer的特征识别。
2)多查询定位 :单查询patch预训练不能满足目标检测的要求,而直接将单查询patch的版本拓展为多查询版本又会存在一些问题。因此,对于多查询patch,作者设计了对象查询shuffle 和注意掩码机制 ,来解决查询patch和对象查询之间的分配问题。

Method

UP-DETR包括预训练和微调两个过程:
1)Transformer在无任何人工标注的大规模数据集上进行无监督预训练;
2)整个模型使用标注的数据进行微调,这与下游任务上的原始DETR相同。
notion image
UP-DETR的流程如上图所示,首先一个冻结参数的CNN backbone用于提取视觉特征 。然后,将位置编码添加到特征映射中,并传递到DETR中的Transformer编码器。对于随机裁剪的查询patch,用具有全局平均池化(GAP)的CNN主干网络提取patch特征,然后将其与目标查询相加之后输入到Transformer的解码器中。在预训练过程中,解码器预测与查询patch的位置相对应的边界框。

Single-Query Patch

notion image
DETR为每个对象查询(object queries)学习不同的空间位置,这表明不同的对象查询关注于不同的位置区域和框大小。由于这些patch是从图像中随机裁剪的,因此没有任何关于查询patch的位置和框大小的先验。为了使得patch和查询能够对应,作者显式地为所有对象查询(M=3)指定单个查询patch(M=1),如上图所示。
解码器的预测结果包含三个部分(),其中 为每个对象查询分类的结果; 为每个检测框的中心位置和宽高, 为重建之后的特征(这一部分的重建损失函数会在下一节中介绍)。最后,预训练的损失函数定义如下:
是与第 个object queries 所对应的 query patch 使用二分图匹配得到的最优匹配预测框的编号.

Patch Feature Reconstruction

目标检测是目标分类和目标定位任务的耦合,其中这两个任务具有不同的特征偏好。与DETR不同,作者提出了一个特征重构损失函数来在定位预训练任务中保持分类特征的特性。因此,这个损失函数是为了将CNN的特征输入到Transformer中之后,依旧能够保持CNN的特征性质。的定义如下所示:

Frozen Pre-training Backbone

由于作者希望让Transformer之后的特征能和CNN的特征尽可能相似,从而保留分类的特征特性。因此,作者在预训练的时候固定住了CNN Backbone的参数,并通过损失函数,使得Transformer之后的特征与CNN提取的特征尽可能相似。此外,稳定CNN主干网络的参数更有利于Transformer的训练,从而加速模型的训练。

Multi-Query Patches

对于一般的目标检测,每个图像中都有多个目标实例(例如,COCO数据集中每个图像平均有7.7个目标实例)。此外,当对象查询的数量N较大时,单个 query patch可能会收敛困难。因此,单 query patch预训练与多目标的检测任务目标是不一致的。然而,将单个 query patch扩展到多 query patch也是不简单的,因为M个query patch和N个 object queries 之间的如何对齐也存在一定的问题。
为了解决这个问题,作者将N个 object queries 划分为M个组,其中每个 query patch都按顺序被分配给N/M个 object queries。例如,第一个 query patch被分配给第一组N/M个 object queries,第二个 query patch被分配给第二组N/M个 object queries,以此类推。但是在这里,预训练需要满足两个要求:
1)query patch 的独立性(Independence of query patches) :所有的 query patch都是从图像中随机裁剪出来的。因此,它们是独立的,没有任何关系。
2)object queries 的多样性(Diversity of object queries) :在下游任务的 object queries 之间没有显式的组分配。换句话说,query patch在理想情况下可以添加到任意的N/M个 object queries 中。

Attention Mask

为了满足 query patch的独立性,作者使用一个attention mask 矩阵来控制不同 object queries 之间的交互。具体实现为,将mask矩阵添加到原来self-attention中softmax之后的attention矩阵上。mask矩阵定义如下:
其中 确定 object query 是否关注与 object query 的交互。
为了直观地理解,上图中的注意掩码显示1和0,分别对应于中的

Object Query Shuffle

notion image
在上述的描述中,object query group 都是人工分配的。但是,在下游目标检测任务中,object query 之间没有显式的组分配。因此,为了模拟目标检测的下游任务,作者在预训练过程中随机打乱所有 object query 的排列。
如上图所示,作者使用了基于注意力mask和 object query shuffle的多 query patch预训练。此外,为了提高模型泛化性,作者在预训练过程中随机将10%的查询patch设置为0,类似于dropout。

Experiment

PASCAL VOC Object Detection

notion image
上表显示了PASCAL VOC数据集上DETR和UP-DETR的性能对比,可以看出,在小数据集上,UP-DETR的性能明显优于DETR。

COCO Object Detection

notion image
上表显示了COCO数据集上各种目标检测方法的性能对比,可以看出UP-DETR能够达到比较不错的性能。

One-Shot Detection

notion image
上表展示了one-shot detection任务上的不同模型性能对比。与DETR相比,UP-DETR在见过和未见过的类上都显著提高了DETR的性能。

Panoptic Segmentation

notion image
上表显示了全景分割任务上,本文方法和SOTA方法的对比,可以看出,相比于DETR,UP-DETR依旧具备性能上的优势。

Ablations

notion image
上表显示了冻结CNN参数和特征重建模块的消融实验,可以看出,冻结CNN的参数对于模型性能的提升有非常大的作用。
notion image
上表显示了四种不同UP-DETR模型在训练过程中,模型性能的变化。可以看出(d) UP-DETR相比于其他UP-DETR模型结构具有更快的收敛速度和更高的精度。

© Lazurite 2021 - 2024