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."。挺不错的,代码也已经开源了,大家赶紧用起来。

目录
相关文章
|
移动开发 JavaScript 小程序
uView Popup 弹出层
uView Popup 弹出层
301 0
|
存储 前端开发 JavaScript
【Linux奇遇记】我和Linux的初次相遇
【Linux奇遇记】我和Linux的初次相遇
1073 1
|
缓存 关系型数据库 MySQL
MariaDB的安装与配置
MariaDB的安装与配置
2406 0
|
数据采集 监控 数据安全/隐私保护
ERP系统中的人力资源管理与员工绩效评估解析
【7月更文挑战第25天】 ERP系统中的人力资源管理与员工绩效评估解析
765 1
|
域名解析 存储 网络协议
Linux中搭建主从DNS服务器
搭建主从DNS架构以提升DNS服务的高可用性、负载均衡和数据冗余。主服务器配置涉及编辑`/etc/named.conf`,设置监听IP和允许查询的范围,并定义主区域及允许的数据传输。从服务器配置需指定为奴隶类型,并指明主服务器的IP。测试表明正反向查询解析均正常。注意配置文件的语法正确性和权限设置。
545 0
|
Prometheus 监控 Cloud Native
如何优化Java应用的内存使用
如何优化Java应用的内存使用
常用工具类-Arrays
本文介绍了Java工具类Arrays和Arrays.ArrayList的常用功能,包括数组的打印、创建、比较、排序、检索以及转换为List的方法,以及setAll和parallelSetAll的使用,展示了如何通过这些工具类便捷地操作数组。
常用工具类-Arrays
|
存储 关系型数据库 MySQL
【阿里规约】阿里开发手册解读——数据库和ORM篇
从命名规范、建表规范、查询规范、索引规范、操作规范等角度出发,详细阐述MySQL数据库使用过程中所需要遵循的各种规范。
【阿里规约】阿里开发手册解读——数据库和ORM篇
|
存储 监控 搜索推荐
深度解析:装机设置全攻略,打造个性化高性能电脑
装机不仅仅是一个技术活,更是一个充满乐趣和创造性的过程。通过精心的硬件选择、兼容性的考虑、操作系统的安装与优化、个性化的设置以及性能测试与调优,你可以打造出一台符合自己使用习惯、性能出众的个性化电脑。同时,不要忽视备份与恢复策略的重要性,确保你的数据和系统安全无忧。希望本文能够为你提供有用的指导和启发,让你在装机的道路上更加得心应手。
338 1
|
数据采集 小程序 网络安全
云擎技术---分析工信部APP备案的“传闻”
APP备案并非新事物,自2005年起已有非经营性互联网信息服务备案制度。备案针对的是网站主办者,而非用户,不涉及个人用户网络访问。网络接入服务提供者包括ISP和IDC,不限于三大运营商。通知要求不为未备案网站提供接入,但不影响国外软件使用。个人开发者不能涉及经营性内容,备案审核时长1-20个工作日。境内服务器和国内应用商店需备案,境外则无需。手机厂商不会开启白名单制,仅实行黑名单制。APP备案与民营经济发展壮大意见不冲突,工信部有权颁布相关规定。该政策不存在逐步试探底线情况,所有解读均有法律依据。
364 3
云擎技术---分析工信部APP备案的“传闻”