目录
一、YOLOv6 的诞生与背景
在计算机视觉领域,目标检测一直是至关重要的研究方向,其旨在识别图像或视频中感兴趣的目标,并确定它们的位置 ,这一技术广泛应用于自动驾驶、安防监控、智能机器人等多个领域。随着深度学习技术的飞速发展,目标检测算法取得了显著进展,其中 YOLO(You Only Look Once)系列算法凭借其高效的检测速度和出色的准确性,成为目标检测领域的佼佼者。
YOLO 算法的核心思想是将目标检测任务转化为一个回归问题,通过一个统一的神经网络,一次前向传播就能同时预测图像中的目标位置和类别,彻底改变了传统目标检测算法速度慢、效率低的局面,开启了实时目标检测的新纪元。从 2015 年 YOLOv1 的横空出世,到后续多个版本的不断迭代优化,YOLO 系列算法在模型精度、速度和鲁棒性等方面都取得了长足的进步。
YOLOv1 将目标检测视为回归问题,通过单次前向传播预测目标位置和类别,实现了快速检测,但在检测密集或尺寸变化较大的目标时效果欠佳 。随后的 YOLOv2 引入了批量归一化、多尺度训练策略和锚框机制等,显著提升了模型的训练速度、稳定性以及边界框预测的准确性,还能检测超过 9000 个类别的目标 。YOLOv3 采用了更深的 Darknet-53 卷积神经网络结构,并引入特征金字塔网络融合不同尺度的特征信息,进一步提高了检测精度。YOLOv4 则结合了 CSPNet、PANet、SAM 等多种先进技术,在提高速度和准确性的同时,实现了更高效的特征提取和目标检测 。YOLOv5 不是由原作者开发,但它在保持核心思想的基础上,对模型结构和训练策略进行了全面优化,采用轻量级网络结构,降低计算复杂度,引入自动学习锚框尺寸策略,提升了边界框预测精度 。
然而,随着技术的不断发展和应用场景的日益复杂,对目标检测算法提出了更高的要求。为了更好地适应工业应用场景,满足对速度、精度和部署友好性的需求,美团视觉人工智能部推出了 YOLOv6。它站在 YOLO 系列算法的肩膀上,大量吸收了最新的网络设计、训练策略、测试技术、量化和优化方法,致力于在准确性和速度之间实现更好的权衡,为目标检测技术在实际应用中的落地提供更强大的支持 。
二、YOLOv6 的独特设计
(一)硬件友好的架构
YOLOv6 在骨干网络和颈部设计上进行了大胆创新,引入了 EfficientRep 结构和 Rep - PAN,这一变革性的设计理念从硬件感知的神经网络设计中汲取灵感,充分考虑了硬件的计算能力、内存带宽等关键因素 ,旨在实现高效推理。
EfficientRep 骨干网络以 RepVGG 风格为基础,在训练状态下,它巧妙地结合了 3x3 分支、1x1 分支和恒等映射,这种多分支结构能够充分提取图像的不同层次特征,确保了训练期间的准确性。而在推理状态时,通过精妙的重新参数化技术,多分支结构无缝转换为单分支的 3x3 卷积 。这种转换不仅简化了网络结构,更重要的是,3x3 卷积结构能够有效利用计算密集型硬件(如 GPU)的强大计算能力,同时借助 NVIDIA cuDNN 和 Intel MKL 等高度优化的编译框架,大大提升了推理速度。
在 Neck 设计方面,YOLOv6 采用了 Rep - PAN 结构。它基于 PAN 拓扑方式,用 RepBlock 替换了传统的 CSP - Block,并对整体 Neck 中的算子进行了精心调整。这一设计优化在保证多尺度特征融合能力的同时,使 Neck 在硬件上的推理更加高效,实现了精度与速度的完美平衡 。
(二)高效的解耦头
解耦头的设计是 YOLOv6 的又一亮点,其设计原理基于对目标检测任务中分类和回归任务本质差异的深刻理解。在传统的目标检测模型中,分类和回归任务通常共享同一个预测头,这使得两个任务在信息处理过程中相互干扰,难以充分发挥各自的优势。而解耦头则将分类和回归任务分离,分别由独立的网络分支进行处理 。
具体来说,解耦头首先通过一个 1×1 卷积层对输入特征进行降维,减少后续计算量。随后,特征被分成两个并行的分支:分类分支负责输出目标类别的预测结果,通过一系列卷积层和全连接层,对特征进行深度挖掘和分类判断;回归分支则专注于预测目标的位置(边界框),利用卷积层对目标的位置信息进行精确回归 。
这种设计带来了诸多显著优势。一方面,独立的分支使得分类和回归任务可以根据自身的特点进行针对性的优化,避免了任务之间的相互干扰,从而提高了模型对不同任务的处理能力,提升了检测精度 。另一方面,在训练过程中,两个分支可以分别计算损失函数,并根据各自的损失进行反向传播更新参数,使得训练过程更加稳定,有助于模型更快地收敛 。
(三)先进的训练策略
无锚范式:YOLOv6 采用了无锚范式,摒弃了传统的锚框机制。在基于锚框的目标检测方法中,需要在训练前通过聚类分析确定最佳的锚框集合,这不仅增加了检测器的复杂度,还可能导致模型在不同数据集上的泛化能力受限。而无锚范式直接预测目标的位置信息,简化了解码逻辑 。由于无需预先定义锚框,模型在训练和推理过程中可以更加灵活地适应不同大小和形状的目标,泛化能力得到显著提升。在一些复杂场景的目标检测任务中,无锚范式的 YOLOv6 能够更准确地检测出各种尺寸和比例的目标,展现出其强大的适应性 。
SimOTA 标签分配策略:标签分配是目标检测训练中的关键环节,直接影响模型的训练效果。YOLOv6 引入了 SimOTA 算法作为标签分配策略。与传统的静态标签分配方法不同,SimOTA 算法能够根据训练过程中的网络输出动态地分配正样本 。它通过计算预测框与真实框之间的匹配度,选择匹配度最高的预测框作为正样本,从而能够产生更多高质量的正样本,促进网络的正向优化 。具体来说,SimOTA 算法首先计算每个预测框与所有真实框之间的 IoU(交并比)和类别损失,然后将两者加权得到总体损失 。接着,根据总体损失对预测框进行排序,选取前 K 个预测框作为正样本。这种动态分配策略使得模型在训练过程中能够更好地学习到目标的特征,有效提高了检测精度 。
SIOU Bounding Box 回归损失:在边界框回归损失方面,YOLOv6 采用了 SIOU 损失函数。以往常用的 IoU、GIoU、CIoU、DIoU 等损失函数,虽然在一定程度上考虑了预测框与目标框之间的重叠程度、中心点距离、纵横比等因素,但都未能充分考虑两者之间方向的匹配性 。SIOU 损失函数则创新性地引