互联网加竞赛 YOLOv7 目标检测网络解读

news2025/3/16 3:48:59

文章目录

  • 0 前言
  • 1 yolov7的整体结构
  • 2 关键点 - backbone
  • 关键点 - head
  • 3 训练
  • 4 使用效果
  • 5 最后

0 前言

世界变化太快,YOLOv6还没用熟YOLOv7就来了,如果有同学的毕设项目想用上最新的技术,不妨看看学长的这篇文章,学长带大家简单的解读yolov7,目的是对yolov7有个基础的理解。

从 2015 年的 YOLOV1,2016 年 YOLOV2,2018 年的 YOLOV3,到2020年的 YOLOV4、 YOLOV5, 以及最近出现的
YOLOV6 和 YOLOV7 可以说 YOLO 系列见证了深度学习时代目标检测的演化。对于 YOLO 的基础知识以及 YOLOV1 到 YOLOV5
可以去看大白的 YOLO 系列,本文主要对 YOLOV7 的网络结构进行一个梳理,便于大家直观的感受。

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

1 yolov7的整体结构

在这里插入图片描述

我们先整体来看下 YOLOV7,首先对输入的图片 resize 为 640x640 大小,输入到 backbone 网络中,然后经 head
层网络输出三层不同 size 大小的 feature map ,经过 Rep 和 conv输出预测结果,这里以 coco 为例子,输出为 80
个类别,然后每个输出(x ,y, w, h, o) 即坐标位置和前后背景,3 是指的 anchor 数量,因此每一层的输出为 (80+5)x3 =
255再乘上 feature map 的大小就是最终的输出了。

2 关键点 - backbone

YOLOV7 的 backbone 如下图所示

在这里插入图片描述
总共有 50 层, 我在上图用黑色数字把关键层数标示出来了。首先是经过 4 层卷积层,如下图,CBS 主要是 Conv + BN + SiLU
构成,我在图中用不同的颜色表示不同的 size 和 stride, 如 (3, 2) 表示卷积核大小为 3 ,步长为 2。 在 config 中的配置如图。

在这里插入图片描述

经过 4个 CBS 后,特征图变为 160 * 160 * 128 大小。随后会经过论文中提出的 ELAN 模块,ELAN 由多个 CBS
构成,其输入输出特征大小保持不变,通道数在开始的两个 CBS 会有变化, 后面的几个输入通道都是和输出通道保持一致的,经过最后一个 CBS
输出为需要的通道。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
MP 层 主要是分为 Maxpool 和 CBS , 其中 MP1 和 MP2 主要是通道数的比变化。

在这里插入图片描述

backbone的基本组件就介绍完了,我们整体来看下 backbone,经过 4 个 CBS 后,接入例如一个 ELAN ,然后后面就是三个 MP +
ELAN 的输出,对应的就是 C3/C4/C5 的输出,大小分别为 80 * 80 * 512 , 40 * 40 * 1024, 20 * 20 *
1024。 每一个 MP 由 5 层, ELAN 有 8 层, 所以整个 backbone 的层数为 4 + 8 + 13 * 3 = 51 层, 从 0
开始的话,最后一层就是第 50 层。

关键点 - head

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
YOLOV7 head 其实就是一个 pafpn 的结构,和之前的YOLOV4,YOLOV5 一样。首先,对于 backbone 最后输出的 32
倍降采样特征图 C5,然后经过 SPPCSP,通道数从1024变为512。先按照 top down 和 C4、C3融合,得到 P3、P4 和 P5;再按
bottom-up 去和 P4、P5 做融合。这里基本和 YOLOV5 是一样的,区别在于将 YOLOV5 中的 CSP 模块换成了 ELAN-H 模块,
同时下采样变为了 MP2 层。

ELAN-H 模块是我自己命名的,它和 backbone 中的 ELAN 稍微有点区别就是 cat 的数量不同。

在这里插入图片描述

3 训练

在这里插入图片描述

有一点比较坑,如果想使用较大的预训练模型,需要使用train_aux.py进行训练,否则效果很差

在这里插入图片描述

4 使用效果

丝滑!
在这里插入图片描述

在这里插入图片描述

5 最后

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

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

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

相关文章

右值引用和移动语义以及C++11新增的类功能

正文开始前给大家推荐个网站,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 右值引用和左值引用 传统的C语法中就有引用的语法,而C11中新增了的右值引用语法特…

移动端防截屏录屏技术在百度账户系统实践

作者 | Seven 导读 在移动端应用的开发过程中,保护用户隐私和应用内敏感信息安全是一个不可忽视的课题。随着诈骗手段的升级,“共享屏幕”被诈骗分子频频使用,因为密码被泄露而导致受害者财物受损的事情层出不穷。只要开启了“共享屏幕”–本…

vue3使用Cascader联级选择器的懒加载+回显

效果图 页面代码 // separator是改变文字链接的方式&#xff0c; <el-cascaderseparator"-"v-model"currentRegionList":props"DeptRegionList":options"getRegionList"change"handleRegionListFun"ref"deptRegio…

Java——Windows系统怎么查看某个端口被占用和杀死进程解除占用,看这一篇就够了!!!

Windows系统端口占用 1. netstat -ano2. 查看某端口占用的PID3. tasklist|findstr "PID"4. 解除端口占用 总结 本篇文章介绍一下windows系统中怎么查看某个端口被占用以及如何解除占用。 1. netstat -ano 作用&#xff1a;查看系统中所有端口的占用情况 可以看到本…

面对勒索,金融机构该怎么办?

就在近期&#xff0c;某大行美国子公司被勒索软件攻击&#xff0c;使得部分交易系统中断&#xff0c;该行也在网站确认遭受了勒索软件攻击。这再次引发了金融机构对勒索软件的警惕与担忧&#xff0c;也凸显了一个重要的安全问题&#xff1a;犯罪分子不仅能窃取财产&#xff0c;…

MessageBox和HubSpot:数字化时代综合营销引擎

在数字时代&#xff0c;社交媒体已经成为企业与客户互动的重要平台。然而&#xff0c;随着信息的爆炸性增长&#xff0c;有效管理社交互动变得愈发具有挑战性。企业需要在海量信息中找到并回应关键的用户消息&#xff0c;这正是数字时代社交互动面临的主要挑战。为了解决这一问…

搭建Nginx文件下载站点

一、下载Nginx 首先&#xff0c;确保你的服务器上已经安装了Nginx&#xff0c;使用编译安装&#xff0c;下载最新版Nginx。 wget https://nginx.org/download/nginx-1.25.3.tar.gz tar -xf nginx-1.25.3.tar.gz二、安装Fancyindex和Nginx-Fancyindex-Theme模块 # 下载Fancyin…

k8s中的整体架构 ,pod含义,服务类型,网络通讯等

k8s中的整体架构 &#xff0c;pod含义&#xff0c;服务类型&#xff0c;网络通讯等 k8s整体架构pod内部和pod之间的通讯k8s的组件 k8s整体架构 上图中&#xff0c;较大的红框是k8s中的master节点&#xff0c;负责接受请求&#xff0c;调度任务&#xff0c;管理节点等&#xff0…

【网络奇缘】——奈氏准则和香农定理从理论到实践一站式服务|计算机网络

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 &#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 失真 - 信号的变化 影响信号失真的因素&#xff1a; ​编辑 失真的一种现象&#xff1a;码间…

推广主要指标及定义

推广主要指标以直通车为例解释&#xff0c;如图所示 1.展示量&#xff1a;当消费者搜索某个词&#xff0c;推广计划在天猫直通车展示位上被买家看到的次数&#xff08;去掉被消费者快进划过、主图未完金展现等情况产生的曝光)&#xff1b; 2.点击量&#xff1a;消费者看到广告…

iPad绘画之旅:从小白到文创手账设计的萌系简笔画探索

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 iPad的出现&#xff0c;不仅改变了我们对电子设…

[足式机器人]Part4 南科大高等机器人控制课 CH11 Bascis of Optimization

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;CLEAR_LAB 笔者带更新-运动学 课程主讲教师&#xff1a; Prof. Wei Zhang 课程链接 &#xff1a; https://www.wzhanglab.site/teaching/mee-5114-advanced-control-for-robotics/ 南科大高等机器人控制课 Ch11 Bascis o…

QT小技巧 - 使用QMovie进行gif切帧

简介 使用QMovie 将 gif 进行切帧&#xff0c; magick 进行合并代码 QString gifPath "E:\\workspace\\qt\\gif2imgs\\203526qre64haq3ccoobqi.gif"; // 你的图片QMovie movie(gifPath); movie.setCacheMode(QMovie::CacheNone);qDebug() << movie.frameCou…

Blender动画怎么云渲染?一分钟学会渲染速度提升数十倍

1.Blender为什么需要渲染&#xff1f; Blender是一款功能强大且备受欢迎的开源3D建模和渲染软件&#xff0c;为设计师、艺术家和动画制作人提供了无尽的创作可能。随着其视觉质量和功能的不断提高和完善&#xff0c;Blender项目的渲染时间也显著增加&#xff0c;越来越多的设计…

电子信息工程学Python C++还是Java?

电子信息工程学Python C还是Java? 在开始前我有一些资料&#xff0c;是我根据自己从业十年经验&#xff0c;熬夜搞了几个通宵&#xff0c;精心整理了一份「C的资料从专业入门到高级教程工具包」&#xff0c;点个关注&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&a…

flex 属性3

order 属性定义项目的排列顺序。数值越小&#xff0c;排列越靠前&#xff0c;默认为0 。 通过align-self 属性&#xff0c;可以单独调整某个伸缩项目的对齐方式 默认值为 auto &#xff0c;表示继承父元素的 align-items 属性。

西南科技大学计算机网络实验二 (IP协议分析与以太网协议分析)

一、实验目的 通过分析由跟踪执行traceroute程序发送和接收捕获得到的IP 数据报,深入研究在IP 数据报中的各种字段,理解IP协议。基于ARP命令和Ethereal进行以太网帧捕获与分析,理解和熟悉ARP协议原理以及以太网帧格式。 二、实验环境 与因特网连接的计算机网络系统;主机操…

Bluetooth Mesh 入门学习干货,参考Nordic资料(更新中)

蓝牙网状网络&#xff08;Bluetooth mesh&#xff09;概念 概述 蓝牙Mesh Profile | Bluetooth Technology Website规范&#xff08;Mesh v1.1 后改名Mesh ProtocolMesh Protocol | Bluetooth Technology WebsiteMesh Protocol&#xff09;是由蓝牙技术联盟(Bluetooth SIG)开…

SpringBoot 3.2.0 基于SpringDoc接入OpenAPI实现接口文档

依赖版本 JDK 17 Spring Boot 3.2.0 SpringDoc 2.3.0 工程源码&#xff1a;Gitee 导入依赖 <properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEnco…