首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DETR解析第三部分:结构和细节

作者:Aritra Roy Gosthipaty and Ritwik Raha

编译:ronghuaiyang

导读

本文中,我们会学习DETR的模型结构。。

DETR Breakdown Part 3: Architecture and Details

在系列1种,我们理解了DETR诞生的原因和方式,关键的特点,以及他和之前的模型的区别。在系列2种,我们研究了DETR中的几种方法,特别是集合预测损失。

在本文中,我们将会研究模型,理解每一个部分是如何组合起来做到端到端的目标检测的。

DETR结构

按照惯例,我们从这个交互图中所示的整个DETR体系结构的整体概述开始。我们的目标是完成本文后,可以将解释与图中的每个部分联系起来。

如上图所示,整个DETR结构包含3个主要组成部分:

1、CNN主干:提取总体的特征表示

2、Transformer:编码器和解码器

3、前向网络:用来做最后的检测预测

CNN主干

如下图所示,CNN主干在DETR (Detection Transformer)中是需要的,因为它作为一个特征提取器,负责将输入图像转换成紧凑但信息丰富的表示,随后的Transformer架构可以用于目标检测和定位任务。此外,CNN还天生擅长捕捉图像中的空间关系,这对目标检测任务非常有益。

从输入图像开始,输出图像有3个通道,作者使用了标准的卷积来得到低分辨率的激活图,CNN主干的输入和输出张量的维度如下图:

为了降低CNN提取到的特征激活图的分辨率,激活图

,具有下面的维度:

通道数为2048

高是原始高度的1/32

宽是原始宽度的1/32

本质上,特征图

保留了输入图像的显著性信息,同时降低了空间分辨率,以便于进一步的处理和分析。

这使得DETR中的transformer结构可以聚焦于学习目标检测和定位。

Transformer预处理

现在我们已经提取了图像特征,特征映射

已经准备好输入到transformer编码器中。

然而,transformer编码器被设计为处理tokens序列,这意味着表示特征映射的张量必须经过进一步的处理才能传递给编码器。

当观察特征图的形状时,很明显我们需要额外的步骤来使它与transformer编码器一起工作。

为此,我们首先对高级特征映射应用1×1卷积,如下图所示。这有助于我们减少通道的大小,从一个大的数字C,到一个小的数字d。

这一步很重要,因为它使流程更高效,并为后续步骤节省资源。因此,我们创建了一个名为

的新特征图。

但是,

的特征图仍然无法直接送到transformer的编码器中,因为他是2D的空间结构,因此,需要进行额外的reshape操作来解决这个问题。

在这个步骤中,空间维度变为1维,将2D的特征图转换为了tokens序列,以便可以输入到transformer的编码器中。

Transformer编码器

编码器:现在,特征图被reshape成了序列,可以被送到编码器中,编码器结构如下图高亮部分,编码器中的每一层都包含了2个主要部分:

1、多头注意力模块

2、前向神经网络

transformer结构通常不会注意输入元素的顺序。这意味着它不会自动理解输入tokens的位置或顺序。为了解决这个问题并确保位置信息被正确包含,我们在每个注意层的输入中添加了称为“固定空间位置编码”的特殊位置相关信息。这有助于transformer理解输入中元素的顺序和位置。

Transformer解码器

模型的解码器基于transformer的通用结构,对于N个小信息片,每个的维度是d,使用多头注意力方法,和之前的transformer不一样,模型并不是一次每次给出一个输出,而是一次性并行给出所有的N个输出。

由于解码器也是排列不变的,这意味着它本身不考虑输入tokens的顺序,因此输入嵌入必须不同才能产生不同的结果。这些输入嵌入学习了位置编码,称为目标查询。

什么是目标查询:在DETR中,目标查询在识别和定位图像中的目标方面起着关键作用。它们就像模型要求的“问题”一样,在图像中找到不同的物体。使用目标查询,该模型可以同时找出目标的位置、它们的样子以及它们的数量,从而使检测过程更加高效和准确。

与编码器类似,这些目标查询被添加到每个注意层的输入中。然后,解码器将N个目标查询转换为输出嵌入,然后通过前馈网络将其解码为框坐标和类标签(在下一小节中解释)。这一过程产生了最终预测。

预测头:前向网络

最终的预测头使用了3层感知机,一个使用ReLU激活的典型的神经网络,其隐藏层的维度是d。

这个FFN之后跟一个线性投影层。前馈神经网络(FFN)预测边界框相对于输入图像的归一化中心坐标、高度和宽度。同时,线性层使用softmax函数预测类标签,确定每个目标最可能的类别。

由于模型预测的是固定数量N的框,N要比一张图像中可能出现的目标数量要大,需要有一个额外的类别标签

来表示该预测位置没有目标。

这个类别和背景类类似,表示该区域没有任何目标。

DETR的重点

可端到端训练

DETR最重要的优点之一是它的端到端可训练性。

与许多传统的目标检测模型不同,DETR不依赖于多个阶段的训练和频繁的人工调整。

DETR通过允许同时训练所有组件来简化流程。

这简化了整个工作流程,并有助于确保跨不同数据集和场景的更一致的性能。

并行解码提升效率

DETR采用并行解码,使模型能够在每个解码器层同时处理多个目标。

提高了架构的整体效率。

并且还允许更好地利用计算资源。

通过并行解码目标,DETR可以比顺序解码方法更有效地处理具有众多目标的复杂场景。

消除手工特征

传统的目标检测器通常依赖于手工特征和区域建议。

即费时且难度大。

DETR采用了更全面的方法,消除了这些人工干预的需要。

使用Transformer具有非常大的注意力范围

与传统的卷积神经网络(cnn)相比,在DETR中使用Transformer可以实现更高效、更灵活的注意力机制。

Transformer可以有效地模拟远程依赖关系,并捕获图像中目标之间的复杂关系。

这种专注于输入数据中最相关部分的能力可以提高性能和更准确的目标检测结果。

匈牙利匹配和集合预测损失

DETR结合了匈牙利匹配,将问题建模为二分图。

这种方法使模型能够考虑所有可能的目标排列,并有效地将预测的目标与GT标签相匹配。

利用这个二分匹配损失函数,DETR可以更好地处理多个目标和不同图像中不同数量目标的情况。

总结

在本文中,我们揭开了这个改变了目标检测领域的DETR框架的各种组件。

我们从对DETR架构的广泛概述开始,建立对系统的基本理解。

然后我们观察了卷积神经网络 (CNN)主干,它将原始图像处理成图像特征。

我们继续探索预处理层,这是确保张量形状和大小与Transformer Encoder要求兼容的关键元素。

然后我们深入研究了编码器本身的内部工作,突出了DETR对空间位置编码的独特使用

接下来,我们看了解码器,一个理解学习空间嵌入或目标查询的重要组件。

然后,我们揭示了预测头,或者叫**前馈神经(FFN)**层,输出预测。

最后,我们给出了DETR的重要性,认识到它提出的新想法以及它如何改变了我们进行目标检测的方式。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OVk-fnDnXrQsjF7PPSR3msug0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com