DETR论文阅读

1. 动机

传统的目标检测任务需要大量的人工先验知识,例如预定义的先验anchor,NMS后处理策略等。这些人工先验知识引入了很多人为因素,且较难处理。如果能够端到端到直接生成目标检测结果,将会使问题变得很优雅。

2. 主要贡献

提出了一个新的目标函数,用二分图匹配的方式强制模型输出一个独一无二的目标框,避免了传统方法中的非极大值抑制。

首次把transformer引入到目标检测领域。

简化了检测流程,有效地消除了对许多人工设计组件的需求,如NMS或anchor生成。实现了端到端的目标检测。

3. 模型结构

DETR将目标检测看作一种set prediction问题,并提出了一个十分简洁的目标检测pipeline,即CNN提取基础特征,送入Transformer做关系建模,得到的输出通过二分图匹配算法与图片上的ground truth做匹配。

先使用CNN对图像进行特征提取,把得到的二维特征转换到一维,然后送入transformer的encoder-decoder结构之中。然后利用decoder的结果预测检测框的输出。
将目标检测看作set prediction问题 DETR算法流程

3.1. backbone

DETR基础版本的backbone使用torchvision上预训练过的ResNet-50,训练时冻结BN层参数。设输入img维度为(3, H, W),经过backbone后变为。此外在后续实验阶段论文还使用了ResNet-101以及改进过的DC5版本。

3.2. transfomer

CNN提取的特征拉直(flatten)后加入位置编码(positional encoding)得到序列特征,作为Transformer encoder的输入。Transformer中的attention机制具有全局感受野,能够实现全局上下文的关系建模,其中encoder和decoder均由多个encoder、decoder层堆叠而成。每个encoder层中包含self-attention机制,每个decoder中包含self-attention和cross-attention。

3.3. object queries

输出100个目标框和它的分类。设计了一套全新的损失函数,能够在训练的时候把与ground truth匹配的框算作为正样本,不匹配的框作为负样本。在推理的时候使用一个阈值来选择结果,预测得分高于阈值的作为输出,低于阈值的忽略。

transformer解码器中的序列是object queries。每个query对应图像中的一个物体实例(包含背景实例 ϕ),它通过cross-attention从编码器输出的序列中对特定物体实例的特征做聚合,又通过self-attention建模该物体实例域其他物体实例之间的关系。最终,FFN基于特征聚合后的object queries做分类的检测框的回归。

值得一提的是,object queries是可学习的embedding,与当前输入图像的内容无关(不由当前图像内容计算得到)。论文中对不同object query在COCO数据集上输出检测框的位置做了统计(如上图所示),可以看不同object query是具有一定位置倾向性的 。对object queries的理解可以有多个角度。首先,它随机初始化,并随着网络的训练而更新,因此隐式建模了整个训练集上的统计信息。其次,在目标检测中每个object query可以看作是一种可学习的动态anchor,可以发现,不同于Faster RCNN, RetinaNet等方法在特征的每个像素上构建稠密的anchor不同,detr只用少量稀疏的anchor(object queries)做预测,这也启发了后续的一系列工作。

3.4. 损失函数

DETR有两种损失**:(1)二分图匹配阶段的损失,用于确定最优匹配。(2)在最优匹配下的模型损失。**

3.4.1. 二分图匹配

我们知道DETR每次输出包含N=100个预测目标的集合,由于GT集合元素个数小于N,我们用将GT集合元素个数填充至N个。那么预测集合与GT集合总的二分图匹配个数就有个,我们所有匹配的集合设为。我们要做的就是找到这个最优的匹配,公式如下图所示。

即为最优匹配,分别代表GT值和预测值。

以往的一些研究包括本论文都是使用的匈牙利算法 Hungarian algorithm 来计算最优匹配的。

3.4.2. 匹配后损失计算

有了最优的匹配后,便要计算模型的损失,公式如下。

其中,分别代表GT类别和bbox参数{x,y,w,h};在最优匹配下,预测的类别分数和bbox参数分别为

为超参数用于调节权重。

参考文献

End-to-end object detection with transformers

DETR目标检测新范式带来的思考 - 知乎

DETR(DEtection TRansformer)要点总结-CSDN博客

DETR 论文精读【论文精读】_哔哩哔哩_bilibili

相关推荐
leoZ2311 小时前
Vue3 还原一个企业级后台-14-项目总结
开发语言·人工智能·后端·opencv·计算机视觉·数据挖掘·rust
JAI科研1 小时前
Deepseek Agent Harness教程(二) | DeepSeek Harness 设计思路
人工智能·深度学习·算法·机器学习·自然语言处理·transformer·vllm
还不秃顶的计科生1 小时前
具身智能论文学习10:π0: A Vision-Language-Action Flow Model for General Robot Control
人工智能·深度学习·算法·机器学习·语言模型·vla·vlm
W_326002 小时前
Python-OpenCV:画布、图形、文字、调色滑动条
图像处理·python·opencv·机器学习·计算机视觉
sali-tec3 小时前
C# 基于OpenCv的视觉工作流-章103-空车位识别
人工智能·opencv·计算机视觉
段一凡-华北理工大学14 小时前
AI推动工业智能化转型~系列文章24:钢铁工业 AI 全景图:从原料场到轧机的场景地图
人工智能·深度学习·模型生命周期·钢铁工业·ai全景
动物园猫15 小时前
猪行为目标检测数据集:9类别、3,700张图像 | 目标检测
人工智能·目标检测·计算机视觉
chen_zn9516 小时前
《VLA 系列》Human-to-Robot Transfer | 人类视频共训练 | 跨本体涌现迁移 | 论文解析
人工智能·深度学习·transformer·具身智能·vla
CCC:CarCrazeCurator16 小时前
DeepSeek‑Harness Windows 本地快速上手
深度学习·数据挖掘
还不秃顶的计科生17 小时前
具身智能论文学习8:Octo: An Open-Source Generalist Robot Policy
人工智能·深度学习·学习·机器学习·语言模型·vla·vlm