Beyond YOLOv8!| YOLOv6 v3.0 is coming!

简介: Beyond YOLOv8!| YOLOv6 v3.0 is coming!

640.png


Paper: https://arxiv.org/pdf/2301.05586.pdf

Code: https://github.com/meituan/YOLOv6

引言

没啥好说的,YOLO 这发新的速度,股市打新都没这么猛,卷王来了都不敢吭声。今天主要是带大家光速过一遍 YOLOv6 v3.0 版本带来了更新,不做技术解读,先占个坑。

YOLOv8 才正式宣布开源没几天,YOLOv6 就在新年到来前发布版本了,该版本主要是对网络架构训练方案进行了改进。

其中:

  1. YOLOv6-N 在 COCO 数据集上以 1187 FPS 的吞吐量在 NVIDIA Tesla T4 GPU 上测试达到了 `37.5%`` 的 AP。
  2. YOLOv6-S484 FPS 下达到 `45.0%`` AP,优于同等规模的其他主流检测器(YOLOv5-S、YOLOv8-S、YOLOX-S 和 PPYOLOE-S)。
  3. 在接近的推理速度下,YOLOv6-M/L 也比其他检测器实现了更好的精度性能(分别为 50.0%/52.8%)。

此外,通过扩展的骨干网络(Backbone)和颈部(Head)设计,YOLOv6-L6 最终实时实现了 YOLO 家族的 SOTA。好了,留给百度的时间已经不多了,现在离 2023 年农历新年还有6天。

贡献

  • 应用双向串联(BiC)模块更新了检测器的颈部,以提供更准确的定位信号。
  • 将 YOLOv5/v8 中的 SPPF 模块简化为 SimCSSPSPP 模块,在速度几乎保持不变的同时提升精度。
  • 提出了一种 anchor-aided 的辅助训练(AAT)策略,以在不影响推理效率的情况下同时享受到 Anchor-basedAnchor-free 范式的优势。
  • 将 YOLOv6 的 Backbone 和 Head 加多一个 Stage,以加强高分辨率输入图像的性能。
  • 采用了一种新的自蒸馏策略来提高 YOLOv6 小模型的性能,其中 DFL 的较重分支在训练期间被用作增强的辅助回归分支,并在推理时被移除以避免显着的速度下降。

方法

YOLOv6 v3.0 Framework

Network Design

在实践中,多尺度特征集成已被证明是目标检测的关键和有效组成部分。特征金字塔网络(FPN)被提议通过自上而下的路径聚合高级语义特征和低级特征,从而提供更准确的定位。随后,为了增强分层特征表示的能力,在双向 FPN 上出现了新的工作,如 PANet、BiFPN 等。

PANet 在 FPN 之上添加了一个额外的自底向上路径,以缩短低级和顶层特征的信息路径,这有助于从低级特征传播准确的信号。BiFPN 则为不同的输入特征引入了可学习的权重,并简化了 PAN 以实现更好的性能和更高的效率。PRB-FPN 被提议通过具有双向融合和相关改进的并行 FP 结构来保留高质量的特征以进行准确定位。

受上述工作的启发,YOLOv6 设计了一个增强型 PAN 作为该网络架构的检测 Head。为了在不带来过多计算负担的情况下增强定位信号,提出了一个双向连接模块来聚合三个相邻层的特征图,它将来自主干  的额外低级特征融合到  中。在这种情况下,可以保留更准确的定位信号,这对于小物体的定位具有重要意义。

此外,作者将 SPPF 模块简化为类似 CSP 的版本,称为 SimCSSPPPF  模块,增强了特征表示能力。特别的,通过缩小隐藏层的通道和 SPP 来修改 YOLOv7 中的 SimSPPCSPC 块。最后,再将 CSPBlock 升级为 RepBlock(适用于小型模型)或 CSPStackRepBlock(适用于大型模型),并相应地调整宽度和深度。

总的来说,YOLOv6 的颈部命名为 RepBi-PAN,其框架如上图所示。

Anchor-Aided Training

YOLOv6 是一个 anchor-free 检测器,追求更高的推理速度。然而,通过实验发现,与 anchor-free 模式相比,anchor-base 的范式在相同设置下为 YOLOv6-N 带来了额外的性能提升,如下表所示:

神奇了

此外,采用 anchor-base 范式的 ATSS 作为 YOLOv6 早期版本中的 warm-up label assignment strategy,可以稳定训练,厉害了。

鉴于此,本文提出了锚定辅助训练(AAT),其中引入了基于锚定的辅助分支以结合基于锚定和无锚定范式的优点。它们同时应用于分类和回归头,下图清晰的显示了带有辅助装置的检测头:

在训练阶段,辅助分支和无锚框分支从独立的损失中学习,同时一同反馈信号。因此,来自辅助分支的辅助嵌入式引导信息将会被集成到 anchor-free heads 中。

Self-distillation

在 YOLOv6 的早期版本中,自蒸馏仅在大型模型(即 YOLOv6-M/L)中引入,它通过最小化教师和学生的类别预测之间的 KL 散度来应用普通知识蒸馏技术。同时采用 DFL 作为回归损失,对框回归执行类似于 LD 中提出的自蒸馏方法。其中,知识蒸馏的损失函数定义如下:

这里  和  分别表示教师和学生模型对应的分类和回归损失。

因此,总的损失函数可抽象为:

超参数  的引入是用来平衡两个损失。在训练初期,教师的软标签更容易学习。随着训练的继续,学生的表现将与老师相匹配,这样一来硬标签将对学生有更多帮助。在此基础上,可以将余弦权重衰减应用于  以动态调整来自硬标签和来自教师的软标签的信息。 的公式可定义如下:

这里, 和  分别表示当前epoch和最大的epoch数。

值得注意的是,DFL 的引入需要回归分支的额外参数,这会显着影响小模型的推理速度。因此,YOLOv6 专门为小型模型设计了解耦局部蒸馏 (DLD),在不降低速度的情况下提高性能。

具体来说,其附加了一个重辅助增强回归分支来合并 DFL。在自蒸馏过程中,学生配备了朴素回归分支和增强回归分支,而教师仅使用辅助分支。需要注意的是,这里朴素回归分支仅使用硬标签进行训练,而辅助分支根据来自教师和硬标签的信号进行更新。蒸馏后,朴素回归分支被保留,而辅助分支被移除。通过这种策略,在不影响推理效率的情况下,DFL 在蒸馏中的重回归分支的优势得到了相当大的保持。

实验

Performance comparison with SOTA methods

废话不多说,反正全面吊打就对了。

Ablation Study

总结

YOLOv6 v3.0 版本主要创新点还是集中在网络设计和训练策略这两方方面改进,这些方法极大的推动了 YOLOv6 达到实时目标检测的最新精度。整体来说创新性不是很足,但实验部分做得还算 Solid,主要还是偏向于工程实践,借用凯明最喜欢用的一句话就是:"Without bells and whistles."。挺不错的,代码也已经开源了,大家赶紧用起来。

目录
相关文章
|
7月前
|
机器学习/深度学习 数据可视化 网络架构
请你继续卷:YOLOV9
请你继续卷:YOLOV9
202 0
|
7月前
|
监控 算法 自动驾驶
YOLO
YOLO“【5月更文挑战第23天】”
107 1
|
6月前
|
机器学习/深度学习 计算机视觉 网络架构
YOLOv9这么快就来了,赶紧学起来~
YOLOv9这么快就来了,赶紧学起来~
|
机器学习/深度学习 编解码 自然语言处理
Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation论文解读
在过去的几年中,卷积神经网络(CNN)在医学图像分析方面取得了里程碑式的进展。特别是基于U型结构和跳跃连接的深度神经网络在各种医学图像任务中得到了广泛的应用。
705 0
|
7月前
|
计算机视觉
YOLOv8改进 | 2023Neck篇 | 利用Gold-YOLO改进YOLOv8对小目标检测
YOLOv8改进 | 2023Neck篇 | 利用Gold-YOLO改进YOLOv8对小目标检测
300 1
|
7月前
|
机器学习/深度学习 计算机视觉
YOLOv5改进 | 2023Neck篇 | 利用Gold-YOLO改进YOLOv5对小目标检测
YOLOv5改进 | 2023Neck篇 | 利用Gold-YOLO改进YOLOv5对小目标检测
271 0
|
机器学习/深度学习 编解码 自然语言处理
DeIT:Training data-efficient image transformers & distillation through attention论文解读
最近,基于注意力的神经网络被证明可以解决图像理解任务,如图像分类。这些高性能的vision transformer使用大量的计算资源来预训练了数亿张图像,从而限制了它们的应用。
533 0
|
自动驾驶 算法 API
YOLOX-PAI: An Improved YOLOX, Stronger and Faster than YOLOv6
我们开发了一个名为 EasyCV 的一体化计算机视觉工具箱,以方便使用各种 SOTA 计算机视觉方法。最近,我们将 YOLOX 的改进版 YOLOX-PAI 添加到 EasyCV 中。
192 0
|
机器学习/深度学习 存储 机器人
LF-YOLO: A Lighter and Faster YOLO for Weld Defect Detection of X-ray Image
高效的特征提取EFE模块作为主干单元,它可以用很少的参数和低计算量提取有意义的特征,有效地学习表征。大大减少了特征提取的消耗
161 0
|
机器学习/深度学习 编解码 并行计算
深度学习论文阅读目标检测篇(七)中文版:YOLOv4《Optimal Speed and Accuracy of Object Detection》
大多数基于 CNN 的目标检测器基本上都仅适用于推荐系统。例 如:通过城市摄像头寻找免费停车位,它由精确的慢速模型完成,而 汽车碰撞警报需要由快速、低精度模型完成。改善实时目标检测器的 精度,使其能够不仅可以用于提示生成推荐系统,也可以用于独立的 流程管理和减少人力投入。传统 GPU 使得目标检测可以以实惠的价 格运行。最准确的现代神经网络不是实时运行的,需要大量的训练的 GPU 与大的 mini bacth size。我们通过创建一个 CNN 来解决这样的 问题,在传统的 GPU 上进行实时操作,而对于这些训练只需要一个 传统的 GPU。
267 0