YOLOV7详细解读(三)技术要点归纳

这篇具有很好参考价值的文章主要介绍了YOLOV7详细解读(三)技术要点归纳。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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%的计算量,并具有更快的推理速度和更高的检测精度。

三、相关工作

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

四、网络架构

YOLOV7详细解读(三)技术要点归纳

五、重参数化

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

六、模型缩放

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

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

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

七、E-ELAN

结构图

YOLOV7详细解读(三)技术要点归纳

分组卷积

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

如下图所示,图中分组数,即上面的一组feature map只和上面的一组卷积核做卷积,下面的一组feature map只和下面的一组卷积核做卷积。每组卷积都生成一个feature map,共生成group组feature map。
YOLOV7详细解读(三)技术要点归纳

八、损失函数

  • 目标置信度损失: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的正样本的情况(全局信息)

软标签

YOLOV7详细解读(三)技术要点归纳

yolov5的跨网格匹配

YOLOV7详细解读(三)技术要点归纳

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中精准筛选出样本。

YOLOV7详细解读(三)技术要点归纳YOLOV7详细解读(三)技术要点归纳文章来源地址https://www.toymoban.com/news/detail-450414.html

到了这里,关于YOLOV7详细解读(三)技术要点归纳的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++】lambda表达式语法详细解读(代码演示,要点解析)

    前言 大家好吖,欢迎来到 YY 滴C++系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁 主要内容含: 欢迎订阅 YY 滴C++专栏!更多干货持续更新!以下是传送门! YY的《C++》专栏 YY的《C++11》专栏 YY的《Linux》专栏 YY的《数据结构》专栏 YY的《C语言基础》专栏 YY的《初学者易

    2024年02月03日
    浏览(48)
  • 【YOLOv7】使用 YOLOv7 做目标检测 (使用自己的数据集 + 图解超详细)

    论文链接:https://arxiv.org/abs/2207.02696 GitHub 链接:https://github.com/WongKinYiu/yolov7 修改YOLOV7配置 data.yaml 新建data.yaml文件,配置yolov7的数据集,数据集为 YOLO格式 。 weights 新建weights文件夹,下载yolov7.pt https://github.com/WongKinYiu/yolov7/releases/download/v0.1/yolov7.pt。 train.py 修改如下的参数,

    2024年02月12日
    浏览(35)
  • YOLOv7训练自己的数据集(超详细)

       目录  一、准备深度学习环境 二、 准备自己的数据集 1、创建数据集  2、转换数据格式  3、配置文件  三、模型训练 1、下载预训练模型 2、训练 四、模型测试  五、模型推理 YOLOv7训练自己的数据集整个过程主要包括:环境安装----制作数据集----模型训练----模型测试

    2024年02月04日
    浏览(71)
  • 2023年软考要点归纳-信息系统项目管理

    项目可行性研究报告包含以下内容 :项目概述,项目建设单位概况,需求分析和项目建设的必要性,总体建设方案,本期项目建设方案,项目招标方案,环保、消防、职业安全,项目组织机构和人员培训,项目实施进度,投资估算和资金来源,效益与评价指标分析,项目风险

    2024年02月07日
    浏览(52)
  • YOLOv7-tiny网络结构图及yaml文件 详细备注

    池化层,默认表示两倍下采样, 就是表示Conv+BN+LeakyReLU [-1, 1, Conv, [256, 1, 1, None, 1, nn.LeakyReLU(0.1)]] 结构图 yaml yaml文件中如下表示,直接看最后一层输出通道数,尺寸不会变化,SP模块默认设置卷积Pading为卷积核的一半大小 构建代码 yaml文件中的SP表示如下 结构图 yaml文件表示

    2024年02月03日
    浏览(62)
  • 【学习笔记、面试准备】机器学习西瓜书要点归纳和课后习题参考答案——第3章

    目录地址 线性模型定义: 其中x是输入向量 优点:形式简单,易于建模,可解释性好。 输入预处理:连续值可以直接用,离散值若有序,可以按序赋值变连续(如“高,中,低”变为“1,0.5,0”,否则可以单热点码编码。 回归常用MSE,要偏导数为0,当输入是一维时可以算

    2024年02月08日
    浏览(43)
  • YOLOV5详细解读

    本文主要是对基于深度学习的目标检测算法进行细节解读,以YOLOV5为例; 基于深度学习的目标检测主要包括训练和测试两个部分。 训练阶段 训练的目的是利用训练数据集进行检测网络的参数学习,其中训练数据集包含大量的视觉图像和标注信息(物体位 置及类别)。训练阶

    2024年02月04日
    浏览(38)
  • 【YOLO系列】基于YOLOv7模型的目标检测与实现——利用PASCALVOC数据集(超详细,看这一篇足矣)

    最近因为在公司实习,迷上了计算机视觉,对目标检测这一方向饶有兴趣。再加上yolov7的论文也才出了不久,笔者就想着带着学习的心态,搞一搞基于yolov7的目标检测的实现。同时笔者也是踩了无数的坑🕳,心态几近崩溃,前前后后搞了一个多星期才跑完,网上的资料零零碎

    2024年02月13日
    浏览(36)
  • 【YOLO系列】YOLOv5超详细解读(网络详解)

    吼吼!终于来到了YOLOv5啦! 首先,一个热知识:YOLOv5没有发表正式论文哦~ 为什么呢?可能YOLOv5项目的作者Glenn Jocher还在吃帽子吧,hh 前言 一、YOLOv5的网络结构  二、输入端 (1)Mosaic数据增强 (2)自适应锚框计算 (3)自适应图片缩放 三、Backbone (1)Focus结构 (2)CSP结构

    2023年04月09日
    浏览(68)
  • Yolov1原理详细解读及实战(二)实战篇

    在Yolov1原理详细解读及实战(一)理论篇 中,我们对Yolov1网络结构、算法流程、训练及推理原理进行了详细剖析,本章进入实战环节,话不多说,马上开始! vscode+WSL:Ubuntu 18.04+python 3.9.7 YOLOv1是Darknet深度学习框架进行训练和推理,首先安装Darknet。 步骤1:安装Darknet 步骤2:下

    2024年02月11日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包