摘要
DINO 是一种先进的端到端目标检测器,通过使用对比性去噪训练、混合查询选择方法和双重前瞻方案来改进性能和效率。在 COCO 数据集上,使用 ResNet-50 作为主干网络和多尺度特征,DINO 在 12 轮训练中达到了 49.4AP,在 24 轮训练中达到了 51.3AP,与之前的最好模型 DN-DETR 相比分别提高了 6.0AP 和 2.7AP。DINO 在模型大小和数据大小方面都具有很好的扩展性。在没有使用复杂技术的情况下,使用 Objects365 数据集进行预训练,并采用 SwinL 主干网络,DINO 在 COCO val2017 和 test-dev 上取得了最佳结果,分别为 63.2AP 和 63.3AP。
拟解决的问题
传统的目标检测算法通常包含手工设计的组件,如锚点生成和非极大值抑制(NMS)。而 DETR(Detection Transformer)模型则消除了这些手工设计的需要,通过双分图匹配来标记对象,但 DETR 的训练收敛速度较慢,查询的含义也不明确。为了解决这些问题,DINO 通过改进去噪训练、查询初始化和边界框预测来设计新的 DETR 类模型。
创新之处
- 对比性去噪训练(Contrastive DeNoising Training):通过同时添加正样本和负样本来提高模型避免重复输出同一目标的能力。
- 混合查询选择方法(Mixed Query Selection):结合了位置查询和可学习的内容查询,以更好地初始化查询。
- 双重前瞻方案(Look Forward Twice Scheme):利用来自后续层的细化框信息来优化相邻早期层的参数。
方法
DINO 包含一个主干网络、多层 Transformer 编码器、多层 Transformer 解码器和多个预测头。它采用了 DAB-DETR 的动态锚框公式,并在 DN-DETR 的基础上增加了去噪技术,同时采用了可变形注意力机制来提高计算效率。
- 给定图像,我们使用 ResNet 或 Swin Transformer 等主干提取多尺度特征,然后将它们输入具有相应位置嵌入的 Transformer 编码器。
- 在使用编码器层进行特征增强后,我们提出了一种新的混合查询选择策略,将锚点初始化为解码器的位置查询。请注意,这种策略不初始化内容查询,而是使它们可学习。
- 使用初始化的锚点和可学习的内容查询,我们使用可变形注意来组合编码器输出的特征,逐层更新查询。最终输出由细化的内容特征预测的细化锚框和分类结果形成。
- 与DN-DETR一样,我们有一个额外的DN分支来执行去噪训练。除了标准的DN方法之外,我们还提出了一种新的对比去噪训练方法,该方法考虑了硬负样本。
- 为了充分利用后面层的细化框信息来帮助优化其相邻早期层的参数,提出了一种新的向前看两次方法,通过相邻层之间的梯度。
4.1 对比去噪训练
对比去噪训练(Contrastive DeNoising Training, CDN)是DINO模型中提出的一种新颖的训练方法,旨在提高目标检测模型的鲁棒性和准确性,特别是对于锚点的选择和去噪能力。
基本原理:
- 去噪任务:去噪训练的基本思想是向模型提供带有噪声的真值标签和边界框,并让模型学习从这些噪声数据中恢复出原始的干净数据。这有助于模型在面对实际检测中的噪声输入时更加稳定。
- 对比学习:CDN通过引入正样本和负样本的概念来增强去噪训练的对比性。正样本指那些噪声较小的查询,它们应该能够重建其对应的真实边界框;而负样本指那些噪声较大的查询,它们应该学习预测“无物体”。
CDN使用两个超参数 λ1 和 λ2(λ1 < λ2)来控制噪声的规模。对于每个真实边界框,模型会生成两种类型的查询:
- 正查询:在 λ1 噪声水平下的查询,预期能够重建其对应的真实边界框。
- 负查询:在 λ1 和 λ2 之间的噪声水平下的查询,预期学习预测“无物体”。
CDN使用重建损失(如L1损失和GIOU损失)来训练模型,使得正查询能够重建真实的边界框。同时,对于负查询,使用焦点损失来将它们分类为背景。过这种方式,CDN能够更有效地选择高质量的锚点(查询),并抑制模型对于硬负样本(即那些与真实边界框距离较远的锚点)的响应。
4.2 混合查询选择
在DETR及其变体中,解码器查询通常是静态嵌入,它们不包含来自单个图像的编码器特征。这些静态查询直接从训练数据中学习,而内容查询通常被初始化为零向量。然而,这种方法可能不足以捕获图像中所有相关信息,尤其是在复杂的视觉场景中。
混合查询选择方法通过选择编码器输出中的前K个特征来初始化解码器的位置查询,同时保持内容查询为可学习的参数。这样,模型可以利用编码器中的空间信息来更好地定位目标。
(a)静态查询(Static Queries):
- 在这种方法中,解码器查询是静态嵌入,它们不依赖于任何来自编码器的特征。
- 这些查询在训练过程中是可学习的,并且在推理时对不同图像保持不变。
- 静态查询通常被初始化为零向量或者通过某种方式学习得到,但它们不利用图像的直接信息。
(b)纯查询选择(Pure Query Selection):
- 这种方法中,解码器的查询是通过从编码器最后一层选择的前K个特征来生成的。
- 这些特征不仅用于初始化位置查询,还用于初始化内容查询。
- 纯查询选择的目的是直接使用编码器的特征来增强解码器的查询,使其更加针对当前图像内容。
(c)混合查询选择(Mixed Query Selection):
- 这是DINO模型采用的方法,它结合了静态查询和查询选择的思想。
- 选择编码器特征:从编码器最后一层的输出中选择前K个特征,这些特征包含了图像的重要空间信息。
- 初始化位置查询:使用所选特征通过线性变换来初始化解码器的位置查询,即动态锚框。这些锚框随后在解码器的每一层中动态更新和细化。
- 保持内容查询可学习:与位置查询不同,内容查询保持为可学习的参数,允许模型在训练过程中自行调整,以更好地捕捉目标的特征。
这种方法的优势在于,它结合了静态查询的直接学习和动态查询的灵活性。通过利用编码器的输出来初始化位置查询,模型可以更准确地定位目标,而内容查询的可学习性则允许模型适应不同的目标特征。
拓展阅读:
内容查询是解码器中的一组可学习向量,它们用于捕捉与目标相关的特征表示。这些特征可以包括目标的颜色、纹理、形状等视觉信息。
4.3 向前看两次
DINO模型中提出的一种新颖的边界框预测方法,用于改善目标检测中边界框的精确度。这种方法是对之前在DETR和其变体中使用的迭代边界框细化方法的改进。
(a)向前看一次(Look Forward Once, LFO):
- 基本思想:在LFO中,每一层解码器的参数更新仅基于该层自身预测的边界框损失。这意味着梯度仅在当前层内部流动,不会影响到其他层。
- 更新过程:给定一个输入框
,第 i 层解码器会预测一个偏移量
,然后使用这个偏移量来更新得到
。
- 梯度分离:在
计算之后,执行梯度分离操作,以防止梯度流向下一层或回传到上一层。
(b)向前看两次(Look Forward Twice, LFT):
- 基本思想:LFT方法扩展了LFO,允许从后续层传递梯度信息,以影响前面层的参数更新。这种方法利用了从后续层获得的更精细的边界框信息来改进前面层的预测。
- 更新过程:在LFT中,第 i 层的边界框
首先使用预测偏移量
更新为
,然后这个
会与下一层的预测偏移量
结合,形成最终的预测
。
- 梯度传递:与LFO不同,LFT允许梯度从
流向
,实现对前面层的进一步优化。
实验
DINO模型在12个epoch的训练后,使用4尺度(4scale)和5尺度(5scale)的多尺度特征,分别达到了49.0AP和49.4AP,显著优于其他基线模型,包括Faster R-CNN、DETR、Deformable DETR、DAB-DETR等。
可视化检测结果:
- 左侧图像:展示了使用传统DETR模型(可能使用DN查询)训练得到的检测结果。在该图像中,可能特别指出了一个或多个目标(例如,一个指向特定人物的箭头)被错误地预测了多次,即出现了重复的边界框。
- 右侧图像:展示了使用DINO模型(使用CDN查询和LFT方法)训练得到的检测结果。在相同的场景下,DINO模型能够更准确地检测目标,并且避免了重复预测的问题。
结论
DINO 通过其新颖的技术,在 COCO 数据集上取得了显著的性能提升,并且在模型大小和预训练数据大小方面相比其他模型有显著减少,同时取得了更好的结果。这表明 DINO 不仅在端到端的目标检测优化方面具有创新性,而且在性能上也超越了现有的最先进模型,确立了 DETR 类模型作为主流检测框架的地位。