YOLOV7技术要点归纳


前言

继美团发布YOLOV6之后,YOLO系列原作者也发布了YOLOV7。
YOLOV7主要的贡献在于:

1.模型重参数化
YOLOV7将模型重参数化引入到网络架构中,重参数化这一思想最早出现于REPVGG中。
2.标签分配策略
YOLOV7的标签分配策略采用的是YOLOV5的跨网格搜索,以及YOLOX的匹配策略。
3.ELAN高效网络架构
YOLOV7中提出的一个新的网络架构,以高效为主。
4.带辅助头的训练
YOLOV7提出了辅助头的一个训练方法,主要目的是通过增加训练成本,提升精度,同时不影响推理的时间,因为辅助头只会出现在训练过程中。


一、YOLOV7是什么?

YOLO算法作为one-stage目标检测算法最典型的代表,其基于深度神经网络进行对象的识别和定位,运行速度很快,可以用于实时系统。
YOLOV7是目前YOLO系列最先进的算法,在准确率和速度上超越了以往的YOLO系列。
了解YOLOV7是对目标检测算法研究的一个必须步骤。

二、论文贡献

1.设计了几种可训练的Bag-of-Freebies方法,使得实时目标检测在不增加推理代价的情况下,大大提高了检测精度;
2.对于目标检测方法的发展,我们发现了两个新的问题,即重新参数化的模块如何替换原始模块,以及动态标签分配策略如何处理对不同输出层的分配。此外,我们还提出了解决这些问题所产生的困难的方法。
3.提出了实时目标检测器的“扩展”和“复合缩放”方法,可以有效地利用参数和计算;
4.论文提出的方法可以有效地减少现有实时目标检测器约40%的参数和50%的计算量,并具有更快的推理速度和更高的检测精度。

三、相关工作

  • 更快更强的网络架构
  • 更有效的特征集成方法
  • 更准确的检测方法
  • 更鲁棒的损失函数
  • 更有效的标签分配分配
  • 更有效的训练方法

四、网络架构

请添加图片描述

五、重参数化

Step1. 融合卷积层( identity )和 BN 层,再对融合后的 1x1 卷积和 identity 进行补零(类似 padding 操作)扩展成 3x3 大小的卷积核;
Step2. 利用卷积的可加性,将 3 个 3x3 卷积合并为一个;
Step3. 完成结构重参数化,得到 plain 形式的推理模型(上一层输出为下一层输入,没有skip等分支操作)。请添加图片描述

六、模型缩放

模型缩放通过扩大或缩小baseline,使其适用于不同的计算设备。模型缩放方法通常包括不同的缩放因子,如:

  • input size(输入图像大小)
  • depth(层数)
  • width(通道数)
  • stage(特征金字塔数量)

从而在网络的参数量、计算量、推理速度和精度方面实现很好的权衡。网络架构搜索(NAS)也是目前常用的模型缩放方法之一。

七、E-ELAN

结构图

在这里插入图片描述

分组卷积

将卷积的输入feature map分成组,每个卷积核也相应地分成组,在对应的组内做卷积。

如下图所示,图中分组数,即上面的一组feature map只和上面的一组卷积核做卷积,下面的一组feature map只和下面的一组卷积核做卷积。每组卷积都生成一个feature map,共生成group组feature map。
请添加图片描述

八、损失函数

  • 目标置信度损失:BCEWithLogitsLoss
  • 分类损失采用:BCEWithLogitsLoss
  • 坐标损失采用:CIoU损失

BCEWithLogitsLossBCELoss的区别:
该loss 层包括了 Sigmoid 层和
BCELoss 层,故而神经网络的输出无需经过sigmoid函数,其他都是一样的

九、动态标签分配策略

步骤

①yolov5:使用yolov5正负样本分配策略分配正样本。

②YOLOX:计算每个样本对每个GT的Reg+Cla loss(Loss aware)

③YOLOX:使用每个GT的预测样本确定它需要分配到的正样本数(Dynamic k)

④YOLOX:为每个GT取loss最小的前dynamic k个样本作为正样本

⑤YOLOX:人工去掉同一个样本被分配到多个GT的正样本的情况(全局信息)

软标签

请添加图片描述

yolov5的跨网格匹配

请添加图片描述

YOLOX中的simOTA

  1. lead head中每个网格与gt如果匹配上,附加周边两个网格
  1. aux head附加4个网格(如上面导数第二幅图,匹配到浅黄+橘黄共5个网格)
  1. lead head中将top10个样本iou求和取整,而aux head中取top20。
  1. aux head更关注于recall,而lead head从aux head中精准筛选出样本。

在这里插入图片描述请添加图片描述

GitHub 加速计划 / yo / yolov7
13.13 K
4.14 K
下载
YOLOv7 - 实现了一种新的实时目标检测算法,用于图像识别和处理。
最近提交(Master分支:3 个月前 )
a207844b - 1 年前
2c612d33 - 1 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐