引言
Transformer 是 Google 团队在 2017 年提出的一种 NLP 经典模型,现在比较火热的 Bert 也是基于 Transformer。Transformer 模型使用了 Self-Attention 机制,不采用 RNN 的顺序结构,使得模型可以并行化训练,而且能够拥有全局信息。
Transformer+Detection
DETR
Introduction
早在20年5月就有人引用Transformer处理目标检测任务(End-to-End Object Detection with Transformers),首次将Transformer从NLP引入到CV领域,该文章使用Transformer+Detection方式进行目标检测任务,取代了现在的模型需要手工设计的工作,并且取得了不错的结果。其准确率和运行时间上与Faster Rcnn相当。DETR是首次提出使用End to End的方式解决目标检测问题。
DETR architecture
DETR结合CNN和Transformer的结构,并行实现预测。DETR 通过删除编码先验知识的多个手工设计的组件(如空间锚点或非最大抑制)来简化检测流程。与大多数现有检测方法不同,DETR 不需要任何自定义层,可以在包含 CNN 和 Transformer 的任何框架中轻松重现。图1为DETR整体结构。
DETR整体结构主要包含四个部分:Backbone、Transformer encoder、Transformer decoder 和 Prediction feed-forward networks (FFNs),如图2为DETR框架细节图。
Backbone
CNN backbone处理原始输入图像,把它转换为低分辨率的 feature map 一般
Transformer encoder
encoder 的输入是 的 feature map,使用卷积降低通道维数,从 变为更小的 得到新的feature map 。encoder 需要一个序列输入,将空间维度折叠成维,最后得到的 feature map 尺寸为 。由于 Transformer 架构是置换不变的,使用固定位置编码对其进行补充,这些编码添加到每个注意力层的输入中。
Transformer decoder
DETR decoder 使用标准 Transformer decoder 结构,转换为个大小为 的 multi-headed self and encoder-decoder attention 机制,与原始 Transformer 的不同之处在于 DETR 模型在每个解码器层并行解码个对象,一次性输出全部的 predictions。通过使用self- and encoder-decoder attention 覆盖 embeddings,该模型使用它们之间的成对关系对所有对象进行全局推理,同时能够使用整个图像作为上下文。
Prediction feed-forward networks (FFNs)
最终预测由具有 R