NeurIPS2021-《YOLOS》-ViT现在可以做目标检测任务啦!华科提出目标检测新方法YOLOS

1

写在前面

Transformer能在对2D空间结构了解最少的情况下,从序列到序列的角度执行2D对象级别识别吗? 为了回答这个问题,作者提出了You Only Look at One Sequence(YOLOS) ,这是一个基于原始视觉Transformer的目标检测模型,尽可能少的进行模型修改和加入归纳偏置。

作者发现,仅在ImageNet-1k数据集上预训练的YOLOS已经能够在COCO上实现具有竞争力的目标检测性能,例如,YOLOS Base可以实现42.0 的box AP。
2

论文和代码地址

You Only Look at One Sequence: Rethinking Transformer in Vision through Object Detection

    论文地址:https://www.arxiv-vanity.com/papers/2106.00666/代码地址:https://github.com/hustvl/YOLOS

    3

    Motivation

    在自然语言处理 (NLP) 中,目前主流的方法是先在大型通用语料库上进行预训练Transformer以进行通用语言表示学习,然后在特定目标任务上对模型进行优化。最近,视觉Transformer (ViT) 证明了直接从NLP继承的Transformer编码器结构可以在大规模图像识别中表现出非常好的性能。

    以图像patch嵌入序列作为输入,ViT可以从纯序列到序列的角度,将预训练的通用视觉表示迁移到更具体的图像分类任务。
    由于预训练的Transformer可以在NLP中的句子级任务以及token级任务上进行微调,因此,作者提出了一个问题:ViT能否也迁移到计算机视觉中更复杂的任务中,例如目标检测?
    ViT对远程依赖关系和全局上下文信息进行建模,而不是对局部和区域级别的关系进行建模。此外,ViT缺乏像CNN那样的分层结构来处理视觉实体规模的变化。基于此,纯ViT结构是否能将预训练好的通用视觉表征从图像级识别转移到复杂得多的2D目标检测任务中,目前还不清楚。
    为了回答这个问题,作者提出了You Only Look at One Sequence(YOLOS) ,这是一系列基于ViT结构的目标检测模型,具有尽可能少的模型修改和归纳偏置。从ViT到YOLOS检测器的改变很简单,主要是以下两个部分 :
    1) YOLOS在ViT中丢弃了 [CLS] token,并向输入序列中添加100个可学习的 [DET] token用于目标检测。
    2) YOLOS将ViT中的图像分类损失替换为二分匹配损失,以便按照DETR的预测方式执行目标检测。
    4

    方法

    在模型设计上,YOLOS遵循了ViT的结构,并且用DETR的方式来进行学习优化。YOLOS可以很容易地采用NLP和CV中的各种Transformer变体。这种简单的设置并不是为了获得更好的检测性能,而是为了尽可能准确的显示Transformer系列在目标检测中的特性。

    4.1. Architecture

    模型的结构如上图所示。从ViT到YOLOS检测器的改变很简单:
    1) 在ViT中丢弃了 [CLS] token,并向输入序列中添加100个可学习的 [DET] token用于目标检测。
    2) 将ViT中的图像分类损失替换为二分匹配损失,以便按照DETR的预测方式执行目标检测。

    4.2. Detection Token

    作者用随机初始化的 [DET]  token作为对象表示的代理,以避免2D结构的归纳偏置和标签分配过程中注入任务的先验知识。在COCO数据集上进行微调时,对于每个向前传播,由[DET] token生成的预测和Ground Truth对象之间的最佳二分匹配被建立,从而执行目标检测任务。

    此过程起着与标签分配相同的作用,但并没有重建图像的2D结构,即,YOLOS不需要将ViT的输出序列重新解释为2D特征图以进行标签分配。

    4.3. Fine-tuning at Higher Resolution

    在COCO上进行微调时,Transformer所有参数均根据ImageNet-1k预训练的权重进行初始化,但用于分类和边界框回归的MLP头以及100个[DET] token是随机初始化的。分类和边界框回归头均由MLP实现,具有两个参数不共享的隐藏层。

    在微调过程中,图像的分辨率比预训练时高得多,但是保持patch大小不变(16×16),从而产生更长的有效序列。虽然ViT可以处理任意长度的序列,但需要用新的位置嵌入来适应较长的输入序列。

    4.4. Inductive Bias

    作者设计的YOLOS最大限度地减少了额外的假设偏置注入。ViT固有的假设偏置来源于网络主干部分的patch提取和位置嵌入的分辨率调整。除此之外,YOLOS没有添加其他额外的卷积操作。从表征学习的角度来看,作者选择使用[DET] token作为最终预测对象的代理,以避免额外的2D归纳偏置。

    此外,目标检测中常用的FPN,local attention和region-wise pooling等为了提高性能的操作在本文中都没有被采用。这是为了在最少的输入空间结构和几何知识的情况下,以纯序列到序列的方式揭示Transformer从图像识别到目标检测的多功能性和可迁移性。

    4.5. Comparisons with DETR

    YOLOS的设计灵感来自于DETR:YOLOS使用[DET] token作为对象表示的代理,以避免关于二维结构的归纳偏置和标签分配期间注入任务的先验知识,并且YOLOS用类似于DETR的方式进行优化。然而,两者之间也有一些关键的区别:

    1)DETR使用具有编码器-解码器架构的随机初始化Transformer,而YOLOS研究了预训练的仅编码器的ViT的可迁移性
    2)DETR在图像特征和对象查询之间使用解码器-编码器注意(交叉注意),并在每个解码器层对辅助解码损失进行深度监督,而YOLOS始终只查看每个层的输入序列,在操作方面不区分patch token和[DET] token
    5

    实验

    5.1. Model Variants

    基于上文提到的设计思想,作者基于DeiT提出了多个不同大小的YOLOS变体。

    5.2. The Effects of Pre-training

    通过对比有无预训练的结果,可以看出,在ImageNet-1K上进行预训练是必要的。

    5.3. Pre-training and Transfer Learning Performance of Different Scaled Models

    上表展示了不同大小的模型预训练和迁移学习性能。

    5.4. Comparisons with CNN-based Object Detectors

    Comparisons with Tiny-sized CNN Detectors

    从上表可以看出,与高度优化的CNN对目标检测器相比,YOLOS的小模型也能达到非常好的性能。

    Comparisons with DETR

    YOLOS-Ti的性能仍然好于DETR模型,但是较大的YOLOS模型并不能取得非常大的性能提升。

    Inspecting Detection Tokens

    上图显示前十个[DET] token在COCO 验证集所有图像上的所有框预测。(蓝、绿、红分别代表小、中、大的目标)
    上图展示了COCO 验证集上所有图像Ground Truth类别的统计(红色曲线)的所有[DET] token的统计(蓝色曲线)。
    可以看出,不同的[DET] token对目标位置和大小敏感,而对目标类别不敏感。
    6

    总结

    在本文中,作者探索了在ImageNet-1k数据集上预训练的标准ViT到COCO目标检测任务上的可迁移性。作者证明了2D目标检测可以以纯序列到序列的方式完成,具有最少的额外归纳偏置。并且YOLOS在COCO上的目标检测性能也是不错的,这表明纯Transformer结构对各种下游任务的泛化性和通用性。

    虽然这篇文章展示了ViT的可拓展性,但是YOLOS仍然存在许多局限性。比如,相比如分类任务,需要用更长的序列来进行目标检测以及其他密集预测任务。但是自注意操作复杂度与序列长度成二次关系,因此,这篇文章的方法不能用于更大的模型  。

    ▊ 作者简介

    研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。

    知乎/公众号:FightingCV

    END

    (0)

    相关推荐