论文:You Only Look at One Sequence: Rethinking Transformer in Vision through Object Detection
代码:https://github.com/hustvl/YOLOS
作者:华中科大王兴刚团队
出处:NIPS 2021
时间:2021.10
一、背景
ViT 作为首个在视觉领域超越 CNN 的 Transformer 模型,能够通过提取全局信息来构建长距离的依赖模型,但其是从分类的角度出发,且缺失了层级特征,所以难以判定原始 ViT 能否将 pre-trained 的大数据集的 image-level 的特征传递到下游的目标检测任务。
所以,YOLOS 被提出,从目标检测的角度来探索 Transformer 的结构,主要变化如下:
- YOLOS 将 ViT 中的 1 个 cls token 用 100 个 det token 代替,来用于目标检测
- YOLOS 使用 bipartite matching loss 代替 ViT 中的分类 loss,让目标检测过程变成一个序列预测过程,避免把 ViT 的输出重新构建成一个 2D 特征图,且能够在标签分配的时候保持手工启发式和先验知识。
- YOLOS 的预测头没有复杂的设计,类似一个紧凑的分类层
YOLOS 的贡献如下:
- 使用 mid-sized ImageNet-1k 作为预训练数据集,验证了 ViT 能够成功的将预训练特征传递到目标检测任务,并且能够在 COCO 上取得很好的效果
- 首次证明了目标检测任务可以使用一个 sequence-to-sequence 的方式来实现,输入等大且不重叠的图片块作为输入,相比现有的目标检测器,YOLOS 只使用了很少的 2D 归纳偏置
- 使用原始 ViT 证明了目标检测的结果受预训练的方法影响很大,且其检测效果和上限还有很大的距离。
二、方法
YOLOS 结构如图 1 所示
1、Stem
- 原始的 ViT 输入是对每个 patch 经过线性变换,concat 一个 cls token,然后加上位置编码,作为输入的
- YOLOS 由于是检测模型,所以也是降每个 patch 使用 E 做线性变换,然后 concat 100 个 det token,加上位置编码作为输入。这 100 个 det token 其实可以看做预设的 100 个 anchor,最终会得到 100 个预测结果。
2、Body:Encoder
- MSA+LN
- MLP+LN
- Residual connections
3、Detector Heads
分类和回归的头都是使用 1 个 MLP 来实现的,使用 Relu 作为激活函数。
4、Detection Token
这其实就是上面的那初始随机生成的 100 个 det token,也可以看做目标的特征,这样做就能够在标签分配的时候避免特定任务所注入的 2D 归纳偏置和先验知识。
Fine-tuning COCO 的时候,给预测结果(来自 det token )和真实标签使用了双边匹配,这个策略虽然和 label assignment 同样都起了很重要的作用,但在 2D 结构中通常被忽略了。YOLOS 其实不需要将 Transformer 的输出在重新回复成 2D 特征图来进行 label assignment。
5、Fine-tuning at Higher Resolution
Fine-tuning 时,COCO 的图像是远远大于预训练的图的,不改变 patch size(还保持 16x16),就会产生一个很大的序列,作者使用位置坐标差值法来适应不同的大小。
6、Inductive Bias
为了引入最小的归纳偏置,YOLOS 使用 det tokens 来作为最终检测目标的联系,避免了 2D 归纳偏置和特点任务的启发。
7、和 DETR 的对比
YOLOS 其实是受 DETR 的启发的:
- YOLOS 使用了 det token,来避免归纳偏置
- YOLOS 的优化方式也类似 DETR
YOLOS 和 DETR 的不同:
- DETR 使用的 Transformer 的 encoder-decoder 结构,YOLOS 使用了 encoder-only 结构
- DETR 使用了预训练的卷积网络,Transformer 网络是随机初始化的,YOLOS 是使用预训练的 ViT 了
- DETR 在每个 decoder 中使用了 cross-attention,并且使用了辅助 decoding loss 来监督每个 decoder 层,YOLOS 不区分 patch token 和 det token,只关注一个序列。
三、效果
1、模型变体
2、预训练的效果
3、和其他网络的对比
4、det token 的作用可视化
下面展示了前十个 det token 的效果
5、YOLOS 的 self-attention 特征图
为了查看 det token 的self-attention 和其对应的预测头的关系,可视化了最后一层的图:
- 不同的 self-attention 头关注不同的特征和位置
- 不同预训练次数的 attention map 不同:可视化了使用 200 epoch 预训练的模型和 300 epoch 预训练的的 YOLOS 的特征图,AP 是类似的,但从可视化角度看,是不同的。