YOLO系列目标检测算法——YOLOS

时间:2022-12-19 21:53:10

YOLO系列目标检测算法目录 - 文章链接


本文总结:

  1. Transformer能否在很少了解二维空间结构的情况下,从纯seq-to-seq的角度进行二维目标级识别吗(直接从图像识别迁移到目标检测)?从这个问题出发,提出了YOLOS;
  2. YOLOS不是一个高性能的目标检测器,而是为了揭示Transformer从图像识别到目标检测的多功能性和可转移性;
  3. 使用中等规模的ImageNet-1k作为唯一的预训练数据集,并表明vanilla ViT(DeiT)可以成功地转移到执行目标检测任务,并在尽可能少的修改下产生有竞争力的COCO结果,即只看一个序列(YOLOS);
  4. 证明了二维目标检测可以通过将固定大小的非重叠图像patches序列作为输入,以纯粹的seq-to-seq的方式完成。在现有的目标检测器中,YOLOS使用了最小的归纳偏置。此外,对于YOLOS来说,在不知道精确的空间结构或几何结构的任何维度空间中执行目标检测都是可行的;
  5. 对于ViT(DeiT),发现目标检测结果对预训练方案相当敏感,检测性能远远没有达到饱和。因此,提出的YOLOS可以作为一个具有挑战性的基准任务来评估ViT(DeiT)不同的预训练策略。

深度学习知识点总结

专栏链接:
https://blog.csdn.net/qq_39707285/article/details/124005405

此专栏主要总结深度学习中的知识点,从各大数据集比赛开始,介绍历年冠军算法;同时总结深度学习中重要的知识点,包括损失函数、优化器、各种经典算法、各种算法的优化策略Bag of Freebies (BoF)等。



YOLO系列目标检测算法-YOLOS

2021.6.1 YOLOS:《YOLOS:You Only Look at One Sequence: Rethinking Transformer in Vision through Object Detection》

Transformer相关知识可以参考文章《从RNN到Attention到Transformer系列-Transformer介绍及代码实现》,或者系列文章《从RNN到Attention到Transformer》

1. 简介

  目前Transformer应用非常广泛,新提出的ViT已经将Transformer应用到了图像领域,但是基于ViT的这些架构是面向性能的,不能反映直接继承自朴素或普通Vision Transformer的特性。

  直观地说,ViT被设计用于建模长期依赖关系和全局上下文信息,而不是局部和区域级别的关系。此外,ViT缺乏像CNN那样的层次架构来处理视觉实体规模的巨大变化。基于现有证据,目前尚不清楚纯ViT是否可以将预先训练过的一般视觉表示从图像级识别转移到更复杂的二维目标检测任务中。

  为了回答这个问题,本文提出“You Only Look at One Sequence(YOLOS)”,这是一系列基于规范ViT架构的目标检测模型,具有最少的修改和诱导偏差。从ViT到YOLOS检测器的变化很简单:

  1. YOLOS在ViT中删除[CLS]token,并向输入序列中添加100个可学习的[DET]token,用于目标检测;
  2. YOLOS取代图像分类loss为二分图最大匹配(bipartite matching)loss,去执行目标检测后预测方式,这可以避免重新解释输出ViT序列到二维特征图,以及防止在标签分配期间手动注入目标二维空间结构的启发式和先验知识。

  YOLOS直接继承自ViT,并不是被设计成另一种高性能的目标检测器,而是揭示了Transformer从图像识别到目标检测的多功能性和可转移性。

2. YOLOS网络结构

  在模型设计中,YOLOS严格遵循原始的ViT架构,并对目标检测进行了优化。YOLOS可以很容易地适应于NLP和计算机视觉中的各种Transformer变形。这种有意简单的设置不是为了更好的检测性能而设计的,而是为了尽可能准确地揭示目标检测中Transformer家族的特征。

  网络结构的总体结构如图1所示,从ViT到YOLOS检测器的变化很简单,具体如下:
YOLO系列目标检测算法——YOLOS
图中"Pat-Tok"指的是patch token,是一个拉平的图像patch的编码;"Det-Tok"指的是[DET]token,这是一个可学习的目标检测预测结果的编码向量;"PE"指的是位置编码。在训练时,YOLOS输出100个[DET]token和GT之间产生的最优二分图最大匹配;预测推理时,YOLOS直接并行输出最终的预测结果。

  1. YOLOS删除了用于图像分类的[CLS]token,并将100个随机初始化的[DET]token附加到输入patch的嵌入序列中,用于目标检测;
  2. 在训练过程中,YOLOS用二分图最大匹配(bipartite matching)loss代替ViT中的图像分类loss,按照Carion等人《End-to-end object detection with transformers》的集合预测方式进行目标检测。

Detection Token
  有目的地选择随机初始化的[DET]token作为目标表示的代理,以避免二维结构的归纳偏差和关于在标签分配过程中注入的任务的先验知识。当对COCO进行微调时,对于每一个正向传递,建立了由[DET]tokens生成的预测与GT真实目标之间的最优二分图最大匹配。此过程与标签分配起着相同的作用,但却不知道输入的二维结构,YOLOS不需要将ViT的输出序列重新解释为2D特征映射以进行标签分配。理论上,YOLOS在不知道确切的空间结构和几何形状的情况下执行任何维度目标检测都是可行的,只要每次传递的输入总是以相同的方式flatten为一个序列。

以更高的分辨率进行微调
  在COCO上进行微调时,除了用于分类和边界框回归的MLP头以及随机初始化的一百个[DET]token外,所有参数都是从ImageNet-1k的预训练权重中初始化的。分类和边界框回归头都是由一个有两个隐藏层的MLP来实现的,使用单独的参数。在微调过程中,图像的分辨率比训练前要高得多,保持patch大小相同(16×16),从而得到更大的有效序列长度。虽然ViT可以处理任意的序列长度,但位置嵌入需要适应较长的输入序列。使用对预先训练好的位置嵌入进行二维插值。

Inductive Bias

  Inductive Bias指的是归纳偏置,让算法优先某种解决方案,这种偏好是独立于观测的数据的。常见的归纳偏置,包括:贝叶斯算法中的先验分布、使用某些正则项来惩罚模型、设计某种特殊的网络结构等。好的归纳偏置,会提升算法搜索解的效率(同时不会怎么降低性能),而不好的归纳偏置则会让算法陷入次优解,因为它对算法带来了太强的限制。全连接是假设所有的单元都可能会有联系,卷积则是假设数据的特征具有局部性和平移不变性,循环神经网络则是假设数据具有序列相关性和时序不变性,而图神经网络则是假设节点的特征的聚合方式是一致的。总之,网络的结构本身就包含了设计者的假设和偏好,这就是归纳偏置。 该自然段归纳偏置的介绍引用自url

  本文设计的YOLOS,以实现最小的额外归纳偏置。ViT固有的纳偏置来自于网络*分的patch提取,以及位置嵌入的分辨率调整。除此之外,YOLOS在ViT的基础上增加了非退化(例如3×3或其他非1×1)的卷积。从表征学习的角度来看,选择使用[DET]token作为最终预测的目标的代理,以避免额外的二维归纳偏置以及启发式方法。受CNN架构启发的以性能为导向的设计,如金字塔式特征层次、二维局部空间注意力以及区域性池化操作都没有应用。所有这些努力都是为了准确地揭示Transformer的多功能性和可转移性,它以纯粹的seq-to-seq的方式从图像识别到物体检测,对输入的空间结构和几何结构的了解最少。

与DETR的比较
  YOLOS的设计的灵感来自于DETR:YOLOS使用[DET]token作为目标表示的代理,以避免对二维结构的归纳偏差和对在标签分配过程中注入的任务的先验知识,而YOLOS的优化方式与DETR类似。同时,两者之间也有一些关键的区别:

  1. DETR使用随机初始化的encoder-decoder架构,而YOLOS研究预先训练的encoder-only ViT的可移植性;
  2. DETR在图像特征和对象查询之间使用decoder-encoder attention(cross attention),并在每个解码器层进行深入监督的辅助解码损失,而YOLOS总是只查看每一层的一个序列,而没有在操作方面区分patch token和[DET]token。

3. 代码

  更新中。。。

4. 结论

  本文中探讨了在中型ImageNet-1k数据集上预训练的vanilla ViT在更具挑战性的COCO目标检测基准中的可转移性。证明了二维目标检测可以以纯粹的seq-to-seq的方式完成,并且具有最小的额外归纳偏置。在COCO上的表现还是可以的,这些初步的结果证实其是有意义的,表明Transformer对各种下游任务的可转移性和通用性。