专栏名称: 新机器视觉
最前沿的机器视觉与计算机视觉技术
目录
相关文章推荐
中国能建  ·  裴爱国:科技赋能发展 创新引领未来 ... ·  2 天前  
中国电信  ·  这项行动,被央视点赞啦! ·  2 天前  
中国能建  ·  闻令而动!中国能建紧急驰援宜宾筠连 ·  3 天前  
51好读  ›  专栏  ›  新机器视觉

DEYO: 使用YOLO的DETR|逐步训练的策略

新机器视觉  · 公众号  ·  · 2024-10-10 12:00

正文

导读

我们设计了一种创新的训练方法,称为逐步训练(step-by-step training)。 具体来说,在训练的第一阶段,我们使用经典的检测器(采用一对多匹配策略预训练)来初始化端到端检测器的骨干网络和颈部网络。 在训练的第二阶段,我们将端到端检测器的骨干网络和颈部网络冻结,从而需要从头开始训练解码器。


摘要

DETRs 的训练范式严重依赖于在 ImageNet 数据集上预训练其骨干网络。然而,图像分类任务提供的监督信号有限以及一对一匹配策略导致 DETRs 的颈部网络预训练不足。此外,训练初期匹配的不稳定性造成了 DETRs 在优化目标方面的不一致。为了解决这些问题,我们设计了一种创新的训练方法,称为逐步训练(step-by-step training)。具体来说,在训练的第一阶段,我们使用经典的检测器(采用一对多匹配策略预训练)来初始化端到端检测器的骨干网络和颈部网络。在训练的第二阶段,我们将端到端检测器的骨干网络和颈部网络冻结,从而需要从头开始训练解码器。通过应用逐步训练方法,我们引入了首个利用纯卷积结构编码器的实时端到端物体检测模型——结合 YOLO 的 DETR(DEYO)。无需依赖任何额外的训练数据,DEYO 在速度和准确性方面均超越了现有的所有实时物体检测器。此外,完整的 DEYO 系列能够在单个 8GB RTX 4060 GPU 上完成其第二阶段的 COCO 数据集训练,大大降低了训练成本。源代码和预训练模型可在 https://github.com/ouyanghaodong/DEYO 获取。

1 介绍

物体检测是计算机视觉领域的一项基本任务,负责在图像或视频中精确地定位和识别各种物体类别。这项技术是许多计算机视觉应用的核心,包括自动驾驶、视频监控、人脸识别和物体跟踪。近年来,深度学习特别是基于卷积神经网络(CNN)的方法取得了重大进展,在物体检测任务中确立了主导地位。

DEtection TRansformer(DETR)引入了一种端到端的物体检测方法,包含一个 CNN 骨干网络、Transformer 编码器和 Transformer 解码器。DETR 使用匈牙利损失来预测一组一对一的目标,从而消除了对非最大值抑制(NMS)手工调整部分的依赖,通过端到端优化显著简化了物体检测流程。

尽管基于 Transformer 的端到端物体检测器(DETRs)在性能方面取得了显著成功,但这些检测器通常依赖于在 ImageNet 数据集上预训练其骨干网络。如果选择新的骨干网络,则需要在训练 DETRs 之前在 ImageNet 上进行预训练,或者使用现有的预训练骨干网络。这种依赖性限制了设计骨干网络的灵活性,并增加了开发成本。当任务数据集与 ImageNet 显著不同,这种预训练策略可能导致 DETRs 在特定数据集上的微调效果不佳。此外,由于 DETRs 使用匈牙利匹配算法直接进行一对一目标集合预测,且其解码器复杂度与输入序列长度呈二次关系,因此在训练过程中直接接收监督信号的查询数量远少于经典物体检测器使用的一对多匹配策略。加之图像分类任务本身存在的局限性,这导致 DETRs 的颈部网络预训练不足。另外,在 DETR 训练的早期阶段,同一查询在相同图像中可能会匹配不同的目标,导致优化过程模糊且不稳定,进而损害了预训练的骨干网络。

为了解决上述挑战,我们引入了一种创新的训练范式,称为“逐步训练”。该方法首先在一个自定义数据集上进行预训练,使用经典检测器执行物体检测任务,从而避免了对额外数据集的需求。随后,在训练的第二阶段,使用第一阶段中通过一对多匹配精炼的经典训练检测器的骨干网络和颈部网络来初始化端到端检测器。在此阶段,将端到端检测器的骨干网络和颈部组件冻结,仅重新训练解码器。逐步训练方法相比传统的 DETRs 训练方法显著提高了性能。同时,这种逐步训练方法大幅降低了检测器的训练成本:第一阶段的训练只需 16GB 的显存即可完成,而第二阶段仅需 8GB 显存。

借助逐步训练方法,我们引入了首个采用纯卷积架构作为编码器的实时端到端物体检测器,命名为结合 YOLO 的 DETR(DEYO)。具体而言,我们首先在自定义数据集上训练一个强大的 YOLO 物体检测模型,以初始化 DEYO 的骨干网络和颈部网络。随后,我们将预训练的颈部网络与简单的特征投影相结合,构建 DEYO 的轻量级解码器。由于初始阶段为 DEYO 的骨干网络和颈部网络提供了高质量的预训练,DEYO 在速度和准确度方面超越了当前最先进的实时物体检测器。

DEYO-tiny 在 COCO val2017 上实现了 37.6% 的 AP,并在 NVIDIA Tesla T4 GPU 上达到了 497 FPS;而 DEYO-X 达到了 53.7% 的 AP 和 65 FPS。此外,通过放弃对 NMS 的依赖,DEYO 在 CrowdHuman 数据集上相比 YOLOv8 展现出了显著的性能提升。无需额外训练数据,DEYO 在速度和精度上均优于所有同类实时检测器,树立了实时物体检测的新标杆。

本文的主要贡献总结如下:

  1. 我们提出了首个不需要额外数据集即可训练 DETRs 的方法:逐步训练。与传统的 DETRs 训练方法相比,逐步训练可以为检测器的颈部提供高质量的预训练,并从根本上解决训练早期阶段由于二元匹配不稳定导致的骨干网络损坏问题,从而显著提高检测器的性能。
  2. 利用逐步训练,我们开发了首个采用纯卷积结构作为编码器的实时端到端物体检测器 DEYO,它在速度和准确度方面均超越了目前最先进的实时检测器,并且无需后处理,因此推理速度无延迟且稳定。
  3. 我们进行了一系列消融研究,分析了所提出方法及模型不同组件的有效性。

2 相关工作

2.1. 检测转换器(DETR)

Carion 等人提出了基于 Transformer 的端到端物体检测器,名为 DETR(DEtection TRansformer),因其在物体检测中的端到端特性而受到研究人员的广泛关注。具体来说,DETR 去除了传统检测流水线中的锚点和 NMS 组件,并采用了二分图匹配标签分配方法来直接预测一对一的目标集合。这种方法极大地简化了物体检测流程,并缓解了由 NMS 引起的性能瓶颈。然而,DETR 存在收敛速度慢和查询模糊的问题。为了解决这些问题,提出了几种 DETR 变体,如 Deformable-DETR 、Conditional-DETR 、Anchor-DETR 、DAB-DETR 、DN-DETR 和 DINO 。Deformable-DETR 通过利用多尺度特征增强了注意力机制的效率并加速了训练收敛。Conditional-DETR 和 Anchor-DETR 减少了查询的优化难度。DAB-DETR 引入了 4D 参考点,并逐层优化预测框。DN-DETR 通过引入查询去噪加快了训练收敛速度。DINO 改进了先前的工作并取得了最先进的成果。然而,上述改进并未解决 DETR 中计算成本高的问题。RT-DETR 设计了一种高效的混合编码器以替代原始的 Transformer 编码器,减少了 DETR 编码器中不必要的计算冗余,并提出了首个端到端物体检测器。

2.2. You Only Look Once(YOLO)

多年来,YOLO 系列一直是最佳的单阶段实时物体检测器之一。YOLO 将物体检测任务转化为回归问题,在一次前向传递中预测多个物体的位置和类别,实现了高速物体检测。经过多年的发展,YOLO 已经发展成为一系列具有高性能的快速模型。基于锚点的 YOLO 方法包括 YOLOv4、YOLOv5 和 YOLOv7,而无锚点的方法有 YOLOX、YOLOv6 和 YOLOv8。考虑到这些检测器的性能,无锚点方法的表现与基于锚点的方法相当,锚框已不再是限制 YOLO 发展的主要因素。然而,所有 YOLO 变体都会生成许多冗余边界框,这些框在预测阶段必须通过非最大抑制(NMS)过滤掉,这显著影响了检测器的准确性和速度,并与实时物体检测器的设计理念相冲突。

3. DEYO

3.1. 模型概述

图2展示了我们提出的 DEYO 的完整架构。DEYO 使用 YOLOv8 作为其一对多分支,其中 YOLOv8 包括一个骨干网络、一个特征金字塔网络(FPN)和一个路径聚合网络(PAN),它们共同构成了颈部结构,并且还有一个能够在三个不同尺度上产生预测的头部。相反,DEYO 的一对一分支使用了一个轻量级的纯卷积编码器和一个基于 Transformer 的解码器。此外,我们还整合了一个与 DINO  中使用的相同的 CDN 组件,以增强模型的精度。

3.2. 一对多分支

YOLO 模型的泛化能力和实用性已经在计算机视觉领域得到了广泛验证和认可。即使没有额外数据集的帮助,YOLO 在处理复杂场景、执行多目标检测以及适应实时应用方面表现出色。利用这些优势,我们将 YOLO 选作 DEYO 模型的一对多分支,为 DEYO 提供高质量的预训练骨干网络和颈部结构。该分支包含三个多尺度输出层,能够生成多达 8,400 个候选区域。与 DETR 模型采用的一对一标签分配策略不同,YOLO 在训练过程中受益于一对多标签分配策略,由于更多的正样本数量,提供了更全面的网络初期训练监督。这些候选区域不仅仅承担分类的任务;它们还面临更为复杂的物体检测挑战。这进一步培养了一个稳健的颈部结构,为解码器提供了丰富的多尺度信息,从而显著提升了模型的整体性能。

3.3. 高效编码器

不同于 DETR 使用 Transformer 作为编码器,DEYO 利用了 YOLO 颈部的纯卷积架构,该架构在初始阶段经过预训练以编码多尺度特征。这些编码后的特征随后被输入到一个特征投影模块中,以使其与隐藏维度对齐。由于颈部强大的多尺度特征提取能力,通过初始高效的预训练获得,编码器可以为解码器提供高质量的键、值以及提议的边界框。相比于 DETR 随机初始化的多尺度层和 Transformer 编码器,DEYO 的纯卷积结构实现了显著的速度提升。该过程可总结如下:

3.4. 查询生成

如图3所示,DEYO 的查询生成方法不同于 DETR 的传统两阶段策略。具体来说,DEYO 采用了分离的生成方法来处理边界框和嵌入,允许特征投影更有效地压缩来自颈部的多尺度信息。同时,DEYO 继承了一对多分支中预训练的边界框头部,将学习策略从密集转变为稀疏,而不是从头开始训练。

3.5. 一对一分支

如图所示,DEYO 的一对一分支采用了类似于 DINO 的架构,利用 Transformer 的自注意力机制捕捉查询之间的关系,从而建立起分数差异以抑制冗余的边界框。在 Transformer 解码器的每一层中,查询逐步得到优化,最终生成与物体一一对应的预测。这种设计显著简化了 DEYO 内的目标检测流程,并消除了对非极大值抑制(NMS)的依赖,确保了推理速度的一致性。在 DEYO 训练的第二阶段,我们冻结了 DEYO 的骨干网络和颈部结构,从根本上避免了训练初期二分匹配的不稳定性,否则这可能会对预训练的骨干网络产生不利影响。得益于第一阶段提供的高质量初始化,即使在一对一分支中仅监督几百个查询并从头开始训练,DEYO 也能实现快速收敛和卓越的表现。

4. 实验

4.1. 设置

COCO

为了评估我们的方法在目标检测任务中的性能,我们在广泛使用的 Microsoft COCO 数据集上进行了实验 。我们使用 train2017 数据集训练 DEYO,并使用 val2017 数据集评估其性能。

CrowdHuman

为了评估 DEYO 在密集检测方面的端到端有效性并与经典检测器相比,我们在 CrowdHuman 数据集上进行了实验。我们利用数据集中全面的全身标注,并在验证集上进行了评估。就优化器相关的参数而言,我们采用了与 COCO 相同的设置。所有实验的后处理均参照 Iter-Deformable-DETR 的论文,未作任何修改。

实施细节

在训练的第一阶段,我们遵循了从头开始训练的策略和超参数设置。在训练的第二阶段,我们使用了一个包含 6 层 Transformer 解码器作为 DEYO 的解码器。我们按照中的超参数训练了检测器,但使用了 AdamW 优化器 。学习率设置为 0.0001,权重衰减设置为 0.0001。第二阶段的数据增强策略与第一阶段相同,包括随机颜色失真、逆向平移、翻转、缩放、马赛克等操作。在 COCO 数据集上,除了 DEYO-tiny 使用 100 个查询外,其他规模的 DEYO 均使用 300 个查询。所有评估均在一个 Tesla T4 GPU 和一个配备 8 vCPU 的 Intel Xeon 处理器(Skylake, IBRS)上进行。实验使用了 PyTorch 1.9.0 版本,并集成了 TensorRT 8.6.1。

4.2. 主要结果

我们在表 1 中将不同规模的 DEYO 与 YOLOv5、YOLOv8和 RT-DETR进行了对比。与 YOLOv8 相比,DEYO 在 N、S 和 M 规模下分别显著提高了 2.4 AP、0.9 AP 和 0.5 AP 的准确性,同时实现了 143%、110% 和 32% 的 FPS 提升。在 L 和 X 规模下,DEYO 继续表现出更好的准确性和速度之间的权衡。如表 3 所示,DEYO 在实时速度下的密集场景中表现尤为出色。具体来说,DEYO-X 达到了令人印象深刻的 92.3 AP 和 43.3 mMR,且在 CrowdHuman数据集上的表现达到了 97.3 的召回率。

4.3. 消融研究

表 5 展示了使用三种不同的训练方法在 CrowdHuman数据集上训练 YOLO和 DEYO 模型的结果:YOLO 方法、DETR 方法以及逐步训练策略。研究结果表明,YOLOv8-N模型即使从头开始训练且不依赖额外的数据集,通过利用一对多训练策略提供的丰富监督信息,也能达到 82.6 的平均精度(AP)。相比之下,受到一对一匹配训练策略限制的 DEYO-N 模型,尽管经历了与 YOLO 对等模型相同数量的迭代,其性能上限仅为 72.1 AP。此外,当 DEYO-N 模型的骨干网络使用从 ImageNet 预训练的 YOLOv8-N-CLS 初始化,并结合 DETR 训练策略时,DEYO-N 的性能达到了 78.3 AP。值得注意的是,实施逐步训练显著提升了 DEYO-N 的性能,增加了 4.7 AP。

在表 7 中,我们考察了由 Neck 组件提供的高质量多尺度特征的重要性,该组件在 DEYO 模型的第一阶段进行了预训练。当仅使用预训练的骨干网络而不使用预训练的 Neck 进行逐步训练时,模型的性能显著下降了 18.8 个平均精度点,仅达到 68.3 平均精度。这些发现清楚地表明,DEYO 模型卓越性能的关键并不在于使用超越 ImageNet 的更复杂的骨干网络预训练,而在于第一阶段预训练的 Neck,它为模型提供了高质量的多尺度特征。

在表 8 中,我们分析了通过冻结 DEYO 的骨干网络和 Neck 来根本解决早期二分图匹配不稳定性的提升效果,这在第二阶段训练中对网络性能产生了积极影响。与在整个第二阶段微调骨干网络和 Neck 相比,冻结操作使 DEYO 的性能提高了 1.1 AP。此外,由于 DEYO 的第一阶段涉及在 COCO数据集上进行目标检测任务的预训练,因此允许在第二阶段训练中采用更强大的数据增强策略。因此,与 DETRs 不同的是,采用 Mosaic 数据增强不会导致性能下降,反而带来了 0.2 AP 的提升。

4.4 分析

表 6 中展示的实验结果表明,当未使用逐步训练策略时,DINO、H-DETR 和 Group-DETR 的性能出现了显著下降,而我们的方法则没有这种现象。与我们的方法相比,参考文献中提出的方法未能有效应对因缺乏监督信号而导致的训练挑战,从而导致训练成本过高。相反,如表 9 所述,我们的训练方案不仅避免了额外的训练开销,还大幅减少了检测器的训练成本(Group-DETR 需要的 3300 个查询可能会使训练时间增加六倍)。DEYO 模型的第一阶段训练仅需要 16GB 的显存,而后续阶段的需求甚至更低,只需 8GB 显存。对于资源受限的训练场景,DEYO 可以停用 CDN 功能以进一步降低显存需求。正如表 6 所示,逐步训练策略在第一阶段为 DEYO 提供了高质量的预训练基础,确保即使停用 CDN,性能损失也处于可控范围。







请到「今天看啥」查看全文