DETR:End-to-End Object Detection with Transformers

摘要

在DETR出现之前,大多数目标检测算法都会生成很多预测框,所以需要加上一个后处理操作,如

目标检测中很少有端到端的方法,不论是proposal based方法还是anchor based方法,最后都会生成很多这个预测框,大部分方法最后至少需要一个后处理的操作,也就是nms(非极大值抑制)。如何去除这些预测框,就是nms要做的事情。正是因为有了nms,所以这个模型在调参上很复杂,即使训练好了一个模型,nms不是所有硬件都支持的,部署起来也是十分困难的,所以一个简单的端到端的目标检测系统一直是大家梦寐以求的。

DETR解决了上面的问题,它既不需要proposal也不需要anchor,直接利用transformer这种全局建模的能力,把目标检测看成了一个集合预测的问题,正是因为有了这种全局建模的能力,DETR不会输出那么多冗余的框。DETR使用object query代替了原来生成anchors的方式,运用二分图匹配代替了nms这一步,使很多不可学习的东西变得可以学习了,相当于给了一个更强的约束。

主要工作

1.提出了目标函数,通过二分图匹配的方式,使得模型输出独一无二的预测,就是说没有那么多冗余的框了。 
2.使用了Transformer的编码器解码器架构。其中有两个细节:
1.解码器这边还有另外一个输入,learned object query,类似于anchors,它会限制你出框的个数。DETR可以将learned object query和全局图像信息结合起来,通过不停的做注意力操作,从而使得模型直接输出最后的预测框。 
2.并行的方式,与2017Transformer用在NLP领域使用掩码解码器(自回归方式:一个单词一个单词翻译)不同,这里视觉任务中,图像中目标没有依赖关系。另一方面也是希望越快越好。

DETR训练过程

第一步用CNN抽特征。
第二步用Transformer编码器去学全局特征,帮助后边做检测。
第三步,结合learned object query用Transformer解码器生成很多预测框。
第四步,匹配预测框与GT框,在匹配上的框里做目标检测的loss,其他没有匹配到的就称为no object(这里采用的是匈牙利苏算法)

主要优点

非常简单,性能也不错,在COCO数据集可以和Faster RCNN基线网络打平。另外,DETR可以非常简单的拓展到其他任务上。 

主要缺点

DETR在大物体上效果非常好,不会跟之前一样受限于anchor的大小。但推理时间有点长、由于使用了Transformer不好优化、小物体上性能也差一些。后来,Deformable DETR解决了推理时间和小物体检测差的不足。

论文投稿借鉴点

其实DETR训练时间长,再加上它与当时一些先进模型比的话分数并没有更高,那如何让审稿人通过你的稿子呢?找到一个合适的切入点。
1.做了很多消融实验,通过对比来突出它自身的优势。
2.通过可视化和一些分析来证明DETR为什么好。


图3把transformer encoder这个编码的自注意力可视化。transformer encoder学的是全局的特征,即使遮挡严重,还是能把这两头牛分的相当清楚。但是对于头尾巴这些极值点、最外围的点该怎么办?

这个时候再去decoder(图六)。decoder学习的是物体的边缘,以更好的去区分物体以及解决遮挡问题。


图七是object query可视化,每个正方形代表一个object query, learned object query 其实是学习了一种 “查询” 物体的模式。比如第一个 query,就是负责查询图中左下角有没有一个小物体,中间有没有一个大的横向的物体;第二个 query 负责查询右边有没有小物体,经过100个不同object query查询完成后,目标也就检测完成了。从这个可视化实验可以看出,其实 learned object query 做的事情与 anchor 是类似的,就是去看某个位置有没有某种物体,只不过anchor 需要先验地手动设置,而query是与网络一起端到端学习的。
每个的学习方式都不一样,最后发现每个图片中间都有一条红色的竖线(代表大物体),之所以会这样是因为coco数据集中心都会有一个大物体,相当于object query直接取代anchor。
3.DETR把它扩展到了全景分割以及目标追踪以及视频里的姿态预测以及视频里的语义分割。

补充

集合预测损失:
DETR模型最后输出是一个固定的集合,不论图片是什么,最后都会有n个输出即n个框,这篇论文中n就是100。普通的一张图片中所包含的物体个数应该是比100小的,故groud truth只会有几十个,那如何把预测狂与gt框对应起来呢?作者将这个问题转化为了一个二分图匹配的问题。过程是根据预测框和gt框做一个损失矩阵,最优二分图匹配就是最后能找到一个唯一解,匈牙利算法就是解决这个的。这个跟之前的anchor和proposal方法差不多,但是这里约束更强,为一对一,以前是一对多。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值