DETR End-to-End Object Detection with Transformers
End-to-End Object Detection with Transformers
论文链接:http://arxiv.org/abs/2005.12872
代码地址:https://github.com/facebookresearch/detr
一、摘要
提出了一种将目标检测视为直接集合预测问题的新方法。该方法简化了检测流程,有效地消除了许多手工设计的组件,如非极大值抑制或先验框的生成。这个名为DEtection TRansformer或DETR的新框架的主要组成部分是一种基于集合的全局损失,通过二部匹配强制进行一对一预测,并且采用了transformer编码器-解码器架构。给定一组固定的学习目标查询,DETR通过推理对象之间的关系和全局图像上下文直接并行输出最终的预测集。这个新模型在概念上简单,不需要专门的库,不像许多其他现代检测器。DETR在具有挑战性的COCO目标检测数据集上展示了与经过充分优化的Faster R-CNN基线相当的准确性和运行时性能。此外,DETR可以轻松推广为以统一方式生成全景分割。
DETR的主要特点是二部匹配损失和transformer与(非自回归)并行解码的结合
。
文章目录
二、创新点
-
将目标检测视为直接的集合预测问题,简化了训练流程。采用基于transformer的编码器-解码器架构[47],这是一种用于序列预测的流行架构。
-
一次性预测所有对象,并通过一种集合损失函数进行端到端训练,该函数在预测对象和地面真实对象之间执行二部匹配。
-
实验表明,该模型达到了可比较的性能。更确切地说,对比Faster RCNN,DETR在大物体上表现出显著更好的性能。
三、原理
在检测中,直接进行集合预测需要两个关键要素:(1) 一种集合预测损失,强制预测框与实际框之间的一对一匹配;(2) 一种能够在单次传递中预测一组对象并建模它们关系的架构。
1、Object detection set prediction loss
DETR通过解码器的单次传递推断出一组固定大小的
N
N
N个预测,其中
N
N
N被设置为明显大于图像中典型对象数量的值。训练的主要困难之一是将预测对象(类别、位置、大小)与地面真实值进行评分。损失函数在预测对象和地面真实对象之间产生最优的二部匹配,然后优化特定对象(边界框)
的损失。
设 y y y为地面真实对象集合, y ^ = y i ^ i = 1 N \hat{y} = {\hat{y_{i}}}^{N}_{i=1} y^=yi^i=1N为 N N N个预测的集合。假设 N N N大于图像中对象的数量,将 y y y视为一个大小为 N N N的集合,用 ϕ \phi ϕ(无对象)进行填充。为了在这两个集合之间找到一个二部匹配,寻找具有最低成本的N个元素的排列 σ ∈ S N σ \in S_{N} σ∈SN:
σ ^ = a r g m i n σ ∈ S N ∑ i N L m a t c h ( y i , y σ ( i ) ^ ) , ( 1 ) \hat{σ} = argmin_{σ \in S_{N}} \sum^{N}_{i} L_{match}(y_{i}, \hat{y_{σ(i)}}), \ (1) σ^=argminσ∈SNi∑NLmatch(yi,yσ(i)^), (1)
其中 L m a t c h ( y i , y ^ σ ( i ) ) L_{match}(y_{i}, \hat{y}_{σ(i)}) Lmatch(yi,y^σ(i))是地面真实标签 y i y_{i} yi和索引为 σ ( i ) σ(i) σ(i)的预测之间的一对一匹配损失。这种最佳分配是通过匈牙利算法高效计算得出的。
匹配损失考虑了类别预测和预测框与地面真实框的相似性。地面真实集合的每个元素 i i i可以看作 y i = ( c i , b i ) y_{i} = (c_{i},b_{i}) yi=(ci,bi),其中 c i c_{i} ci是目标类别标签(可能为 ∅ ∅ ∅), b i ∈ [ 0 , 1 ] 4 b_{i} \in [0,1]^{4} bi∈[0,1]4是一个向量,定义了地面真实框的中心坐标以及相对于图像尺寸的高度和宽度。对于索引为 σ ( i ) σ(i) σ(i)的预测,定义类别 c i c_{i} ci的概率为 p ^ σ ( i ) ( c i ) \hat{p}_{σ(i)}(c_{i}) p^σ(i)(ci),预测框为 b ^ σ ( i ) \hat{b}_{σ(i)} b^σ(i)。根据这些符号,定义 L m a t c h ( y i , y ^ σ ( i ) ) L_{match}(y_{i}, \hat{y}_{σ(i)}) Lmatch(yi,y^σ(i))为 − 1 c i ≠ ϕ p ^ σ ( i ) ( c i ) + 1 c i ≠ ϕ L b o x ( b i , b ^ σ ( i ) ) −1_{c_{i} \not = \phi}\hat{p}_{σ(i)}(c_{i})+1_{{c_{i} \not = \phi}}L_{box}(b_{i},\hat{b}_{σ(i)}) −1ci=ϕp^σ(i)(ci)+1ci=ϕLbox(bi,b^σ(i))。
这种匹配过程与现代检测器中用于将提议([37])或锚点([22])与地面真实对象匹配的启发式分配规则起着相同的作用。主要区别在于,需要为直接集合预测找到一对一匹配,而不允许重复。
第二步是计算损失函数,即在前一步中匹配的所有成对样本的匈牙利损失。类似于常见目标检测器的损失定义,即类别预测的负对数似然和稍后定义的框损失的线性组合:
L H u n g a r i a n ( y , y ^ ) = ∑ i = 1 N [ − l o g p ^ σ ^ ( i ) ( c i ) + 1 c 1 ≠ ϕ L b o x ( b i , b ^ σ ^ ( i ) ) ] , ( 2 ) L_{Hungarian}(y, \hat{y}) = \sum^{N}_{i=1}[−log \hat{p}_{\hat{σ}(i)}(c_{i}) + 1_{c_{1} \not=\phi }L_{box}(b_{i}, \hat{b}_{\hat{σ}(i)})], \ (2) LHungarian(y,y^)=i=1∑N[−logp^σ^(i)(ci)+1c1=ϕLbox(bi,b^σ^(i))], (2)
其中 σ ^ \hat{σ} σ^是在第一步计算得到的最优分配(1)。在实践中,当 c i = ϕ c_{i} = \phi ci=ϕ时,通过因子 10 10 10降低对数概率项的权重,以考虑类别不平衡。这类似于Faster R-CNN训练过程通过子采样平衡正负提议[37]。请注意,对象与 ϕ \phi ϕ之间的匹配成本不依赖于预测,这意味着在这种情况下损失是一个常数。在匹配损失中,使用概率 p ^ σ ^ ( i ) ( c i ) \hat{p}_{\hat{σ}(i)}(c_{i}) p^σ^(i)(ci)而不是对数概率。这使得类别预测项与 L b o x ( ⋅ , ⋅ ) L_{box}(\cdot, \cdot) Lbox(⋅,⋅)(下文描述)可比,观察到了更好的实证表现。
Bounding box loss. 匹配损失的第二部分和匈牙利损失是 L b o x ( ⋅ ) L_{box}(\cdot) Lbox(⋅),用于评分边界框。与许多检测器不同,这些检测器将边界框预测为相对于一些初始猜测的 ∆ ∆ ∆。直接进行边界框预测,尽管这种方法简化了实现,但在损失的相对缩放方面存在问题。最常用的 ℓ 1 ℓ_{1} ℓ1损失会使小框和大框具有不同的尺度,即使它们的相对误差相似。为了缓解这个问题,使用 ℓ 1 ℓ_{1} ℓ1损失和广义IoU损失 [38] L i o u ( ⋅ , ⋅ ) L_{iou}(\cdot,\cdot) Liou(⋅,⋅)的线性组合,这是尺度不变的。总体上,边界框损失是 L b o x ( b i , b ^ σ ( i ) ) L_{box}(b_{i},\hat{b}_{σ(i)}) Lbox(bi,b^σ(i)),定义为 λ i o u L i o u ( b i , b ^ σ ( i ) ) + λ L 1 ∣ ∣ b i − b ^ σ ( i ) ∣ ∣ 1 \lambda_{iou}L_{iou}(b_{i},\hat{b}_{σ(i)}) + \lambda_{L1}||b_{i} − \hat{b}_{σ(i)}||_{1} λiouLiou(bi,b^σ(i))+λL1∣∣bi−b^σ(i)∣∣1,其中 λ i o u \lambda_{iou} λiou, λ L 1 ∈ R \lambda_{L1} \in R λL1∈R是超参数。这两个损失由批次内的对象数量进行归一化。
2、DETR architecture
整体DETR架构非常简单,如图2所示。它包含三个主要组件,将在下面描述:一个CNN主干用于提取紧凑的特征表征,一个编码器-解码器transformer,以及一个简单的前馈网络(FFN)用于最终的检测预测。与许多现代检测器不同,DETR可以在任何提供常见CNN主干和transformer架构实现的深度学习框架中实现,只需几百行代码。在PyTorch [32]中,DETR的推断代码可以用不到50行实现。
DETR使用传统的CNN骨干网络来学习输入图像的2D表征。该模型对其进行扁平化处理,并在传入 transformer 编码器之前补充位置编码。然后,transformer 解码器以一小固定数量的学习位置嵌入(称之为对象查询)作为输入,并额外关注编码器的输出。将解码器的每个输出嵌入传递给一个共享的前馈网络(FFN),该网络预测检测(类别和边界框)或“无对象”类别。
Backbone. 从初始图像 KaTeX parse error: Undefined control sequence: \tuimes at position 18: …{img} \in R^{3 \̲t̲u̲i̲m̲e̲s̲ ̲H_{0} \times W_… (具有3个色彩通道),传统的CNN主干网络生成一个较低分辨率的激活图 f ∈ R C × H × W f \in R^{C \times H \times W} f∈RC×H×W。通常使用的典型值为 C = 2048 C = 2048 C=2048 和 H , W = H 0 32 , W 0 32 H,W = \frac{H_{0}}{32} , \frac{W_{0}}{32} H,W=32H0,32W0。
Transformer encoder. 首先,一个
1
×
1
1 \times 1
1×1卷积将高级激活图
f
f
f的通道维度从
C
C
C减小到一个较小的维度
d
d
d,创建一个新的特征图
z
0
∈
R
d
×
H
×
W
z_{0} \in R^{d \times H \times W}
z0∈Rd×H×W。编码器期望一个序列作为输入,因此将
z
0
z_{0}
z0的空间维度折叠成一个维度,得到一个$d \times HW$特征图
。每个编码器层具有标准的架构,包括一个多头自注意力模块和一个前馈网络(FFN)。由于transformer模型是置换不变的,补充了固定的位置编码 [31,3],这些编码被添加到每个注意力层的输入中。详细的架构定义在补充材料中,该架构遵循了[47]中描述的架构。
Transformer decoder. 解码器遵循transformer的标准架构,使用多头自注意力和编码器-解码器注意力机制,将大小为
d
d
d的
N
N
N个嵌入进行转换。与原始transformer的不同之处在于,所提模型在每个解码器层同时解码
N
N
N个对象,而Vaswani等人[47]使用一个自回归模型逐个元素地预测输出序列。对于对这些概念不熟悉的读者,将其指引至补充材料。由于解码器也是排列不变的,
N
N
N个输入嵌入必须不同以产生不同的结果。这些输入嵌入是学习到的位置编码,称之为对象查询,类似于编码器,将它们添加到每个注意力层的输入中。解码器将
N
N
N个对象查询转换为输出嵌入。然后,通过一个前馈网络(在下一小节中描述),它们被独立地解码为框坐标和类别标签,得到$N$个最终预测
。通过对这些嵌入进行自注意力和编码器-解码器注意力,模型在全局上推理所有对象之间的成对关系,同时能够使用整个图像作为上下文。
Prediction feed-forward networks (FFNs). 最终的预测是通过具有ReLU激活函数和隐藏维度
d
d
d的一个
3
3
3层感知器计算得出的,以及一个线性投影层。第一个前馈神经网络
预测了相对于输入图像的标准化中心坐标、高度和宽度的框,而线性层
则使用softmax函数预测类别标签。由于预测了一个固定大小的
N
N
N个边界框,其中N通常远大于图像中感兴趣对象的实际数量,因此使用了额外的特殊类标签
∅
∅
∅来表示在一个槽内未检测到对象。这个类在标准目标检测方法中扮演着类似于“背景”类的角色。
Auxiliary decoding losses. 在训练过程中发现,在解码器中使用辅助损失非常有帮助,特别是帮助模型输出每个类别的正确对象数量。在每个解码层之后添加预测FFN(前向神经网络)和匈牙利损失
。所有预测FFN共享参数。还使用一个额外的共享层归一化,以规范化来自不同解码层的输入到预测FFN。
四、实验
Dataset. 在 COCO 2017 检测和全景分割数据集上进行实验[24,18],其中包含 118k 张训练图像和 5k 张验证图像。每个图像都标注有边界框和全景分割。每个图像平均有 7 个实例,在单个图像中最多可达到 63 个实例,训练集中的实例大小从小到大不等。如果未特别说明,将报告AP作为 bbox AP,即在多个阈值上的综合度量。与 Faster R-CNN 进行比较时,报告最后一个训练轮次的验证AP,对于消融实验,报告最后10 个轮次验证结果的中位数。
Technical details. 使用DETR [-DC5]符号定义了文中所提模型的一个具体实例,其中
d
d
d是transformer的维度。所有模型的其他超参数相同,并在补充材料中详细描述。使用AdamW [26]训练DETR,transformer的初始学习率为
1
0
−
4
10^{−4}
10−4,骨干网络的初始学习率为
1
0
−
5
10^{−5}
10−5,权重衰减为
1
0
−
4
10^{−4}
10−4。所有transformer权重使用Xavier初始化 [11],骨干网络是使用ImageNet预训练的ResNet模型[15],来自torchvision,并冻结批归一化层。使用两种不同的骨干网络报告结果:一个是ResNet-50,另一个是ResNet-101。相应的模型分别称为DETR和DETR-R101。根据 [21],还通过在骨干网络的最后阶段添加扩张和从该阶段的第一个卷积移除一个步幅来增加特征分辨率
。相应的模型分别称为DETR-DC5和DETR-DC5-R101(扩张的C5阶段)。这种修改使分辨率提高了两倍,从而改善了小物体的性能,但会导致编码器的自注意力成本增加16倍,从而导致整体计算成本增加2倍。这些模型和Faster R-CNN的FLOPs的全面比较见表1。
使用尺度增强,调整输入图像的大小,使最短边至少为480像素,最长边至多为1333像素 [50]
。为了通过编码器的自注意力学习全局关系,还在训练过程中应用随机裁剪增强,将性能提高了约1个AP。具体来说,训练图像以0.5的概率被裁剪为一个随机矩形补丁,然后再次调整大小为800-1333。transformer使用默认的0.1的dropout进行训练。在推断时,一些槽预测为空类。为了优化AP,使用次高分数类别覆盖这些槽的预测,使用相应的置信度。这比过滤空槽提高了2个AP
。
消融实验中训练了300轮,在200轮后学习率下降10倍,其中一轮是对所有训练图像的一次遍历。在128个V100 GPU上训练基线模型300轮大约需要24小时,每个GPU一个图像(因此总批量大小为128)。用于与Faster R-CNN比较的更长计划训练900轮,从第600轮开始,每50轮学习率下降2次。这个策略比短的300轮计划增加了3个AP。
4.1 Comparison with Faster R-CNN
Transformer通常使用Adam或Adagrad优化器进行训练,训练时间较长,并且使用了dropout,这对DETR也是如此。然而,Faster R-CNN使用SGD进行训练,数据增强较少,作者不清楚是否成功应用了Adam或dropout。尽管存在这些差异,作者尝试加强Faster R-CNN基线。为了与DETR对齐,在框损失中添加了广义IoU [38],采用了相同的随机裁剪增强和长时间训练,这些方法已被证明可以改善结果[13]。结果见表1。在顶部部分,展示了Detectron2 Model Zoo [50]中使用
3
x
3x
3x训练的Faster R-CNN结果。在中间部分,展示了相同模型使用
9
x
9x
9x(109轮次)训练以及上述增强的结果(带有“+”),总体上增加了1-2 AP。表1的最后一部分展示了多个DETR模型的结果。为了在参数数量上进行比较,选择了一个模型,其中包含6个transformer和6个解码器层,宽度为256。与具有FPN的Faster R-CNN一样,该模型有4130万参数,其中2350万在ResNet-50中,1780万在transformer中
。尽管Faster R-CNN和DETR都有可能通过更长时间的训练进一步改进,可以得出结论,DETR可以与具有相同参数数量的Faster R-CNN竞争,在COCO验证子集上达到42 AP。DETR实现这一点的方式是通过改进APL,但请注意该模型在APS方面仍然落后。Faster R-CNN和具有ResNet-101骨干的DETR也显示出可比的结果。
4.2 Ablations
Transformer解码器中的注意力机制是模型不同检测特征表征之间关系的关键组件。消融分析探讨了所提架构和损失的其他组件如何影响最终性能。研究选择了基于ResNet-50的detr模型,具有6个编码器、6个解码器层和宽度256。该模型有41.3M参数
,在短期和长期时间表上分别达到40.6和42.0的AP,帧率为28,与具有相同骨干的Faster R-CNN-FPN类似。
Number of encoder layers. 通过改变编码器层数的数量来评估全局图像级自注意力的重要性(表2)。没有编码器层,整体AP下降了3.9个点,大物体的下降更为显著,为6.0 AP。假设通过使用全局场景推理,编码器对于解开对象之间的关系是重要的。图2可视化了经过训练模型的最后一个编码器层的注意力图,聚焦于图像中的几个点。编码器似乎已经分开了实例,这可能简化了解码器对对象的提取和定位。
Number of decoder layers. 在每个解码层之后应用辅助损失,因此,预测FFNs被设计为通过每个解码器层的输出来预测对象。通过评估在解码的每个阶段将会预测的对象来分析每个解码层的重要性(图4)。每一层之后,AP和AP50都有所提升,使得第一层和最后一层之间的AP提升非常显著+8.2/9.5。由于其基于集合的损失,DETR模型在设计上不需要NMS。为了验证这一点,对每个解码器的输出运行了一个带有默认参数的标准NMS过程 [50]。NMS 对第一个解码器的预测性能有所提升。这可以解释为transformer 的单个解码层无法计算输出元素之间的任何交叉相关性,因此容易对同一对象进行多次预测
。在第二层及其后续层中,自注意机制允许模型抑制重复预测。观察到随着深度的增加,NMS 带来的改进逐渐减少。在最后几层观察到AP略微下降,因为NMS错误地移除了真正的正面预测。类似于可视化编码器的注意力,在图2中可视化解码器的注意力,为每个预测的对象着色不同颜色的注意力图。观察到解码器的注意力相当局部化,主要关注对象的极端部分,如头部或腿部。假设在编码器通过全局注意力分离实例后,解码器只需要关注极端部分以提取类别和对象边界
。
Importance of FFN. transformer内部的FFN可以被视为
1
×
1
1 \times 1
1×1卷积层,使编码器类似于注意力增强卷积网络[3]。实验尝试完全移除它,只保留transformer层中的注意力。通过将网络参数数量从41.3M减少到28.7M,只在transformer中保留10.8M,性能下降了2.3 AP,因此得出结论,FFN对于取得良好结果至关重要
。
Importance of positional encodings. 所提模型中有两种位置编码:空间位置编码和输出位置编码(对象查询)。尝试了各种固定和学习编码的组合,结果可以在表3中找到。输出位置编码是必需的,不能被移除,因此尝试在解码器输入时要么传递它们一次,要么在每个解码器注意力层中添加到查询中。在第一个实验中,完全移除了空间位置编码,并在输入时传递输出位置编码,有趣的是,模型仍然达到了超过32的AP,比基准线损失了 7.8 的AP。然后,在输入时传递了固定的正弦空间位置编码和输出编码,就像原始的transformer [47] 中一样,发现与直接在注意力中传递位置编码相比,这导致了 1.4 的AP下降。传递给注意力的学习空间编码产生了类似的结果。还发现在编码器中不传递任何空间编码只会导致轻微的1.3 AP下降。当将编码传递给注意力时,它们在所有层之间共享,并且输出编码(对象查询)始终是学习的。
考虑到这些消融实验,得出结论,transformer 组件:编码器中的全局自注意力,FFN,多个解码器层以及位置编码,都显著地对最终目标检测性能做出贡献
。
Loss ablations. 为了评估匹配成本和损失的不同组件的重要性,训练了几个模型并将它们打开和关闭。损失有三个组成部分:分类损失, ℓ 1 ℓ_{1} ℓ1 边界框距离损失和 GIoU [38] 损失。分类损失对训练至关重要,无法关闭,因此训练了一个没有边界框距离损失的模型,以及一个没有 GIoU 损失的模型,并与基线进行比较,基线使用了所有三种损失进行训练。结果见表2。
GIoU成本在小物体上表现出更好的结果(+2.9 AP差异),而边界框成本改善了大物体的结果(+5.5 AP差异),高于基准线。
GIoU损失本身占据了大部分模型性能,仅与基准线相比损失了0.7 AP。仅使用 ℓ 1 ℓ_{1} ℓ1而不使用GIoU显示出较差的结果。
仅研究了不同成本(损失)的简单消融(每次使用相同的加权),但其他组合方式可能会获得不同的结果。
4.3 Analysis
图3展示了 COCO 2017 验证集中所有图像中不同槽位预测的框。DETR为每个查询槽位学习了不同的专业化。观察到每个槽位都有几种操作模式,专注于不同的区域和框大小。特别地,所有槽位都有用于预测整个图像的框的模式(在图中以红色点对齐在中间可见)。假设这与COCO中对象的分布有关。
Generalization to unseen numbers of instances. 在COCO数据集中,一些类别的实例分布不均匀,同一类别的实例可能在同一张图像中出现多次。例如,在训练集中没有一张图像中出现超过13只长颈鹿。创建了一幅合成图像,以验证DETR的泛化能力(见图5)。所提模型能够在这张明显不符合分布的图像中找到全部24只长颈鹿。这个实验证实了每个对象查询中没有强烈的类别特化。
4.4 DETR for panoptic segmentation
最近,全景分割[19] 引起了计算机视觉界的广泛关注。类似于将Faster R-CNN [37] 扩展为 Mask R-CNN [14],DETR可以通过在解码器输出之上添加一个掩码头来自然扩展。本节演示了这样一个头部可以用来生成全景分割 [19],通过以统一的方式处理物和物体类别。在COCO数据集的全景注释上进行实验,该数据集除了有 80 个物体类别外,还有 53个物体类别。
训练DETR在 COCO 上预测围绕“物”和“事物”类别的框,使用相同的方法。预测框对于训练是必要的,因为匈牙利匹配是使用框之间的距离计算的。还添加了一个掩码头,它为每个预测框预测一个二进制掩码,参见图4。它以每个对象的transformer 解码器输出作为输入,并计算该嵌入在编码器输出上的多头(具有 M M M 个头)注意力分数,为每个对象生成 M M M 个小分辨率的注意力热图。为了进行最终预测并增加分辨率,使用类似 FPN 的架构。在补充中更详细地描述了这个架构。掩码的最终分辨率为 4 4 4 的步幅,每个掩码都独立地使用 DICE/F-1 损失[28] 和 Focal 损失[23] 进行监督。
掩码头可以同时训练,也可以分两步进行,其中首先仅训练DETR的框,然后冻结所有权重,仅训练掩码头 25 25 25 个轮次。实验上,这两种方法给出了类似的结果,报告使用后一种方法的结果,因为它导致更短的总时间训练。
为预测最终的全景分割,简单地在每个像素上使用掩码分数的argmax,并将相应的类别分配给生成的掩码。这个过程保证了最终的掩码没有重叠,因此,DETR不需要一个常用的启发式[19] 来对齐不同的掩码。
Training details. 按照边界框检测的配方训练DETR、DETR-DC5和DETR-R101模型,以预测COCO数据集中物体和物品类别周围的框。在推断过程中,将同一物体类别的不同掩模预测合并为一个。新的掩模头经过25轮次训练(详见补充资料)。与[19]类似,移除面积小于256像素(物体)或4像素(物品)的小物体(或物品)预测,因为它们可能是虚假分割,仅保留置信度高于75%的检测结果
。
Main results. 定性结果如图4所示。在表4中,将统一全景分割方法与几种将物体和背景区分对待的已建立方法进行了比较。实验报告了**全景质量(PQ)以及对物体(PQth)和背景(PQst)**的详细情况。还报告了掩膜AP(在物体类上计算),在进行任何全景后处理之前(在所提方法的情况下,是在进行像素级argmax之前)。展示了DETR在COCO-val 2017上优于已发表的结果,以及我们强大的PanopticFPN基线(使用与DETR相同的数据增强进行训练,以进行公平比较)。结果详细说明DETR在背景类上特别占优势,假设编码器注意力所允许的全局推理是这一结果的关键因素。对于物体类,尽管在掩膜AP计算中与基线相比存在高达8mAP的严重赤字,DETR获得了具有竞争力的PQth。实验还在COCO数据集的测试集上评估了所提方法,并获得了46 PQ。
五、总结
文中提出了 DETR,这是一种基于 transformer 和二分匹配损失的目标检测系统的新设计,用于直接集合预测。该方法在具有挑战性的COCO 数据集上取得了与经过优化的Faster R-CNN 基线相当的结果。DETR实现简单,并具有灵活的架构,易于扩展到全景分割,并取得了具有竞争力的结果。此外,它在大型目标上的性能明显优于 Faster R-CNN,可能归功于自注意力执行的全局信息处理。
六、附录(仅介绍Loss函数部分)
详细介绍了文中方法中使用的损失函数。所有损失函数都通过批次中的对象数量进行归一化。在分布式训练中需要格外小心:由于每个GPU接收一个子批次,仅通过本地批次中的对象数量进行归一化是不够的,因为一般来说,子批次在GPU之间不是平衡的。相反,重要的是通过所有子批次中的对象总数进行归一化。
Box loss. 类似于[41,36],在损失函数中使用了交并比的软版本,同时还使用了 L 1 L_{1} L1损失函数对KaTeX parse error: Expected group after '_' at position 5: \hat_̲{b}进行优化:
L b o x ( b s i g m a ( i ) , b i ^ ) = λ i o u L i o u ( b s i g m a ( i ) , b i ^ ) + λ L 1 ∣ ∣ b s i g m a ( i ) − b i ^ ∣ ∣ 1 , ( 9 ) L_{box}(b_{sigma(i)},\hat{b_{i}}) = \lambda_{iou}L_{iou}(b_{sigma(i)},\hat{b_{i}}) + \lambda L_{1}||b_{sigma(i)} − \hat{b_{i}}||_{1} , \ (9) Lbox(bsigma(i),bi^)=λiouLiou(bsigma(i),bi^)+λL1∣∣bsigma(i)−bi^∣∣1, (9)
其中,
λ
i
o
u
,
λ
L
1
∈
R
\lambda_{iou},\lambda_{L_{1}} \in R
λiou,λL1∈R 是超参数,
L
i
o
u
(
⋅
)
L_{iou}(\cdot)
Liou(⋅) 是广义IoU [38]:
L
i
o
u
(
b
s
i
g
m
a
(
i
)
,
b
^
i
)
=
1
−
(
∣
b
s
i
g
m
a
(
i
)
∩
b
i
^
∣
∣
b
s
i
g
m
a
(
i
)
∪
b
i
^
∣
−
∣
B
(
b
s
i
g
m
a
(
i
)
,
b
^
i
)
b
s
i
g
m
a
(
i
)
∪
b
i
^
∣
B
(
b
s
i
g
m
a
(
i
)
,
b
^
i
)
∣
)
.
(
10
)
L_{iou} (b_{sigma(i)}, \hat{b}_{i}) = 1 −(\frac{| b_{sigma(i)} \cap \hat{b_{i}}|}{| b_{sigma(i)} \cup \hat{b_{i}}|} − \frac{|B(b_{sigma(i)},\hat{b}_{i}) \ b_{sigma(i)} \cup \hat{b_{i}}}{| B(b_{sigma(i)},\hat{b}_{i})|}). \ (10)
Liou(bsigma(i),b^i)=1−(∣bsigma(i)∪bi^∣∣bsigma(i)∩bi^∣−∣B(bsigma(i),b^i)∣∣B(bsigma(i),b^i) bsigma(i)∪bi^). (10)
∣ ⋅ ∣ |\cdot| ∣⋅∣ 表示“面积”,box坐标的并集和交集被用作box本身的简写。并集或交集的面积由 b s i g m a ( i ) b_{sigma(i)} bsigma(i)和 b i ^ \hat{b_{i}} bi^的线性函数的 m i n / m a x min /max min/max计算得出,这使得损失对随机梯度具有足够的良好行为。 B ( b s i g m a ( i ) , b i ^ ) B(b_{sigma(i)},\hat{b_{i}}) B(bsigma(i),bi^)表示包含 b s i g m a ( i ) b_{sigma(i)} bsigma(i), b i ^ \hat{b_{i}} bi^的最大box(涉及 B B B的面积也是基于box坐标的线性函数的 m i n / m a x min /max min/max计算得出)
DICE/F-1 loss [28] DICE系数与交并比密切相关。如果用
m
^
\hat{m}
m^表示模型的原始掩模logits预测,
m
m
m表示二进制目标掩模,则损失定义为:
L
D
I
C
E
(
m
,
m
^
)
=
1
−
2
m
s
i
g
m
a
(
m
^
)
+
1
s
i
g
m
a
(
m
^
)
+
m
+
1
.
(
11
)
L_{DICE}(m, \hat{m}) = 1 − \frac{2m \ sigma(\hat{m}) + 1}{sigma(\hat{m}) + m + 1}. \ (11)
LDICE(m,m^)=1−sigma(m^)+m+12m sigma(m^)+1. (11)
其中 s i g m a sigma sigma是 sigmoid 函数。这个损失值是由物体的数量进行归一化的。
原文地址:https://blog.csdn.net/qq_40734883/article/details/140088237
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!