End-to-End Object Detection with Transformers

End-to-End Object Detection with Transformers

image-20210302144739175

会议:2020 ECCV

论文:https://arxiv.org/abs/2005.12872

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

创新点:

  • \作者摒弃了基于anchor、NMS等这种需要手工设计的模块,和R-CNN系列、YOLO系列,以及其他anchor-free的方法都不同,减少检测器对先验性息和后处理的依赖,做到了真正的end2end。
  • 使用类似机器翻译的序列预测思想,利用了transformer,其中的self- attention允许模型抑制重复的预测,跳出了目标检测的传统方法。

image-20210318160627735

Instruction

将目标检测任务转化为一个序列预测(set prediction)的任务,没有使用two-stage方法的proposals,没有使用YOLO系列的先验框,也没有用到NMS。

总体的思路是:首先将图像输入到CNN中提取特征,特征+位置信息叠加后输入到tranformer中,输出固定个数的预测结果(一个GT对应一个预测结果)。训练过程中,用到了匈牙利算法和二分图匹配。

作者提出了DETR模块,使用transformer编码-解码器结构和二分图匹配的方法,由输入图像直接得到预测结果序列。transformer结构引入了自注意力机制,它的作用是在一个序列中,显式建模元素之间的所有成对的一种对应关系,使这些结构特别适合于一系列的预测。DETR一次性预测所有的object,整体的模型进行端到端训练,损失函数是在预测和GT上进行二分图匹配。因为是在集合上进行预测,为每一个预测结果分配一个GT,所以可以实现并行计算。

存在的问题

  1. DETR对大目标检测效果比较好,因为self-attention更关注全局信息,而对小目标检测效果比较差。可能的原因是transformer做的是全局运算
  2. 训练时间长,16张V100卡要在COCO上训练500个epochs,5天,性能才可以比肩Faster R-CNN。

Related Works

集合预测

目前没有权威性的深度学习模型用来做集合预测,通常的策略就是设计一个基于匈牙利算法的loss,来做一个预测和GT之间的二分图匹配。

Transformer和并行解码

Transformer是一个用于机器翻译的自注意力机制模块,它通过扫描所有的序列来获得全局信息,优势是全局计算和perfect memory(可以理解为保存全局信息,以及占用内存小),所以它比RNN更适合长序列。

作者将transformer和并行解码结合起来,平衡计算成本和全局计算能力的trade-off,取一个合适的权重。

目标检测

无论是two-stage还是one-stage,先验anchor都很影响检测的结果,作者直接去掉了这些需要手动设计的预检测模块,不在先验anchor上进行预测,而是直接通过一组absolute box直接预测输入图片。

The DETR model

集合预测中的两个关键元素:

  1. loss是一个集合,其中的元素是每个预测与GT之间的匹配
  2. 模型架构可以预测一组objects并建模它们之间的关系
集合预测损失函数

DETR输出N(通常比实际目标个数要多)个预测结果,一个主要的困难就是给预测的目标打分,包括类别、位置、尺寸。

image-20210326111315772
  • y y y:GT的集合,如果不足N个,则用 ∅ \emptyset 补齐
  • y ^ \hat{y} y^:N个预测的集合

为了实现这个二分图匹配,需要找到损失最小的匹配顺序 θ ^ \hat\theta θ

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值