YOLOS学习记录
Posted 彭祥.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YOLOS学习记录相关的知识,希望对你有一定的参考价值。
在前面,博主已经完成了YOLOS项目的部署与调试任务,并在博主自己构造的数据集上进行了实验,实验结果表明效果并不显著,其实这一点并不意外,反而是在情理之中。众所周知,Transformer一直以来作为NLP领域的带头大哥,在CV领域也才刚刚起步,尽管其势头正猛,一时风光无量,但毕竟有个通病,那就是大数据集量。此外,YOLOS的设计初衷也并非是为了设计一款性能与CNN网络相媲美的检测器,其在论文中已经指出了自己的目的:
Can Transformer perform 2D object- and region-level recognition from a pure sequence-to-sequence perspective with minimal knowledge about the 2D spatial structure? To answer this question, we present You Only Look at One Sequence (YOLOS), a series of object detection models based on the vanilla Vision Transformer with the fewest possible modifications, region priors, as well as inductive biases of the target task.
Transformer 能否从纯序列到序列的角度执行 2D 对象和区域级识别,而对 2D 空间结构的了解很少?为了回答这个问题,我们提出了 YOLOS ,这是一系列基于原版视觉转换器的对象检测模型,具有尽可能少的修改、区域先验以及目标任务的归纳偏差。
ViT is designed to model long-range dependencies and global contextual information instead of local and region-level relations. Moreover, ViT lacks hierarchical architecture as modern CNNs to handle the large variations in the scale of visual entities . Based onthe available evidence, it is still unclear whether a pure ViT can transfer pre-trained general visual representations from image-level recognition to the much more complicated 2D object detection task.
ViT 旨在对长期依赖关系和全球上下文信息进行建模,而不是对区域级别的关系进行建模。此外,ViT缺乏作为现代CNN的分层架构来处理视觉实体规模的巨大变化。根据现有证据,目前尚不清楚纯ViT是否可以将预先训练的一般视觉表示从图像级识别转移到更复杂的2D对象检测任务中。(ViT做的是分类任务)
上面的大概意思在博主看来就是Transformer能否在不借助一些CNN网络的情况下,在基本上不变更模型本身的前提下完成2D目标检测任务呢?由此他提出了YOLOS模型,说白了这个YOLOS与YOLO完全是八竿子打不着的。
但这篇文章也确实完成了他的任务,即能否只依靠Transformer模型本身来完成目标检测任务,前面已经提到,该模型提出是用于目标检测的,那就不可避免的涉及到DETR模型,该模型作为Transformer在目标检测领域的开山之作,其已经被广泛的改进。
但DETR模型中的特征提取网络也用到了CNN网络,这是YOLOS与其的一个不同之处。
DETR模型
关于DETR模型的相关介绍,大家可以阅读博主这篇文章:
DETR模型学习记录
相较而言,DETR的相关参考资料也更多些。
YOLOS模型
在模型设计方面,其尽可能参照原始ViT架构,并参照DETR针对目标检测进行适当调整。YOLOS可以轻易的适配不同的Transformer结构,这种简单的设置初衷不是为了更好的检测性能,而是为了尽可能无偏的揭示Transformer在目标检测方面的特性。
有针对性的选择随机初始的DET作为目标表达的代理以避免2D结构与标签赋值时注入的先验知识存在的归纳偏置。当在COCO上进行微调时,每次前向传播时,在DET与真实目标之间构建一个最优偶匹配。该步骤起着与标签赋值相同的作用,但它与2D结构无关,也即是说:YOLOS不需要将ViT的输出重解释为2D结构以进行标签赋值。理论上来讲,YOLOS可以进行任意维目标检测,且无需知道精确的空间结构或者几何结构,只要将输入按照相同方式平展为序列即可。
YOLOS是一款基于规范ViT架构的目标检测模型,具有尽可能少的修改以及注入的归纳偏置。从ViT到YOLOS检测器的变化很简单:
- YOLOS丢弃了用于图像分类的CLS而添加了100个随机初始化的DET;
- 在训练阶段,YOLOS采用偶匹配损失(Bipartite Matching Loss)替换了图像分类损失以进行目标检测。
关于预训练权重
在COCO上进行微调时,除用于分类和边界框回归的MLP头以及随机初始化的100个[DET]标记外,所有参数均从ImageNet-1k预训练权重初始化。分类和边界框回归头均由MLP实现,具有两个使用单独参数的隐藏层。
与DETR的不同之处
YOLOS的设计是受DETR启发而来:YOLOS采用DET作为目标表达的代理以避免2D结构和任务相关的先验知识导致的归纳偏置,YOLOS采用了与DETR相似的优化方式。但同时存在几点不同:
DETR采用了随机初始化的编解码形式的Transformer;而YOLOS则仅研究了预训练ViT编码的迁移能力;
DETR采用了decoder-encoder注意力并在每个decoder层添加额外辅助监督;而YOLOS总是查看每一层的一个序列,而没有再操作方面对块与DET进行区分。
意义
-
YOLOS是一系列基于朴素ViT的目标检测模型,在中等大小数据集ImageNet上预训练的YOLOS已经足以在COCO上取得极具竞争力的目标检测性能。
-
YOLOS可以轻易的适配不同的Transformer结构,这种简单的设置初衷不是为了更好的检测性能,而是为了尽可能无偏的揭示Transformer在目标检测方面的特性。
以上是关于YOLOS学习记录的主要内容,如果未能解决你的问题,请参考以下文章