DETR——使用Transformer进行端到端目标检测的开端之作

DETR是一种使用Transformer进行端到端目标检测的方法,它简化了检测流程,无需手工设计的组件如NMS和anchor。DETR的核心包括集合预测损失和Transformer编码器-解码器架构,直接输出预测框坐标和类别集合。模型通过二分匹配损失处理预测与GT的唯一匹配,解决了近似重复的问题。DETR在COCO数据集上表现与优化后的FasterR-CNN相当,尤其在大型物体检测上表现出色。
摘要由CSDN通过智能技术生成

深度学习知识点总结

专栏链接:
https://blog.csdn.net/qq_39707285/article/details/124005405

此专栏主要总结深度学习中的知识点,从各大数据集比赛开始,介绍历年冠军算法;同时总结深度学习中重要的知识点,包括损失函数、优化器、各种经典算法、各种算法的优化策略Bag of Freebies (BoF)等。


从RNN到Attention到Transformer系列

专栏链接:
https://blog.csdn.net/qq_39707285/category_11814303.html

此专栏主要介绍RNN、LSTM、Attention、Transformer及其代码实现。


YOLO系列目标检测算法

专栏链接:
https://blog.csdn.net/qq_39707285/category_12009356.html

此专栏详细介绍YOLO系列算法,包括官方的YOLOv1、YOLOv2、YOLOv3、YOLOv4、Scaled-YOLOv4、YOLOv7,和YOLOv5,以及美团的YOLOv6,还有PaddlePaddle的PP-YOLO、PP-YOLOv2等,还有YOLOR、YOLOX、YOLOS等。


Visual Transformer

专栏链接:
https://blog.csdn.net/qq_39707285/category_12184436.html

此专栏详细介绍各种Visual Transformer,包括应用到分类、检测和分割的多种算法。



DETR
把Transformer应用到端到端的目标检测中的开端之作。paper:《End-to-End Object Detection with Transformers》

1. 简介

本文提出了一个新的目标检测方法—把目标检测作为直接集合预测问题(即模型直接输出预测框坐标和类别的集合)。这个方法简化了检测流程,去除掉许多手工设计的组件像NMS和anchor等,因为这些组件明显地编码了一些解决任务的先验知识,对于不同的任务需要进行重新的设计。

本文提出的算法名为DEtection TRansformer(DETR),主要有两部分,一种set-based的全局损失(通过二分匹配强制进行唯一预测)和一种Transformer encoder-decoder架构。给定一组固定的小的可学习目标查询(queries),DETR分析目标和全局图像上下文的关系,直接并行输出最终的预测集。与许多其他现代检测算法不同,该算法简单,不需要其他专门的库,详见文末实现代码。

2. 相关知识

构建本算法需要一些领域的知识,包括:集合预测的二分匹配loss、基于Transformer的encoder-decoder结构、并行解码和目标检测方法等。

2.1 Set Prediction(集合预测)

目前许多算法面临的第一个困难是避免near-duplicates(近似的重复),大多数算法采用NMS来处理这个问题,但是直接集预测是无后处理的。集预测需要对所有预测元素之间的交互进行建模以避免冗余的全局推理方案。对于固定大小集预测,密集的全连接网络是足够的,但成本很高。一般的方法是使用自回归序列模型,如递归神经网络。在所有情况下,对于不同的预测排列损失函数都应该保持不变。通常的解决方案是根据匈牙利算法设计损失,找到GT和预测之间的二分匹配。这加强了排列不变性,并确保每个目标元素具有唯一匹配。本文采用二分匹配损失法。然而,与大多数先前的工作相比,本文不再使用自回归模型,而是使用具有并行解码的Transformer。

2.2 Transformer和并行解码

Transformer的介绍可以参考这个文章。Attention机制是从整个输入序列中聚合信息的神经网络层。Transformer引入了self-attention层,类似于非局部神经网络(Non-Local NN),它扫描序列的每个元素,并通过聚合整个序列的信息来更新它。基于注意力的模型的主要优点之一是其全局计算和完美的记忆,这使得它们比RNN更适合长序列。

Transformer首先用于自回归模型,随后是早期的sequence-to-sequence模型,逐个生成输出token。然而,它的推理成本很高(与输出长度成正比,且难以批量处理),本文结合Transformer和并行解码,以在计算成本和执行集合预测所需的全局计算的能力之间进行适当的权衡。

2.3 目标检测

在本文的模型中,去除手工设计的过程,并通过使用相对于输入图像而不是锚点的绝对框预测来直接预测检测集,从而简化检测过程。

  1. set-based loss
    在早期的深度学习模型中,不同预测之间的关系仅用卷积或完全连接的层建模,手工设计的NMS后处理可以提高其性能。最近的检测器使用GT和预测之间的非唯一分配规则,并使用NMS。
    可学习的NMS方法和关系网络明确地对不同预测之间的关系进行了attention建模。它们使用直接集合损失,它们不需要任何后处理步骤。然而,这些方法使用了其他手工设计的上下文特征,如提案框坐标,以有效地建模检测之间的关系,同时本文寻找减少模型中编码的先验知识的解决方案。

  2. 循环检测器
    最接近本文的方法是用于目标检测和实例分割的端到端集合预测。与本文类似,他们使用基于CNN激活的编码器-解码器架构的二分匹配损失来直接生成一组边界框。然而,这些方法只在小数据集上进行了评估,而没有根据现代基准进行评估。特别是,它们基于自回归模型(更准确地说是RNN),因此它们没有利用Transformer进行并行解码。

3. DETR模型

两种组件对于检测中的直接集合预测至关重要:(1)一种集合预测损失,强制预测和GT之间的唯一匹配;(2)预测(在一次传递中)一组目标并对其关系建模的体系结构。整体结构图如下所示:
在这里插入图片描述

3.1 目标检测集预测loss

DETR在通过解码器的一次传递中推理出N个预测的固定大小集合,其中N显著大于图像中目标的数量。训练的主要困难之一是根据GT对预测目标(类别、位置、大小)进行评分。本文的损失是由预测和GT物体之间产生最佳的二分匹配,然后优化特定目标(边界框)的损失。

用y表示GT目标集合, y ^ = { y ^ i } i = 1 N \hat y = \{\hat y_i\}^N_{i=1} y^={ y^i}i=1N表示预测的集合,N大于图片中目标的数量,用(no object,⊘)y填充使其总数等于N。为了找到这两个集合之间的二分匹配,搜索N个元素的组合 σ ∈ ð N \sigma \in \eth_N σðN,使其cost最低:
在这里插入图片描述
其中 ζ m a t c h ( y i , y ^ σ ( i ) ) \zeta_{match}(y_i,\hat y_{\sigma(i)}) ζmatch(yi,y^σ(i))是GT y i y_i yi和位置为 σ ( i ) \sigma(i)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值