【Transformer 02】End-to-End Object Detection with Transformers

backbone将图片提取为C x H x W的特征图,flatten为C x HW,即HW个C维的序列输入Transformer中,使得每个位置都可以获得其他任意位置的信息。Transformer encoder可以看作是特征映射。而与transformer decoder不同的是,DETR将Object queries(n random vectors, 在经过decoder中的Masked multi-head attention学习,就好像有n个不同的人从不同角度向模型提问)一次性输入,而不是transformer的自回归操作。

Abstract

本文提出一种新方法,将目标检测视作集合预测问题,并将它流程化,去除人工设计部分,例如NMS和anchor generation(这些会将我们对任务的先验知识编码进模型)。新框架的主体部分是DEtection TRansformer,这种基于集合的全局损失,会通过二部图匹配和transformer的encoder-decoder框架,产生唯一的预测。给定一个固定学习好的object queries小集合,DETR推理目标和全局图片之间的上下文关系,并行的输出最后的预测集合。

  • 该模型非常简单,不需要额外的库。
  • 在COCO上,展示了与Faster RCNN相当的准确率和运行时间性能。
  • 可以被简单地泛化到全景分割任务上

 

Introduction

1. 目标检测现状

目标检测旨在预测每个兴趣目标的bbox和类别标签。当前的检测器通过一种很不直接的方式去解决:在proposals,anchors,或者window centers上的回归和分类问题。他们的性能被以下因素影响 [52]:(1)postprocessing steps to collapse near-duplicate predictions;(2)anchor的设计;(3)将目标框分配给anchor的启发式方法。为了简化该问题,我们提出一个direct set预测方法来绕过这些代理任务,端到端的设计思想帮助改善了结构化的预测任务:机器翻译、语音识别。但在目标检测领域,还未出现一个真正意义上的端到端模型,并且在benchmarks上取得不错的baselines。

2. 本文方法

本文将问题转换为:直接集合预测问题(direct set prediction problem),并基于transformers用一个encoder-decoder框架去实现它。transformers的self-attention机制,将序列中的所有元素成对相互建模,使得这个框架非常适合于集合预测的特定约束,如删除重复预测。

DETR预测所有目标仅一次,通过一系列损失函数(预测和GT之间的二部图匹配)去端到端的训练。DETR通过去除人工设计部分,如NMS、spatial anchors等,来简化流程。不同于当前大多数目标检测方法,DETR不需要任何定制层,可以在任何有CNN和transformer类的框架中使用。

相较于大多数直接集合预测工作,DETR的主要特点是二部图匹配损失(bipartite matching loss),和transformers(non-autoregressive)并行解码。前人工作主要集中在使用RNN的自回归解码。因为我们的损失函数,会为GT object指定唯一的预测,并且对预测不受预测目标排序的影响,因此我们可以并行的处理他们。

我们和Faster RCNN在COCO上进行了比较,实验结果显示,我们的方法很有竞争力,更具体来说,DETR在大型目标上表现更好,这可能是Transformer更关注全局,而不是局部信息的结果。当然,在小目标上效果较差,期待后人改进。

DETR需要更长的训练周期。我们将深入研究哪些组件对模型性能至关重要。DETR有很好的拓展性,我们实验显示,在pre-trained DETR上,增加一个segmentation head,可以在Panoptic Segmentation上取得不错的效果。

 

Related Work

Set Prediction:最基础的set prediction task是多标签分类,对于这种情况,baseline方法,one-vs-rest不适用于诸如检测等问题,元素之间有潜在的结构(近乎相同的boxes)。

 

MODEL

对于direct set prediction有两个重要部分:(1)一组预测损失,使得预测和GT之间有唯一的匹配;(2)在单轮中预测一组目标并且建模他们关系的框架。

DETR输出N个定长的推理,N比图片中的目标数量大很多。同时GT也是元素数量为N的集合(被no object元素填充)。对于这两个集合,本文通过匈牙利算法,找到推理和GT之间的最佳匹配,其中匹配通过下式完成:

其中等于,yi = (ci, bi),ci是匹配的类别标签,表示bbox的中心坐标和长宽,都关于图片长宽做了归一化。是ci的概率。

匹配完成后,需计算损失函数:

bbox loss定义为:,其中是generalized IoU loss:

* 参考:https://zhuanlan.zhihu.com/p/57992040

模型的整体框架如下:

Backbone:提取输入图片的feature map,得到 2048 x H x W,其中H,W是原图的1/32。

Transformer encoder:通过1x1卷积,将特征图降维至d x H x W,然后flatten为d x HW,为了增加位置信息,我们增加了定长的positinal encodings。

Transformer decoder:output positional encodings (object queries, initially set to zero)。与原始transformer不同,本文模型在每个解码层中并行的解码N个目标。

Prediction feed-forward networks (FFNs):a 3-layer prerceptron with ReLU activation function and hidden dimenshion d, and a linear projection layer.

Auxiliary:训练时在解码层使用辅助损失(auxiliary losses),特别是辅助输出每个类别的准确目标数量。

 

Experiments

训练了500个epoch,比Faster RCNN慢了10-20倍,需要大显存才能提升性能。每块V100(32G显存)只能放下四张图片的batch,64个batch是用了16块V100实现的

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值