1. YOLOv10: Real-Time End-to-End Object Detection
一、全文概述
文章主要介绍了YOLOv10在实时端到端目标检测方面的改进和创新。简要概述:
1.1 背景与挑战:
实时目标检测在计算机视觉领域具有重要意义,广泛应用于自动驾驶、机器人导航等场景。YOLO系列因其在性能和效率之间的有效平衡而受到广泛关注。然而,YOLOs在模型架构设计和后处理过程中存在冗余计算和效率不足的问题。
1.2 解决方案:
无NMS训练策略:提出了一种双标签分配策略,结合了一对多和一对一匹配的优点,消除了对NMS的需求,提高了推理效率。
整体效率-精度驱动模型设计:从效率和精度两方面对YOLOs的各个组件进行了全面优化,包括轻量级分类头、空间-通道解耦下采样和基于秩的块设计等。
1.3 实验结果:
在COCO数据集上,YOLOv10在各种模型规模下均实现了最先进的性能和效率。例如,YOLOv10-S在相似AP下比RT-DETR-R18快1.8倍,参数量和FLOPs分别减少2.8倍和1.8倍。与YOLOv9-C相比,YOLOv10-B在相同性能下延迟减少了46%,参数减少了25%。
1.4 优势:
YOLOv10通过无NMS训练策略和整体效率-精度驱动模型设计,显著提高了检测效率和性能。在保持高精度的同时,有效减少了计算冗余和延迟。
二、创新优化设计
2.1 NMS-Free YOLO
为了解决后处理中的冗余预测问题,研究提出了一种一致性双分配策略(consistent dual assignments strategy),这是一个基于双重标签分配和一致性匹配度量的无 NMS 方案:
• 双标签分配(Dual Label Assignments):在训练过程中,通过给定对象分配多个正样本标签,确保模型在训练中接受丰富且一致的监督信号。
• 一致性匹配度量(Consistent Matching Metric):保证训练过程中的正样本分配与推理时的匹配标准保持一致,从而在推理阶段无需依赖 NMS。这一策略不仅消除了对 NMS 的需求,还能够提高推理的效率,提升模型的性能。
2.2 模型架构的整体优化策略
为了从模型设计的角度提升效率与准确性,作者引入了整体效率-准确性驱动的模型设计策略(holistic efficiency-accuracy driven model design strategy),从各个组件出发对 YOLO 模型进行全面检查和优化。
效率优化措施:
• 轻量化分类头(Lightweight Classification Head):在保持分类精度的同时,减少计算开销,使得分类器更加轻量化。
• 空间-通道解耦下采样(Spatial-Channel Decoupled Downsampling):通过将空间信息和通道信息解耦,优化下采样的计算过程,减少计算冗余。
• 基于秩引导的块设计(Rank-Guided Block Design):通过引入秩引导设计,优化块结构,从而进一步减少冗余计算,提升模型的效率。
准确性提升措施:
• 大卷积核(Large-Kernel Convolution):通过使用大卷积核扩展感受野,提升模型的特征捕捉能力,从而提高检测的准确性。
• 有效的部分自注意力模块(Effective Partial Self-Attention Module):通过引入部分自注意力机制,增强模型对重要特征的捕获,改善检测性能,并在计算成本较低的前提下实现性能提升。
三、性能、速度
3.1 YOLOv10 系列模型
这些模型针对不同的计算资源和应用场景进行了优化,以实现更好的计算-准确性权衡。
YOLOv10 系列由不同模型规模组成,包括:
• YOLOv10-N(Nano)
• YOLOv10-S(Small)
• YOLOv10-M(Medium)
• YOLOv10-B(Base)
• YOLOv10-L(Large)
• YOLOv10-X(Extra Large)
3.2 实验结果
在目标检测的标准数据集 COCO 上进行了大量实验,验证了 YOLOv10 系列在计算效率和准确性上的优势。
速度提升:YOLOv10 系列在速度方面相较其他先进模型有显著提升。例如:
• YOLOv10-S 比 RT-DETR-R18 快 1.8 倍,而性能相当。
• YOLOv10-X 比 RT-DETR-R101 快 1.3 倍,性能相似。
延迟减少:相比 YOLOv9-C,YOLOv10-B 在相同性能下减少了 46% 的推理延迟。这意味着 YOLOv10-B 能够在相同的检测效果下以更短的时间完成推理过程,适用于高实时性要求的场景。
参数利用率提升:
• YOLOv10-L 和 YOLOv10-X 在相同的模型规模下分别比 YOLOv8-L 和 YOLOv8-X 的平均精度(AP)提升了 0.3 和 0.5,同时它们的参数量分别减少了 1.8 倍和 2.3 倍。
• YOLOv10-M 的 AP 与 YOLOv9-M 和 YOLO-MS 相当,但参数量分别减少了 23% 和 31%。
四、NAS任务
定义一个搜索空间,NAS 会在这个空间内寻找最优的架构。以下是基于该配置的一些可能的搜索维度:
• 网络深度 (Depth): 可以调整每一层的 repeats 参数,例如搜索 C2f 模块的重复次数,优化特征提取的深度。
• 宽度 (Width): 通过调整每一层的通道数,例如 Conv 和 C2f 模块中的参数 [64, 128, 256, 512, 1024],探索不同宽度的模型架构,以平衡 FLOPs 和 AP(准确率)。
• 模块类型: 例如,针对 C2f 和 C2fCIB 模块进行不同组合和替换,探索不同模块在特定任务中的表现。
• 降采样方法: 可以探索不同的降采样模块如 SCDown,尝试改变其参数或替换为其他降采样方式,以优化感受野与计算效率的平衡。
• 激活函数: 可以在不同模块中引入不同的激活函数进行比较,如 ReLU、Leaky ReLU、Swish 等。
• Kernel 大小: 修改 Conv 层的卷积核大小(例如从 3×3 到 5×5 或 7×7),搜索在不同尺度物体检测中的表现。
备注:
1、RT-DETR-R18
一种基于深度学习的目标检测网络架构,它结合了实时性(Real-Time)和高效的目标检测(Detection Transformer, DETR)的优点。具体地,RT-DETR 是一种经过优化的 DETR 模型,设计目标是提高推理速度,同时保持较高的检测精度。而 R18 则代表该模型的主干网络(backbone)使用了 ResNet-18。
相关技术点:
- DETR (Detection Transformer):
• 是一种基于 Transformer 架构的端到端目标检测模型,不依赖常见的区域提案网络(如 Faster R-CNN 中的 RPN)。DETR 将目标检测问题转化为一个集成了分类和边界框回归的序列预测问题。
• 由于 DETR 中使用了 Transformer 编码器和解码器,它能处理复杂的场景且不需要复杂的非极大值抑制(NMS)步骤。
- ResNet-18:
• ResNet-18 是一种经典的轻量级卷积神经网络,用于提取图像特征。与更深的 ResNet 变体(如 ResNet-50、ResNet-101)相比,ResNet-18 的层数较少(18 层),因此计算复杂度更低,更适合实时任务。
- RT-DETR 的实时性:
• RT-DETR 针对实际场景进行了速度优化,目的是在保持检测精度的前提下,显著提高推理速度。
• RT-DETR-R18 使用了轻量化的 ResNet-18 作为骨干网络,有助于降低模型的计算负荷,使其适合在资源有限的环境中实现实时目标检测。
特性与应用场景:
• 轻量化模型:由于 ResNet-18 是较轻量的主干网络,RT-DETR-R18 适合应用在边缘设备或移动设备上,能够在计算资源受限的环境下进行高效的目标检测。
• 端到端训练:RT-DETR 作为 DETR 的变种,保留了端到端训练的特性,简化了目标检测的训练流程。
• 实际应用:可用于自动驾驶、视频监控、无人机监控等需要实时目标检测的场景。
实践中的优势:
• 高效的推理速度使得 RT-DETR-R18 能够在高帧率视频流中进行实时检测。
• 较低的计算复杂度和内存占用,使其适合嵌入式系统或者移动设备的部署。
RT-DETR-R18 平衡了检测精度和实时性,适合对推理速度和资源消耗有较高要求的应用场景。
2、YOLO 系列的发展历程
• YOLOv1、YOLOv2 和 YOLOv3:这几代模型确立了目标检测的经典架构,分为主干网络(用于特征提取)、颈部网络(用于多尺度特征融合)和头部网络(用于分类与定位)。
• YOLOv4 和 YOLOv5:这两代模型引入了 CSPNet 以提高网络的计算效率,并通过数据增强、增强的 PAN 结构和不同的模型规模来进一步优化目标检测效果。
• YOLOv6:该版本进一步改进了模型的颈部和主干网络(BiC 和 SimCSPSPPF),并采用锚点辅助训练和自蒸馏策略,提升了训练和推理的表现。
• YOLOv7:YOLOv7 引入了 E-ELAN 以增强梯度流路径,使得模型训练更加稳定,同时探索了多种可训练的 bag-of-freebies 方法,进一步提升性能。
• YOLOv8:该版本引入了 C2f 结构块,使得特征提取和多尺度特征融合更加高效,进一步优化了模型的速度和准确率平衡。
• Gold-YOLO:提供了先进的 GD 机制,进一步提升了多尺度特征融合能力,使模型在处理复杂场景时具备更强的表现力。
• YOLOv9:通过 GELAN 结构改进和 PGI 增强训练过程,进一步提升了模型的架构和训练效率。
3、端到端目标检测
3.1. 端到端检测的革命:
• 传统的目标检测方法通常依赖于多步骤处理流程,如特征提取、分类、定位和后续的后处理(例如NMS非极大值抑制)。端到端检测试图简化这一过程,将模型训练和预测整合为一个无缝流程,从而提高效率和精度。
3.2. DETR的引入:
• DETR (Detection Transformer):这是一个重要的里程碑,标志着目标检测领域转向Transformer架构。它通过引入Transformer网络和匈牙利损失函数,成功实现了一对一的目标匹配预测,不再依赖人工设计的后处理步骤(如NMS)。
• 优势:这种方法可以消除手动设计的组件,减少后处理带来的延迟,并提高模型的推理效率。
3.3. DETR的变体:
• Deformable-DETR:引入了多尺度可变形注意力模块,加速了模型的收敛速度,并提升了检测不同尺度目标的能力。
• DINO:通过对比去噪、混合查询选择和“两次向前看”策略,使DETR架构更加高效和精准。
• RT-DETR:设计了高效的混合编码器,提升了实时检测的性能,优化了查询选择机制,使得模型在准确率和延迟之间达到了更好的平衡。
3.4. 基于CNN的端到端检测方法:
• Learnable NMS和关系网络:这些方法提出通过增加一个网络来自动学习和去除重复的检测结果,减少对人工设置的NMS的依赖。
• OneNet和DeFCN:这些方法引入了一对一匹配策略,使得CNN架构也可以实现端到端目标检测,进一步优化了检测流程。
• FCOSpss:引入了正样本选择器,旨在从候选样本中选择最优的样本,提升预测的准确性。
4、DETR (Detection Transformer)
由 Facebook AI Research (FAIR) 团队提出的创新性目标检测模型,首次将 Transformer 网络引入到目标检测中,为传统的基于卷积神经网络 (CNN) 的检测器提供了一个全新的方向。
4.1 DETR的主要特点与创新点:
-
端到端检测架构:
• 与传统目标检测方法(如 YOLO、Faster R-CNN)不同,DETR 不需要像非极大值抑制 (NMS) 这样的后处理步骤。它能够通过一对一的匹配策略直接输出检测结果,从而简化了整个目标检测流程。 -
Transformer 架构的引入:
• DETR 是首个在目标检测任务中使用 Transformer 架构的模型。Transformer 模块用于捕捉全局上下文信息,它通过自注意力机制处理输入图像的不同部分,使得模型能够同时检测出图像中的多个目标。 -
匈牙利算法 (Hungarian Algorithm):
• 在训练阶段,DETR 引入了匈牙利算法来进行一对一的目标匹配。这种匹配方法使得模型可以准确地将预测结果与实际目标进行关联,而无需生成大量候选框。 -
无需锚框 (Anchor-Free):
• 与以往的许多检测模型依赖预定义的锚框 (Anchor Boxes) 不同,DETR 使用了端到端的方式,不需要手动设置锚框来生成候选框。这样既降低了复杂度,也提高了灵活性。 -
全局注意力机制:
• Transformer 的全局注意力机制使得 DETR 能够在整个图像范围内捕捉到目标的上下文信息,而不仅仅是依赖局部区域。这种全局的视角提高了目标检测的精度,尤其是在复杂场景下。
4.2 DETR的主要组成部分:
-
Backbone (特征提取网络):
• 通常使用 ResNet 等常见的卷积网络来提取图像的初步特征。这部分与传统检测器类似。 -
Transformer 模块:
• 在 Backbone 提取的特征图上,Transformer 通过自注意力机制将图像中的不同区域进行交互学习,增强了目标的全局表示。 -
预测头 (Prediction Heads):
• 最后的预测头使用一对一的目标匹配策略来直接输出目标框的类别和位置预测。通过匈牙利算法,模型会根据预测结果和实际标签进行最优匹配。
4.3 DETR的优点:
• 简化检测流程:无需使用非极大值抑制 (NMS) 或预定义的锚框。
• 端到端训练:整个模型可以完全端到端训练,避免了中间步骤的复杂性。
• 全局特征建模:Transformer 可以捕捉图像中的全局信息,这使得 DETR 能够在处理复杂场景或小目标时具有优势。
4.4 DETR的局限性:
-
训练时间较长:
• 由于 Transformer 结构的复杂性,DETR 的训练时间较长,收敛速度较慢。相比传统的 CNN 模型,DETR 需要更大的计算资源和训练时间。 -
小目标检测的性能较差:
• 尽管 DETR 在捕捉全局信息方面有优势,但它在检测较小的目标时表现不如传统的检测器。
4.5 后续改进:
随着 DETR 的提出,很多后续工作对其进行了改进和优化。例如:
• Deformable DETR:引入可变形卷积,提升了小目标的检测性能,并加快了模型的收敛速度。
• DINO:通过对比去噪和其他技术进一步增强了 DETR 的性能。
5、TAL (Task-Aligned Label)
一种用于目标检测中优化标签分配的策略,旨在提高目标检测器在不同任务上的性能,尤其是在标签分配过程中更好地处理正负样本的选择问题。传统的标签分配方法在训练过程中可能会导致标签分配不均或子优化的情况,而 TAL 通过对不同任务进行任务对齐,从而提升模型的性能。
TAL 方法的核心思想:
- 任务对齐:
• TAL 主要通过对齐不同任务的标签来优化训练过程中的正负样本分配。传统的标签分配方式可能无法很好地处理目标类别与其位置之间的关系,导致模型在分类任务和定位任务上产生冲突。TAL 通过一种动态的方式来分配标签,确保标签分配能够更好地适应任务的不同需求。
- 自适应分配:
• TAL 使用了一种自适应的标签分配策略,能够根据不同任务的需求(如分类和定位)进行动态调整。这意味着 TAL 可以根据样本的特性,灵活调整正负样本的选择,确保分配的样本能更好地服务于当前任务的目标。
- 优化正负样本的分配:
• 传统方法中,正负样本的分配通常依赖于固定的 IOU(Intersection over Union)阈值,这在复杂场景下容易导致错误的样本分配。而 TAL 通过引入更复杂的指标,例如任务相关的得分,将正负样本的分配过程进行优化,从而提升模型的检测性能。
TAL的主要优点:
- 提升分类与定位任务的一致性:
• 在目标检测中,分类任务和定位任务的目标往往不完全一致,TAL 能够通过任务对齐的方式,确保这两个任务的标签分配更加协调,从而提升模型在两个任务上的整体性能。
- 自适应性强:
• TAL 方法并不依赖于固定的阈值或分配规则,而是根据具体样本的特征自适应地调整分配方式,这种灵活性使得 TAL 能够适应更多样化的数据分布和任务需求。
- 降低误检与漏检率:
• 由于 TAL 更加合理地处理了正负样本的选择问题,模型在训练时能够更加准确地区分目标与背景,从而降低了误检(False Positive)和漏检(False Negative)的概率。
TAL 在目标检测中的应用:
TAL 方法主要被用于提升基于 CNN 和 Transformer 的目标检测器的性能。例如,在 YOLO 系列模型中,TAL 可以用于改善模型的标签分配,使得模型在处理不同尺度的目标时更加高效。同样,TAL 也可以与如 DETR 这样的 Transformer 架构相结合,进一步提升模型在不同任务上的表现。
6、ELAN(Efficient Layer Aggregation Network,层聚合网络)
一种用于神经网络架构的设计结构,旨在通过层之间的高效聚合提高模型的表示能力和计算效率。它通过聚合不同层的信息,增强了模型的特征表达能力,并改善了模型的效率。
ELAN 结构的核心特点:
-
多层聚合:ELAN 通过将来自不同深度的特征层进行聚合(aggregation),使得浅层特征和深层特征能够共享和互相增强。这种聚合方式使得网络可以从更多层次的信息中进行学习,提高特征的表达能力。
-
轻量化设计:ELAN 通过设计轻量级的模块,如深度可分离卷积等技术,减少计算开销的同时,保持模型的精度和有效性。与传统的深层网络相比,ELAN 在参数数量和计算量上更加高效,适合部署在资源有限的设备上。
-
多尺度特征融合:通过聚合来自不同尺度的特征,ELAN 能够更好地捕捉目标的多尺度信息。这对于目标检测任务非常重要,尤其是应对大小不同的目标时,多尺度特征的融合可以显著提升检测性能。
ELAN在YOLO中的应用:
在最新的YOLO架构(如YOLOv7和YOLOv8)中,ELAN被用作一种核心模块,用于优化模型的效率和准确性。它通过分离各层特征、然后对不同尺度和深度的特征进行聚合,确保了模型在复杂任务中的高效运行。
例如:
• YOLOv8 使用了 ELAN 结构来增强特征提取网络部分,使得模型能够在保持较低计算成本的同时,仍能提取到足够丰富的特征信息。
• ELAN 结构中的特征聚合使得 YOLO 在处理小物体或复杂背景下能够获得更好的性能。
7、YOLO 版本及其对应的论文:
YOLOv1 (2016):
• 论文标题: “You Only Look Once: Unified, Real-Time Object Detection”
• 主要贡献: YOLOv1 是第一篇提出 YOLO 目标检测方法的论文,它将整个目标检测任务当作一个单一的回归问题,通过神经网络直接输出边界框和类别概率,显著提高了检测速度。
• 论文链接: YOLOv1 论文
YOLOv2 (2017) / YOLO9000:
• 论文标题: “YOLO9000: Better, Faster, Stronger”
• 主要贡献: YOLOv2 改进了模型的结构,引入了批归一化、锚框等技术,进一步提升了检测精度和速度。同时,YOLO9000 提出了可以同时在 COCO 和 ImageNet 上进行多任务训练,使得模型能检测 9000 多类目标。
• 论文链接: YOLOv2/YOLO9000 论文
YOLOv3 (2018):
• 论文标题: “YOLOv3: An Incremental Improvement”
• 主要贡献: YOLOv3 引入了残差网络(Residual Network)和多尺度预测,提升了对小物体的检测能力。YOLOv3 仍然保持了很高的检测速度,并具有较好的检测精度。
• 论文链接: YOLOv3 论文
YOLOv4 (2020):
• 论文标题: “YOLOv4: Optimal Speed and Accuracy of Object Detection”
• 主要贡献: YOLOv4 引入了一系列技术改进(如 CSPNet、Mosaic 数据增强、DropBlock 等),使得在检测精度和速度之间找到了更好的平衡,且易于在单 GPU 上训练。
• 论文链接: YOLOv4 论文
YOLOv5 (2020):
• 没有正式的学术论文。YOLOv5 是由 Ultralytics 推出的开源模型,其特点是使用了 PyTorch 实现,易于部署和使用。尽管没有论文,但其受到了广泛使用和讨论,特别是在工业应用和实际项目中。
YOLOv6 (2022):
• 论文标题: “YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications”
• 主要贡献: YOLOv6 由旷视科技推出,主要针对工业应用场景进行了优化,提升了推理速度和精度,并提供了一系列轻量化模型。
• 论文链接: YOLOv6 论文
YOLOv7 (2022):
• 论文标题: “YOLOv7: Trainable Bag-Of-Freebies Sets New State-Of-The-Art for Real-Time Object Detectors”
• 主要贡献: YOLOv7 继续优化了架构和训练方法,提出了多种 Bag-Of-Freebies 技术,进一步提高了模型的效率和精度,尤其是在实时检测方面表现优异。
• 论文链接: YOLOv7 论文
YOLOv8 (2023):
• 没有单独的论文。YOLOv8 由 Ultralytics 发布,是对 YOLO 系列模型的进一步改进,包括新型的损失函数、优化的训练流程、增强的数据处理等。它主要依托于 Ultralytics 的官方文档和开源代码库。