YOLOS:通过目标检测重新思考Transformer(附源代码)

计算机视觉研究院专栏

作者:Edison_G

最近“计算机视觉研究院”有一段时间没有分享最新技术,但是最近我看了一些之前的检测框架,发现有两个很有意思,不错的框架,接下来我给大家简单分析下,希望给大家带来创新的启示!

公众号ID|ComputerVisionGzq

学习群|扫码在主页获取加入方式

YOLOS:通过目标检测重新思考Transformer(附源代码)_第1张图片

论文地址:https://arxiv.org/pdf/2106.00666.pdf

源代码地址:https://github.com/hustvl/YOLOS

1

前言

Transformer能否从纯序列到序列的角度执行2D目标级识别,而对2D空间结构知之甚少?为了回答这个问题,今天就展示了“You Only Look at One Sequence” (YOLOS),这是一系列基于朴素视觉变换器的目标检测模型,具有尽可能少的修改和inductive biases。 

YOLOS:通过目标检测重新思考Transformer(附源代码)_第2张图片

YOLOS-S, 200 epochs pre-trained, COCO AP = 36.1

我们发现仅在中等大小的ImageNet-1k数据集上预训练的YOLOS已经可以在COCO上实现具有竞争力的目标检测性能,例如直接从BERT-Base中采用的YOLOS-Base可以实现42.0 box AP。研究者还通过目标检测讨论了当前预训练方案和模型缩放策略对Transformer在视觉中的影响和局限性。

2

背景

Transformer为迁移而生。在自然语言处理 (NLP) 中,主要方法是首先在大型通用语料库上预训练Transformer以进行通用语言表示学习,然后针对特定目标任务对模型进行微调。最近,Vision Transformer(ViT)表明,直接从NLP继承的典型Transformer编码器架构可以使用现代视觉迁移学习配方在大规模图像识别上表现出奇的好。将图像补丁嵌入序列作为输入,ViT可以从纯序列到序列的角度成功地将预训练的通用视觉表示从足够的规模转移到更具体的图像分类任务,数据点更少。

YOLOS:通过目标检测重新思考Transformer(附源代码)_第3张图片

ViT-FRCNN是第一个使用预训练的ViT作为R-CNN目标检测器的主干。然而,这种设计无法摆脱对卷积神经网络(CNN)和强2D归纳偏差的依赖,因为ViT-FRCNN将ViT的输出序列重新解释为2D空间特征图,并依赖于区域池化操作(即RoIPool或RoIAlign)以及基于区域的CNN架构来解码ViT特征以实现目标级感知。受现代CNN设计的启发,最近的一些工作将金字塔特征层次结构和局部性引入Vision Transformer设计,这在很大程度上提高了包括目标检测在内的密集预测任务的性能。然而,这些架构是面向性能的。另一系列工作,DEtection TRansformer(DETR)系列,使用随机初始化的Transformer对CNN特征进行编码和解码,这并未揭示预训练Transformer在目标检测中的可迁移性。

YOLOS:通过目标检测重新思考Transformer(附源代码)_第4张图片

ViT-FRCNN

为了解决上面涉及的问题,有研究者展示了You Only Look at One Sequence (YOLOS),这是一系列基于规范ViT架构的目标检测模型,具有尽可能少的修改以及注入的归纳偏置。从ViT到YOLOS检测器的变化很简单:

  • YOLOS在ViT中删除[CLS]标记,并将一百个可学习的[DET]标记附加到输入序列以进行目标检测;

  • YOLOS将ViT中的图像分类损失替换为bipartite matching loss,以遵循Carion等人【End-to-end object detection with transformers】的一套预测方式进行目标检测。这可以避免将ViT的输出序列重新解释为2D特征图,并防止在标签分配期间手动注入启发式和对象2D空间结构的先验知识。

3

新框架

YOLOS:通过目标检测重新思考Transformer(附源代码)_第5张图片

  • YOLOS删除用于图像分类的[CLS]标记,并将一百个随机初始化的检测标记([DET] 标记)附加到输入补丁嵌入序列以进行目标检测。

  • 在训练过程中,YOLOS将ViT中的图像分类损失替换为bipartite matching loss,这里重点介绍YOLOS的设计方法论。

Detection Token

我们有目的地选择随机初始化的[DET]标记作为目标表示的代理,以避免2D结构的归纳偏差和在标签分配期间注入的任务的先验知识。在对COCO进行微调时,对于每次前向传递,在[DET]tokens生成的预测与真实对象之间建立最佳二分匹配。该过程与标签分配的作用相同,但不知道输入的2D结构,即YOLOS不需要将ViT的输出序列重新解释为用于标签分配的2D特征图。理论上,YOLOS在不知道确切的空间结构和几何形状的情况下执行任何维度的物体检测是可行的,只要每次通过输入总是以相同的方式展平为一个序列。

YOLOS:通过目标检测重新思考Transformer(附源代码)_第6张图片

YOLOS-S, 300 epochs pre-trained, COCO AP = 36.1

Fine-tuning at Higher Resolution

在COCO上进行微调时,除用于分类和边界框回归的MLP头以及随机初始化的100个[DET]标记外,所有参数均从ImageNet-1k预训练权重初始化。分类和边界框回归头均由MLP实现,具有两个使用单独参数的隐藏层。 

在微调期间,图像具有比预训练高得多的分辨率,为了保持补丁大小相同(16 × 16),这导致更大的有效序列长度。虽然ViT可以处理任意序列长度,但位置嵌入需要适应更长的输入序列。我们以相同的方式对预训练的位置嵌入进行2D插值。

YOLOS:通过目标检测重新思考Transformer(附源代码)_第7张图片

4

实验分析及可视化

YOLOS:通过目标检测重新思考Transformer(附源代码)_第8张图片

YOLOS的不同版本的结果

YOLOS:通过目标检测重新思考Transformer(附源代码)_第9张图片

与训练的效果

YOLOS:通过目标检测重新思考Transformer(附源代码)_第10张图片

不同尺度模型的预训练和迁移学习性能

YOLOS:通过目标检测重新思考Transformer(附源代码)_第11张图片

与一些小型CNN检测器的比较

Self-attention Maps of YOLOS

检验与YOLOS-S最后一层头部预测相关的[DET]tokens的自注意力。可视化pipeline遵循【 Emerging properties in self-supervised vision transformers】。可视化结果如下图所示。

YOLOS:通过目标检测重新思考Transformer(附源代码)_第12张图片

  • 对于给定的YOLOS模型,不同的自注意力头关注不同的模式和不同的位置。一些可视化是可解释的,而另一些则不是。

  • 我们研究了两个YOLOS模型的注意力图差异,即200 epochs ImageNet-1k预训练YOLOS-S和300 epochs ImageNet-1k预训练YOLOS-S。注意这两个模型的AP是一样的(AP=36.1)。从可视化中,我们得出结论,对于给定的预测对象,相应的[DET]标记以及注意力图模式通常对于不同的模型是不同的。

© THE END 

转载请联系本公众号获得授权

计算机视觉研究院学习群等你加入!

计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

YOLOS:通过目标检测重新思考Transformer(附源代码)_第13张图片

扫码关注

计算机视觉研究院

公众号ID|ComputerVisionGzq

学习群|扫码在主页获取加入方式

 往期推荐 

????

  • 自己觉得挺有意思的目标检测框架,分享给大家(源码论文都有)

  • CVPR2021:IoU优化——在Anchor-Free中提升目标检测精度(附源码)

  • 多尺度深度特征(上):多尺度特征学习才是目标检测精髓(干货满满,建议收藏)

  • 多尺度深度特征(下):多尺度特征学习才是目标检测精髓(论文免费下载)

  • ICCV2021目标检测:用图特征金字塔提升精度(附论文下载)

  • CVPR21小样本检测:蒸馏&上下文助力小样本检测(代码已开源)

  • 半监督辅助目标检测:自训练+数据增强提升精度(附源码下载)

  • 目标检测干货 | 多级特征重复使用大幅度提升检测精度(文末附论文下载)

  • 目标检测新框架CBNet | 多Backbone网络结构用于目标检测(附源码下载)

  • CVPR21最佳检测:不再是方方正正的目标检测输出(附源码)

  • Sparse R-CNN:稀疏框架,端到端的目标检测(附源码)

  • 利用TRansformer进行端到端的目标检测及跟踪(附源代码)

你可能感兴趣的:(算法,编程语言,计算机视觉,机器学习,人工智能)