【论文阅读笔记】End-to-End Object Detection with Transformers

代码地址:https://github.com/facebookresearch/detr

论文小结

  本文是Transformer结构应用于目标检测(OD)任务的开山之作。方法名DETE,取自Detection Transformer。
  作为2020年的论文,其表现精度在当时也不算高的,但为后面的DETE-based方法提供了基础。

  DETR的模型架构设计,使用的是混合Transformer结构,即CNN+Transformer的结构,

  与YOLO系列基于grid的预测对比,DETR经过transformer的decoder输出的是序列集。由于OD任务不需要自回归处理,所以decoder的输出可以并行处理,同时输出多个检测框

  transformer输出的是序列集,而OD任务所需要的最终结果也是一个边框集合,所以DETR是直接对结果进行的预测,即OD任务在此直接为集合预测问题
  集合预测问题,在匹配损失的时候,具有唯一性。所以DETR的预测结果在合理的Loss作用下,是不需要NMS后处理的。且在没有anchor grid和anchor box的偏差预测过程的情况下,DETR算法管道实现端到端训练和预测,丢弃了YOLO系列所需的融入先验知识的需求(anchor & nms)。

  文中DETR对比的算法是Faster RCNN,是2015年的一篇论文,精度差不多,运行时间也差不多。小目标不如Faster RCNN,大目标好不少,最后mAP基本持平。
  后续也有论文改进了transformer在小目标检测上精度不足的问题。

论文简介

  现有大多数检测算法,都依赖于一些初始猜测。不管是基于proposal的二阶目标检测算法,还是anchor-based、anchor-free的一阶目标检测算法,都是没有直接去预测集合预测的,而是设计了一个替代的任务(回归和类别概率)来解决目标检测问题。
  现代目标检测器的检测性能很受后处理步骤的影响,比如(1)密集预测边界框的消除;(2)anchor集合的额设计;(3)将目标分配给anchor的启发性方法;
  DETR通过直接预测集合的方法来绕过这些“代理”任务,无需任何人工先验知识,实现端到端预测

  DETR的结构图如图1所示。其组件transformer-encoder将序列元素两两交互,其全局的交流有利于一些特别限制的集合预测,比如移除重复的预测结果。
  DETR使用二分图匹配来计算端到端的几何损失,匹配的唯一性,也进一步限制了重复的预测结果。
  和其他的集合集合预测方法对比,DETR的主要区别就在于使用了二分图匹配损失以及平行解码的transformer结构。之前的集合预测方法一般使用RNNs模型做自回归预测。

论文方法

  由于transformer的decoder结构其输入输出维度保持不变,故当输入序列长度为 N N N,我们也能得到序列长度为 N N N的固定长度输出。本文DETR的输入序列命名为 object quires,是一组基于学习得来的参数,可视化如下 7 7 7所示。

损失计算

  集合预测的训练难点在于如何结合GT来给预测目标打分。本文的损失计算策略先用二分图匹配方法,再对有目标(匹配成功)的bboxes计算损失

  将目标集合 y y y扩展到长度 N N N,不足长度的部分用 ∅ \varnothing 表示,意为无目标。预测集合 y ^ \hat{y} y^和GT集合 y y y的匹配,是寻找两个集合匹配的最低消耗,如公式 ( 1 ) (1) (1),其中 σ ( i ) \sigma(i) σ(i)是预测集合第 i i i个。
σ ^ = arg min σ ∈ G N ∑ i N L match ( y i , y ^ i ) (1) \hat{\sigma}=\mathop{\text{arg min}} \limits_{\sigma\in\mathscr{G}_N}\sum_i^N\mathcal{L}_{\text{match}}(y_i, \hat{y}_i)\tag{1} σ^=σGNarg miniNLmatch(yi,y^i)(1)

  匈牙利算法(Hungarian algorithm)是这个最佳匹配的一个较优解法。匹配消耗考虑类别预测和边框预测的综合损失。考虑第 i i i个预测的类别 c i c_i ci

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值