yolov7论文学习——创新点解析、网络结构图

news2024/11/26 10:51:06

创新点

1、提出了E-ELAN,但是只在yolov7-e6e中使用到。
2、yolov7基于拼接模型的缩放方法,在yolov7x中使用到。
3、将重参数化卷积应用到残差模块中或者用到基于拼接的模块中去。RepConvN
4、提出了两种新的标签分配方法

一、ELAN和E-ELAN

1、 ELAN

yolov7使用大量的ELAN作为基础模块。
在这里插入图片描述

   [-1, 1, Conv, [64, 1, 1]],
   [-2, 1, Conv, [64, 1, 1]],
   [-1, 1, Conv, [64, 3, 1]],
   [-1, 1, Conv, [64, 3, 1]],
   [-1, 1, Conv, [64, 3, 1]],
   [-1, 1, Conv, [64, 3, 1]],
   [[-1, -3, -5, -6], 1, Concat, [1]],
   [-1, 1, Conv, [256, 1, 1]],  # 11

2、E-ELAN

2分组的卷积,本质上就是ELAN的拓展 。只在yolov7-e6e中提到,是将yolov7-e6中的ELAN并行处理后得到的。
在这里插入图片描述
在这里插入图片描述

二、模型缩放

设计了同时改变深度和宽度的模型缩放方法,yolov7x是对yolov7进行了缩放。
增加了两个卷积层,增加了深度,并且输入数量,拼接后输出数量,以及卷积层输出的通道数量都是原来的1.25倍,从这个角度考虑增加了宽度。
在这里插入图片描述

三、重参数化卷积的改进 RepConvN

1、RepConv

重参数化卷积,使用3个不同的卷积层训练完成后,进行合并。重参数化卷积虽然在VGG上取得较好的成果,但是在残差网络中并没有取得很好的成果 。
在这里插入图片描述

2、RepConvN

而RepConvN是在重参数化卷积的基础上去掉了恒等连接。将重参数化卷积应用到残差模块或者用到基于拼接的模块中去。但是在代码中使用了最简单的重参数化卷积,并没有使用提出的这个结论。

为什么要去掉恒等连接?
因为残差网络本身存在恒等连接,而原本的重参数化卷积RepConv也有恒等连接,两者之间起了冲突,所以要去掉原本重参数化卷积RepConv中的恒等连接,成为RepConvN。

在这里插入图片描述

四、软标签和硬标签

在这里插入图片描述
硬标签是yolov5所采用的方式,将目标值和预测值一起计算损失值;软标签是yolov7所使用的方式,将目标值的预测值通过分配器得到新的目标值,再和预测值一起计算损失值。

五、两种新的标签分配方法

在这里插入图片描述
粗粒度和细粒度。粗标签是5个网格,细标签是3个网格。

六、yolov7网络结构图

在这里插入图片描述
yolov7中将neck划分到了head里。
在这里插入图片描述
池化层和卷积。输出的通道数相较于输入没有改变,但是尺寸减半了,相当于复杂版的最大池化层。
在这里插入图片描述

class SPPCSPC(nn.Module):
    # CSP https://github.com/WongKinYiu/CrossStagePartialNetworks
    def __init__(self, c1, c2, n=1, shortcut=False, g=1, e=0.5, k=(5, 9, 13)):
        super(SPPCSPC, self).__init__()
        c_ = int(2 * c2 * e)  # hidden channels
        self.cv1 = Conv(c1, c_, 1, 1)
        self.cv2 = Conv(c1, c_, 1, 1)
        self.cv3 = Conv(c_, c_, 3, 1)
        self.cv4 = Conv(c_, c_, 1, 1)
        self.m = nn.ModuleList([nn.MaxPool2d(kernel_size=x, stride=1, padding=x // 2) for x in k])
        self.cv5 = Conv(4 * c_, c_, 1, 1)
        self.cv6 = Conv(c_, c_, 3, 1)
        self.cv7 = Conv(2 * c_, c2, 1, 1)

    def forward(self, x):
        x1 = self.cv4(self.cv3(self.cv1(x)))
        y1 = self.cv6(self.cv5(torch.cat([x1] + [m(x1) for m in self.m], 1)))
        y2 = self.cv2(x)
        return self.cv7(torch.cat((y1, y2), dim=1))

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、yolov7x的网络结构图

在这里插入图片描述在这里插入图片描述

八、检测模块

测试中用的都是detect模块,在训练中,使用的是Idetect和Iauxdetect模块。I的意思是implicit隐式的意思。对于隐式内容可以通过学习yolo-R来了解。
在这里插入图片描述
IDetect
在这里插入图片描述

在这里插入图片描述

九、文件之间的关系

在这里插入图片描述

1、yolov7和yolov7x是常规GPU的模型。yolov7x是在yolov7的基础上在颈部进行堆栈缩放,并使用所提出的复合缩放方法对整个模型的深度和宽度进行缩放得到的。
2、yolov7-d6、yolov7-e6、yolov7-e6e和yolov7-w6是云GPU的模型。对于yolov7-w6,我们使用新提出的复合缩放方法来获得yolov7-e6和yolov7-d6。此外,我们将所提出的E-ELAN用于yolov7-e6,从而完成yolov7-e6e
3、yolov7-tiny和yolov7-tiny-silu是边缘GPU的模型。它们的区别只在于所使用的激活函数不同。yolov7-tiny它将使用Leaky ReLU作为激活函数。对于其他模型,我们使用SiLU作为激活函数。

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

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

相关文章

AI 如何应对 DevOps 监控和可观察性挑战

持续监控和可观察性用例 CI异常检测: AI可以分析历史数据以检测持续集成阶段的异常。任何不寻常的变化都可以在进入下一阶段之前进行标记以供审查。IBM Watson AnomalyDetection 等工具可以通过使用 AI 检测模式和异常情况来帮助识别这些异常情况。 代码质量保证&…

如何快速定位linux故障

1、背景 有时候会遇到一些疑难杂症,并且监控插件并不能一眼立马发现问题的根源。这时候就需要登录服务器进一步深入分析问题的根源。那么分析问题需要有一定的技术经验积累,并且有些问题涉及到的领域非常广,才能定位到问题。所以&#xff0c…

防火墙详解

1、什么是防火墙? 防火墙( Firewall )是防止火灾发生时,火势烧到其它区域,使用由防火材料砌的墙。 后来这个词语引入到了网络中,把从外向内的网络入侵行为看做是火灾,防止这种入侵的策略叫做防…

批量多开谷歌浏览器丨非扩展chrome浏览器实现分身多开微博 切换多个微博帐号工具

教你多开用Google 浏览器 实现Chrome怎样同时登录多个微博号 按照此教程多开后的Google浏览器可以实现相互的独立性,每个浏览器上收藏的书签、增加的拓展程序都可以实现独立性并可实现独立记忆性 一、安装正版Google浏览器 1:安装位置最好选择非C盘 二…

基于低代码平台打造的焙乐道销售支持系统

编者按:低代码平台说了那么多,在实际应用中又是怎样体现的它的种种优势呢?今天小编结合实际案例来说说。 本文是以最大的烘焙原料产商——焙乐道的销售支持系统为例子,进行说明。 客户说明:焙乐道是一家国际性集团公司…

凝思系统docker离线安装

# linux离线安装docker (18.03.1-ce) ## 解压,得到docker文件夹 tar xzvf docker-18.03.1-ce.tgz ## 将docker文件夹里面的所有内容复制到/usr/bin目录 sudo cp docker/* /usr/bin/ ## 开启docker守护进程 sudo dockerd & 当终端中显示【API list…

有参构造,无参构造,半缺省构造

目录 有参构造 无参构造 半缺省构造 有参构造 C 中的有参构造函数(Parameterized Constructor)是一个类中带有参数的特殊成员函数,用于创建对象并根据传入的参数对对象的成员进行初始化。有参构造函数在定义时需要指定参数的类型和名称&am…

相机- yolo训练集 环境搭建

一、环境准备 运行cmd执行python --version 检查是否安装成功 安装pip,打开运行指令 python -m ensurepip --upgrade 打开官网,下载get_pip.py 运行cmd 运行指令python get-pip.py 运行cmd 运行指令 pip --version 显示pip版本即安装成功 根据上面获…

Lucene介绍与入门使用

https://github.com/apache/lucene Lucene简介 Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎…

宁波阿里云代理商:阿里巴巴CEO张勇:阿里云是一家云计算产品公司

4月26日,在2023阿里云合作伙伴大会上,阿里巴巴董事会主席兼CEO、阿里云智能CEO张勇表示,阿里云的核心定位是一家云计算产品公司,生态是阿里云的根基。 张勇表示,当前我们正站在智能化的起点,这是让“被集成…

基于Python的二维码识别系统设计与实现

博主介绍:擅长Java、微信小程序、Python、Android等,专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案例…

基于单片机智能加湿器 水位防干烧加湿器的设计与实现

功能介绍 以51/STM32单片机作为主控系统;LCD1602液晶显示当前温湿度,当前模式,湿度下限;按键设置湿度下限,当湿度低于下限时开启加湿器;水位传感器检查加湿器是否有水,如果没有水到话加湿器不进行工作,蜂鸣…

Spring Security OAuth2.0(2):基于session的认证方式

文章目录 认证流程创建工程1 创建maven工程2. 实现认证功能3. 会话功能4. 授权功能 认证流程 \qquad 基于session的认证方式如下 \qquad 它的交互流程是,用户认证成功后,在服务端生成用户相关的数据保存在session(当前会话)中,发给客户端的s…

银河麒麟服务器v10 sp1 部署.Net6.0 http https

上一篇:银河麒麟服务器V10 SP1 .Net6.0 开机自动启动_csdn_aspnet的博客-CSDN博客 参考微软官网:ASP.NET Core 中的 Kestrel Web 服务器 | Microsoft Learn 为 ASP.NET Core Kestrel Web 服务器配置终结点 | Microsoft Learn 注意:使用此…

【云效】使用流水线进行应用部署

目录 前言一、部署应用步骤1、创建流水线2、编辑流水线源3、编辑java构建上传4、编辑主机部署 前言 「流水线」,又名「Flow」,是阿里云「云效」产品矩阵中的一款企业级自动化研发交付工具。 它提供了灵活易用的持续集成、持续验证和持续发布功能&#…

基于springboot+mybatis-plus+mysql+vue实现物流信息管理系统(课设)

基于springbootmybatis-plusmysqlvue实现物流信息管理系统(课设) 一、系统介绍1、系统主要功能:2、环境配置 二、功能展示1.登陆2.用户管理3.个人信息4.物流管理 三、其它系统四、获取源码 一、系统介绍 1、系统主要功能: 用户&…

ElasticSearch 快速上手教程 (二) —— 基本概念术语

上一部分,我们讲解了 ES 的一些基本概念和应用场景,以及如何在本机搭建一个 ELK 测试环境。现在这篇文章带你了解 ES 当中一些基本术语以及相关的工作原理。 基本的概念术语 node(节点) ES 的一个运行实例,存储了部分文档数据,属…

文件包含基础

实验目的 通过本实验,理解文件包含的基本方法及文件包含需要注意的问题,为熟练掌握文件包含方法及防御奠定基础。 实验环境 操作机:kali 靶机:Windows 实验地址:http://靶机ip/exp/include/include1.php 用户名&…

ABC 195 C

不知道该怎么解释这道题&#xff0c;反正我不太会&#xff0c;感觉很帅 题意&#xff1a; Code&#xff1a; #include <bits/stdc.h>#define int long longusing namespace std;const int mxn2e310; const int mxe2e510; const int mod1e97; const int Inf1e18;int N;v…

基于FreeRTOS的嵌入式设备管理关键技术研究及实现(学习四)

硬件平台 终端设备的硬件选型主要由STM32芯片作为处理器&#xff0c;板载时钟电路和电源电路以及对外通信串口&#xff0c;并挂载AM2302温湿度传感器来实时收集环境相关信息&#xff0c;将收集到的信息通过NB-IoT通信模组上传到云端&#xff0c;从而实现整个环境监测功能。 主…