DETR
DETR基本信息
DETR(Detection Transformer)是一种基于Transformer架构的端到端目标检测模型,由Facebook AI研究院提出。DETR将目标检测问题转化为一个序列到序列的问题,通过Transformer的编码器和解码器结构来实现目标检测任务。
类别 | 内容 |
---|---|
标题 | End-to-End Object Detection with Transformers |
作者 | Nicolas Carion? , Francisco Massa? , Gabriel Synnaeve, Nicolas Usunier,Alexander Kirillov, and Sergey Zagoruyko |
发表时间 | 2020-5-28 |
单位 | Facebook AI |
论文链接 | https://arxiv.org/pdf/2005.12872 |
项目地址 | https://github.com/facebookresearch/detr |
论文视频解读 | DETR论文精读【论文精度】 |
摘要 | 提出了一种将对象检测视为直接集预测问题的新方法。我们的方法简化了检测管道,有效地消除了许多手工设计的组件的需要,如非最大抑制程序或锚定生成,显式地编码了我们对任务的先验知识。新框架的主要成分,称为检测transformer或DETR,是一个基于集合的全局损失,通过二部匹强制唯一的预测,以及一个transformer编码器-解码器架构。给定一组固定的小型学习对象查询,DETR对对象和全局图像上下文之间的关系进行推理,以直接并行输出最终的预测集。与许多其他现代检测器不同,这个新模型在概念上很简单,不需要专门的库。DETR在具有挑战性的COCO目标检测数据集上展示了准确性和运行时性能,与完善和高度优化的快速RCNN基线相当。此外,DETR可以很容易地推广到以统一的方式产生全光分割。我们表明,它明显优于竞争激烈的基线。训练代码和预训练模型可在https://github.com/facebookresearch/detr上获得。 |
创新点 | DETR(Detection Transformer)的主要创新点包括: 1.将目标检测转化为序列预测任务:使用 Transformer 编码-解码器结构和双边匹配的方法,由输入图像直接得到预测结果序列。它不同于传统的检测方法,不需要预定义的先验 anchor,也不需要非极大值抑制(NMS)的后处理策略,直接预测检测框和类别,将 CNN 和 Transformer 巧妙地结合,实现了目标检测的任务。 2.使用 Transformer 结构进行目标检测:DETR 是首次将 Transformer 应用于目标检测领域。 3.引入 bipartite matching loss(二分图匹配损失):通过匈牙利算法进行预测框(prediction boxes)和真实框(ground truth boxes)的二分图匹配,从而计算损失。这样使得每个目标只有一个正样本,解决了传统方法中存在的 NMS 和 one-to-many label assignment(一对多标签分配)问题。在训练过程中,DETR 预设了一组数量远小于之前密集方法的 object queries(一般为 100 个左右),这些 object queries 经过编码器和解码器之后生成一组 box predictions,然后与物体进行二分匹配,一个物体只有一个正样本,避免了冗余候选框和一个物体有多个正样本的问题。 4.简化设计:避免了复杂和领域特定的设计,如多尺度特征图和需要专门理解特定目标检测问题的基于区域的特征提取。 DETR 的这些创新点带来了一些优势,如在概念上直观且通用适用,需要最少的领域知识等,但它也存在一些局限性,例如训练过程收敛较慢、对于小物体的检测性能有限等。后续的一些研究工作针对这些问题提出了改进方法。 |
结构 | ![]() |
对于给定的图片,我们要做的就是在其上预测出一些框,不仅要知道这些框的位置坐标,还要知道被框住的物体类别,在以往的R-CNN系列里,建议框的数量约为2000个,最后仍需经过后处理NMS操作,来筛选最恰当的预测框,在DETR中,将每张图片上的建议框看为一个集合,使用集合预测的方式进行目标检测。成功实现了端到端预测,去除了许多先验知识,如:非极大值抑制、生成anchor。
DETR文中新提出的目标函数,通过二分图匹配方法强制模型去输出一组独一无二的预测,不会输出冗余的框,每个物体只输出一个框。使用匈牙利算法,输入cost matrix,输出和GT最匹配的框。
将learned object queries 和 global image context进行联系,通过不停去做注意力操作,从而让模型直接输出最后一组预测框,而且时并行输出。2017提出的Decoder应用于NLP,采用自回归方式一点一点地预测出,而在视觉任务上,一次性地全部输出,在预测图片时没有先后顺序,无法使用自回归预测,而且并行出框比一个一个出框实时性好得多。
代码如下:
DETR算法总结
DETR检测性能强大,模型结构简单,并采用集合预测的方式,不依赖于先验设计,实现了端到端的训练。DETR逐渐成为了Transformer目标检测算法的基本框架之一。但其收敛速度慢、在小目标检测上效果较差的问题也十分明显。下表总结了类DETR系列目标检测算法的机制、优点、局限性和应用场景。针对DETR的改进主要围绕目标查询机制和模型结构简化两方面展开,例如,加快收敛速度的方法有:优化目标查询初始化、查询与特征的优化匹配、增强目标查询定位能力以及通过Decoder增强来简化Encoder部分的结构等方法;DETR解码器动态的生成注意力分布去关注不同预测对象的关键特征,DETR解码器倾向于关注对象的末端位置。
参考:【Transformer】基于Transformer的目标检测算法综述
参考:
参考:
参考: