YOLOv6 论文学习

news2024/9/22 9:46:54

1. 解决了什么问题?

吸收了学术圈和工业界最新的目标检测方法,包括网络结构、训练策略、测试技巧、量化和优化方法。

作者有如下几点发现:

  • 目前还没有人深入研究 RepVGG 重参数化对检测任务的影响。直接缩放 RepVGG 模块的效果并不好,对于小模型而言,简单的单通道结构更好,但对于大模型来说,参数量会呈指数增加,计算量极其高昂。
  • 对重参数化的检测器做量化要格外小心,因为训练和推理时的网络结构不一致会导致性能大幅度退化。
  • 考虑到网络结构的变化,标签分配策略和损失函数设计需要进一步验证。
  • 我们可以接受改善模型表现而不增加推理成本的方案,比如知识蒸馏。

2. 提出了什么方法?

YOLOv6 涉及了网络设计、标签分配、损失函数、数据增强、量化和部署等。

2.1 网络设计

在这里插入图片描述

主干网络

主干网络对于检测模型的性能影响重大。多分支网络比单分支网络能取得更好的分类表现,但并行程度低,并增加推理延迟。像 VGG 这样的单分支计算并行程度高、内存占用少,推理效率更高。RepVGG 是一个结构重参数方法,将训练时的多分支结构与推理时的单分支结构解耦,实现速度-准确率的平衡。

作者提出了一个高效的重参数化主干网络,叫做 EfficientRep。在小模型中,训练阶段时主干网络的主要构成就是 RepBlock,如下图(a) 所示。在推理阶段,如下图(b) 所示,每个 RepBlock 都转换为一组 3 × 3 3\times 3 3×3卷积层及 ReLU 激活函数。在主流的 GPU 和 CPU 上, 3 × 3 3\times 3 3×3卷积都高度优化了,能达到很高的计算密度。因此,EfficientRep 主干网络能充分利用硬件的计算能力,降低推理延迟、增强表征能力。

但作者发现,随着模型体积的增大,单通路网络的计算成本和参数量会呈指数增长。于是作者设计了 CSPStackRep 模块,作为大中型网络的主干部分。如下图©,CSPStackRep 模块包括三个 1 × 1 1\times 1 1×1卷积层和一组子模块(训练时包括两个 RepVGG 模块,推理时包括两个 RepConv,以及一个残差连接)。此外,cross stage partial(CSP) 连接用于提升表现,不会增加多少计算成本。
在这里插入图片描述

Neck

YOLOv6 采用了 PAN 结构,延续了 YOLOv4 和 YOLOv5。使用 RepBlocks(小模型) 或 CSPStackRep(大模型) 来代替 YOLOv5 的 CSPBlocks,得到 Rep-PAN。

Head

YOLOv5 使用了一个耦合的 head,分类和回归分支的参数是共享的。而 FCOS 和 YOLOX 则解耦了两个分支,在每个分支中增加了两个 3 × 3 3\times 3 3×3卷积层来提升表现。在 YOLOv6,作者采用了一个 hybrid-channel 策略,构建更高效的解耦 head,将中间 3 × 3 3\times 3 3×3卷积层的个数降低为一个。Head 的宽度与主干和 neck 的宽度是协同缩放的。这样降低了计算成本和推理延迟。

Anchor-free

Anchor-free 检测器具有更优的泛化性和简洁性。后处理时间被大幅缩短。有两类 anchor-free 检测器:基于 anchor point 的和基于关键点的。YOLOv6 采用了 anchor point 范式,边框回归分支预测的是 anchor point 到边框四条边的距离。

2.2 标签分配

标签分配是在训练阶段,将标签分配给预先定义的 anchors。评测了多个标签分配策略,发现 TAL 效果更好,训练更稳定。

SimOTA

OTA 将目标检测的标签分配看作为最优运输问题。它从全局的角度定义每个 ground-truth 目标的正负样本。SimOTA 是 OTA 的简化版,降低了超参数个数。作者发现,SimOTA 会降低训练速度,可能造成训练不稳定。

Task Alignment Learning

TAL 首先由 TOOD 提出,该度量将分类得分和预测框质量统一起来考虑。使用该度量代替 IoU 来分配目标标签。这样,分类和回归任务不对齐的问题得到一定缓解。

TOOD 另一个贡献就是提出了任务对齐 head(T-head)。T-head 堆叠卷积层来构建交互特征,在其上是任务对齐预测器(TAP)。PP-YOLOE 将 T-head 的层注意力替换为轻量的 ESE 注意力,得到 ET-head。本文作者发现,ET-head 会降低推理速度,无法提升准确率。因此,作者保留了原设计。

此外,作者发现 TAL 要比 SimOTA 带来更多的性能提升,而且训练更稳定。因此作者采用了 TAL 作为分配策略。

2.3 损失函数

目标检测包括两个子任务:分类和定位,分别对应分类损失和边框回归损失。作者选用了 VariFocal Loss 作为分类损失,SIoU/GIoU 作为回归损失。

分类损失

Focal Loss 改进了传统的交叉熵损失,解决正负样本、容易困难样本不均衡的问题。为了解决训练和推理时,边框定位质量预测与分类不一致的问题,QFL 使用分类得分和定位质量的联合表征进一步拓展 Focal Loss。VariFocal Loss 源于 Focal Loss,但它对待正负样本并不一样,正负样本具有不同的重要度,从而平衡学习信号。

边框回归损失

IoU 系列损失

IoU 损失将预测边框的四条边看作为一个整体,它与评测时的度量保持了一致,因而更加高效。它现在有许多的变体,如 GIoU、CIoU、DIoU、SIoU 等。

概率损失

DFL 将边框的位置看作为一个离散的概率分布。它考虑了数据的模糊性与不确定性,没有引入额外的先验,有助于提升模型的定位准确性,尤其是当边框的边界是模糊的。DFLv2 设计了一个小网络,基于分布统计和实际定位质量之间的关系,提升检测表现。但是 DFL 通常输出 17 × 17\times 17×的回归数值,造成不小的计算成本,对于小模型来说不友好。在 YOLOv6-M/L 中,作者使用了 DFL。

目标损失

FCOS 引入的目标损失,降低低质量边框的得分,从而在后处理时能被滤掉。YOLOX 也使用了,加速收敛,提升准确率。但是在 YOLOv6,作者并没有发现什么效果。

2.4 其他技巧

训练更多的 Epochs

作者将训练时长从 300 个 epochs 增加到 400 个 epochs,能达到更好的收敛。

自蒸馏

为了进一步提升模型准确率,而不增加计算成本,作者使用了知识蒸馏技巧,最小化教师模型和学生模型预测结果之间的 KL 散度。教师模型就是学生模型自身,但经过了预训练,所以叫自蒸馏。KL 散度一般用于评价数据分布之间的差异。目标检测有两个子任务,只有分类任务能基于 KL 散度,直接利用知识蒸馏。但通过 DFL 损失,我们也能对边框回归使用知识蒸馏。知识蒸馏损失写作:

L K D = K L ( p t c l s ∣ ∣ p s c l s ) + K L ( p t r e g ∣ ∣ p s r e g ) L_{KD}=KL(p_t^{cls} || p_s^{cls}) + KL(p_t^{reg}|| p_s^{reg}) LKD=KL(ptcls∣∣pscls)+KL(ptreg∣∣psreg)

其中 p t c l s , p s c l s p_t^{cls},p_s^{cls} ptcls,pscls是教师模型和学生模型的类别预测结果, p t r e g , p s r e g p_t^{reg},p_s^{reg} ptreg,psreg是回归预测结果。总体损失如下:

L t o t a l = L d e t + α L K D L_{total}=L_{det}+\alpha L_{KD} Ltotal=Ldet+αLKD

其中 L d e t L_{det} Ldet是目标检测损失。 α \alpha α平衡两个损失。在训练开始阶段,教师模型的软标签很容易学习。随着训练的持续,学生模型的表现会追上教师模型,这时硬标签对学生模型更有帮助。因此作者使用了余弦退火来调节 α \alpha α,动态地调节硬标签和教师模型软标签的信息。

图像的灰色边界

在 YOLOv5 和 YOLOv7 评测模型时,会在图像周围增加一圈灰色边界,它能改善图像边缘目标的检测效果。
这一圈灰色像素会降低推理速度,但没有它们的话,模型表现会退化。作者猜测这与 Mosaic 增强的灰色边界有关系。作者修改了灰色边界的面积,将图像缩放为原图大小。这样,模型的表现得到了提升,推理速度没有下降。

量化和部署

对于工业部署,一般会采用量化对推理做加速,而且性能不会下降。PTQ 使用一个小型校准集来直接量化模型。而 QAT 则使用训练集进一步提升性能,通常与蒸馏一起使用。但由于 YOLOv6 的重参数化模块,PTQ 和 QAT 并没什么用。

重参数化优化器

RepOptimizer 提出在每一优化步骤进行梯度重参数化。该技术也很好地解决了重参数模型的量化问题。作者于是重新构建了 YOLOv6,用 RepOptimizer 来训练,得到 PTQ 友好的权重。特征图的分布大幅度变窄了,这对量化过程非常有帮助。
在这里插入图片描述

敏感性分析

作者将量化敏感的操作部分转换为浮点计算,提升 PTQ 表现。为了获得敏感性分布,采用了均方误差(MSE)、信噪比(SNR)和余弦相似度度量。通常,人们可以挑选某一层激活函数后的特征图,计算量化前后的上述度量。也可以将某一层的量化开启或关闭,然后计算其验证集 AP。

通道蒸馏的 QAT

作者觉得 PTQ 不够,又使用 QAT 提升量化后表现。为了解决训练和推理时 fake quantizers 的不一致,有必要基于 RepOptimizer 来进行 QAT。如下图,在 YOLOv6 中使用了通道蒸馏,它也是一个自蒸馏方法,教师网络是 FP32 的学生网络。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/802036.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

苹果电脑系统优化工具:Ventura Cache Cleaner for mac

Ventura Cache Cleaner for Mac是一款专门为苹果电脑开发的系统优化工具,旨在帮助用户清理和优化Mac电脑,提高系统性能和速度。该软件由美国公司Northern Softworks开发,已经推出了多个版本,适用于不同版本的Mac操作系统。 Ventu…

pdf文件太大了不能上传怎么办?这几招值得学

PDF文件是一种常见的文档格式,但有时会遇到文件太大无法上传的问题,这时候简单的做法就是直接压缩文件的大小,但很多朋友还不知道怎么操作,下面就给大家介绍几个简单好用的,一起来看看吧。 工具一、嗨格式压缩大师 这…

二十七、响应式布局练习- 美图导航栏1

目录: 准备工作界面结构开发样式设计 - style.less 一、准备工作 开发响应式设计的网页需要注意以下几点: 1.移动端优先 - 先写完移动端的界面,再写网页。 因为现在都是手机用的比较多; 2.渐进增强 - 当移动端写完后,…

【Spring Cloud Gateway 新一代网关】—— 每天一点小知识

💧 S p r i n g C l o u d G a t e w a y 新一代网关 \color{#FF1493}{Spring Cloud Gateway 新一代网关} SpringCloudGateway新一代网关💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的博客&a…

js学习 记录(二)

js学习 记录(二) 匿名函数 函数表达式

节省近2400亿,中国芯片拿下7纳米工艺,外媒:挡不住中国芯了

从去年至今中国进口的芯片减少了1400亿颗,芯片进口金额减少了300多亿美元(约合近2400亿元人民币),尤为让人高兴的是近期频频传出中国或已搞定接近7纳米的N1工艺,并将为一家中国芯片企业生产芯片。 一、中国芯片夯实成熟…

InnoDB 的隔离级别是如何实现的

点击上方↑“追梦 Java”关注,一起追梦! MySQL 数据库 InnoDB 存储引擎的隔离级别是通过锁和 MVCC 的机制实现的。 1 了解 MySQL 中锁的机制 锁是用于避免不同事务对共享资源的并发访问的产生读一致性的问题的机制。 1、表锁和行锁 InnoDB 存储引擎支持行…

如何与 Zappos 建立 EDI 连接?

Zappos 是一家享誉全球的知名在线鞋类和服饰零售商,经营范围涵盖各类时尚品牌的鞋类、服饰及配饰等,使命是为广大消费者提供方便、愉悦、优质的购物体验,让每一位顾客都能找到心仪的产品。多年来,Zappos 卖场凭借卓越的服务与产品…

通用VS垂直,讯飞星火与网易子曰不同的“大模型解法”

配图来自Canva可画 随着大模型商业化应用的提速,全世界各国都开始孵化和孕育各自的行业大模型。在此背景下,国内各个细分行业的垂直大模型,日益受到产业界的关注和重视。 相比通用大模型,垂直大模型具有门槛较低、数据质量较好且…

安装虚拟机

分区 根分区5个G 同理 交换分区 最后一个分区,默认所有

串口环形缓冲区

文章目录 一、串口环形缓冲区概念二、STC12例程(1)环形串口缓冲区结构体(2)串口环形缓冲区存和取数据(3)完整工程demo 一、串口环形缓冲区概念 串口环形缓冲区应用于嵌入式、物联网开发中处理接收串口数据…

windows C++多线程同步<3>-互斥量

windows C多线程同步<3>-互斥量 概念,如下图: 另外就是互斥对象谁拥有,谁释放 那么一个线程允许多次获取互斥对象吗? 答案是允许,但是申请多次就要释放多次,否则其他线程获取不到互…

在线进销存-亿发移动进销存管理系统,助力批发零售企业线上线下同步经营

随着移动互联网的蓬勃发展,商品进销存管理日益变得复杂而关键,数字化转型已经成为批发零售企业增强竞争力的有效工具。移动进销存管理系统为批发零售企业提供一体化 解决方案,实现线上线下同步经营,帮助企业实现对商品的有效管理&…

TDengine Cloud 加入 AWS 合作伙伴网络,助力出海企业数字化转型

近日,全托管的时序数据云平台 TDengine Cloud 正式入驻 AWS Marketplace(海外区),用户可通过 AWS Marketplace 轻松实现 TDengine Cloud 的订阅与部署,以最低的成本搭建最高效的数据处理架构。此外,早在 20…

python新手如何系统学习,走过这4个阶段成为高手

目录 python初级阶段学习 python中级阶段学习 python高级阶段学习 python进阶阶段学习 Python是一种简洁而强大的编程语言,广泛应用于软件开发、数据科学、人工智能等领域。很多新手如何系统学习python,今天我们从4个阶段来学习,就能成为高…

SpringBoot实现的旅游酒店管理系统源码附带视频运行教程

基于SpringBootMybatissThymeleaf框架系统主要有以下功能:分为前后台 前台用来展示数据,预定酒店、预定旅游、预定车票、购买保险等 后台:旅游路线管理、景点管理、酒店管理、车票管理、保险管理、攻略管理、留言管理、订单管理等后台管理员 …

关注这些问题,助你找到理想工作

导语:在寻找理想工作的过程中,有一些关键问题需要我们特别关注。了解并回答这些问题将有助于我们更好地定位自己,并找到符合自身需求和目标的职位。本文将介绍一些在找工作时需要关注的重要问题。 个人定位:首先,我们…

失去SSL证书,会对网站安全造成什么影响?

作为网络世界中的“身份证”,SSL证书可以在网络世界中证明你是一个真实可信的企业或个人网站,而不是一个钓鱼网站。且在网站的服务器上部署SSL证书后,可以使网站与访问者之间通过SSL协议建立安全的加密连接,确保在Web服务器和浏览…

H5编辑二维码,如何将图文、视频、文件、链接全都展示在一个页面?

在二维彩虹可以制作各种类型的二维码。今天我们要介绍的是二维彩虹的【H5编辑二维码】,包括基本功能、应用场景、制作步骤,以及其优势特点。现在就来随我们一次看看吧! 一,认识H5编辑二维码 二维彩虹的【H5编辑】是一款功能非常…

【数据分享】1999—2021年地级市劳动力就业及工资情况(Shp/Excel格式)

在之前的文章中,我们分享过基于2000-2022年《中国城市统计年鉴》整理的1999-2021年地级市的人口相关数据、各类用地面积数据、污染物排放和环境治理相关数据、房地产投资情况和商品房销售面积、社会消费品零售总额和年末金融机构存贷款余额、地方一般公共预算收支状…