关于YOLO模型架构中的strides

  在Ultralytics YOLO模型架构中,m.stride是一个非常关键的属性,用于描述网络在不同尺度(scale)上的空间压缩程度。解释m.stride的原理之前,我们首先要了解深度学习中卷积神经网络(CNN)的基本工作原理。

卷积神经网络(CNN)和Stride

  卷积神经网络通过一系列的卷积层、池化层等对输入数据进行处理。在这个过程中,特征图(Feature Map)的空间尺寸逐渐减小,而深度(即特征的数量或通道数)逐渐增加。这种空间尺寸的缩减是通过卷积层的stride和池化层实现的。其中,stride是卷积过程中滤波器(kernel)移动的步长。如果stride大于1,则特征图的空间维度会缩减,有助于增大感受野并减少计算量。

m.stride 在YOLO中的应用

  在YOLO的架构中,模型通常会有多个输出尺度,这允许模型能够检测在多个尺度上的物体。这意味着同一幅图像将被处理成不同大小的特征图,以便检测不同大小的物体。m.stride属性就是用来表示这些不同尺度下,输入图像相对于输出特征图的缩减比例。
  例如,假设输入图像大小为[3, 640, 640](通道数, 高度, 宽度),而某一特征图的大小为[255, 20, 20](通道数, 高度, 宽度),则该特征图的stride可以计算为640 / 20 = 32。这意味着特征图上的每一个单元格,对应原始图像上32x32大小的区域。YOLO模型中的m.stride数组就记录了所有尺度上的这种缩减比例。

参考yolov8-p2.yaml:

# Ultralytics YOLO 🚀, AGPL-3.0 license
# YOLOv8 object detection model with P2-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect# Parameters
nc: 80 # number of classes
scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'# [depth, width, max_channels]n: [0.33, 0.25, 1024]s: [0.33, 0.50, 1024]m: [0.67, 0.75, 768]l: [1.00, 1.00, 512]x: [1.00, 1.25, 512]# YOLOv8.0 backbone
backbone:# [from, repeats, module, args]- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2=========80x320x320- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4=========160x160x160- [-1, 3, C2f, [128, True]]  #2=========160x160x160- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8=========320x80x80- [-1, 6, C2f, [256, True]]  #4=========320x80x80- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16=========640x40x40- [-1, 6, C2f, [512, True]] #6=========640x40x40- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32=========640x20x20- [-1, 3, C2f, [1024, True]] #8=========640x20x20- [-1, 1, SPPF, [1024, 5]] # 9=========640x20x20# YOLOv8.0-p2 head
head:- [-1, 1, nn.Upsample, [None, 2, "nearest"]] #10 ========= 640x40x40- [[-1, 6], 1, Concat, [1]] #11 cat backbone P4========= 640x40x40+ 640x40x40 = 1280x40x40- [-1, 3, C2f, [512]] # 12========= 640x40x40- [-1, 1, nn.Upsample, [None, 2, "nearest"]] #13=========640x80x80- [[-1, 4], 1, Concat, [1]] #14 cat backbone P3=========640x80x80+ 320x80x80 =960x80x80- [-1, 3, C2f, [256]] # 15 (P3/8-small)=========320x80x80- [-1, 1, nn.Upsample, [None, 2, "nearest"]] #16 =========320x160x160- [[-1, 2], 1, Concat, [1]] #17 cat backbone P2=========320x160x160 + 160x160x160 = 480x160x160- [-1, 3, C2f, [128]] # 18 (P2/4-xsmall)=========160x160x160- [-1, 1, Conv, [128, 3, 2]] #19=========160x80x80- [[-1, 15], 1, Concat, [1]] #20cat head P3=========160x80x80 + 320x80x80 = 480x80x80- [-1, 3, C2f, [256]] # 21 (P3/8-small)=========320x80x80- [-1, 1, Conv, [256, 3, 2]] #22=========320x40x40- [[-1, 12], 1, Concat, [1]] #23 cat head P4=========320x40x40 +  640x40x40 = 960x40x40- [-1, 3, C2f, [512]] # 24 (P4/16-medium)=========640x40x40- [-1, 1, Conv, [512, 3, 2]] #25=========640x20x20- [[-1, 9], 1, Concat, [1]] #26 cat head P5=========640x20x20 + 640x20x20 = 1280x20x20- [-1, 3, C2f, [1024]] # 27 (P5/32-large)=========640x20x20- [[18, 21, 24, 27], 1, Detect, [nc]] # Detect(P2, P3, P4, P5)

从yaml来看,总共有四个输出,分别是P2, P3, P4, P5,我们就这四个输出来看一下。对于P2,如果输入尺寸是640x640,特征图是160x160x160,根据公式来算,stride应该是:

请添加图片描述)

同理,剩下的就分别是16,32,64

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在window系统中安装Mysql

先简单来说说MySQL是什么? MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。 MySQL 由瑞典 MySQL AB 公司开发,目前属于…

【oceanbase】安装ocp,ocp部署oceanbase

https://www.oceanbase.com/docs/common-ocp-1000000000584989 资源 iphostnamecpumem组件192.168.0.71obnode-000-071816oceanbase-ce192.168.0.72obnode-000-072816oceanbase-ce192.168.0.73obnode-000-073816oceanbase-ce192.168.0.74obproxy-000-07424obproxy-ce192.168.0…

基于SpringBoot+Vue的企业资产管理系统设计与实现

1、系统演示视频(演示视频) 2、需要请联系

护眼台灯哪个牌子好?目前比较好用的护眼台灯分享

护眼台灯哪个牌子好?目前,市场上书客、松下、飞利浦等品牌备受瞩目,它们都是值得考虑的选择。然而,对于急需保护眼睛的朋友来说,不必过于焦虑。护眼台灯的选择并非简单的亮度足够就能护眼,实际上&#xff0…

酒店宾馆在线订房小程序源码系统 带完整的安装代码包以及搭建教程

酒店宾馆在线订房小程序源码系统的开发,是基于对当前旅游住宿市场的深入洞察和消费者需求的精准把握。随着智能手机的普及和移动互联网的快速发展,越来越多的消费者习惯使用手机进行各种生活服务的预订,其中包括酒店住宿。因此,开…

QT客户端开发的应用场景

QT 是一跨平台应用程序开发框架,支持多种操作系统,包括 Windows、macOS、Linux、Android、iOS 和嵌入式系统等。这使得 QT 非常适合开发需要在多种平台上运行的应用程序。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交…

idea 左侧 project 不见了

在网上查了很多 有的说是 然后再 import 下面是我亲自测试的 可以的 先 删除本地的.idea 文件 还有其他的缓存文件 然后 重新加载项目 就行了

Llama3-8B+ LLaMA-Factory 中文微调

Llama3-8B LLaMA-Factory 中文微调 Llama3是目前开源大模型中最优秀的模型之一,但是原生的Llama3模型训练的中文语料占比非常低,因此在中文的表现方便略微欠佳! 本教程就以Llama3-8B-Instruct开源模型为模型基座,通过开源程序LL…

假设检验分析方法

目录 1.什么是假设检验分析方法 2.作用 3.使用 1.什么是假设检验分析方法 在数据分析中,假设检验是一种统计方法,用于确定样本数据是否支持对总体参数的某种假设。此法在数据分析中被广泛应用,可以帮助研究人员进行科学的推断和决策&#…

Win10下VS2015无法添加任何文件,提示未能加载文件或程序集“Microsoft.VisualStudio.JSLS...

错误:未能加载文件或程序集“Microsoft.VisualStudio.JSLS, Version14.0.0.0, Cultureneutral, PublicKeyTokenb03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件。 解决: 1. 管理员身份打开cmd 2. cd C:\Program Files (x86)\Microsoft Vis…

Python可视化-matplotlib用法详解(三)

一、子图绘制 # 上节课复习 import pandas as pd import matplotlib.pyplot as plt s../../data/unrate.csvunrate pd.read_csv(s) unrate[DATE] pd.to_datetime(unrate[DATE]) first_twelve unrate[0:12] first_twelveDATEVALUE01948-01-013.411948-02-013.821948-03-014.…

数控6面钻的优缺点

在木工、家具制造和建筑行业中,数控6面钻已成为一种革命性的工具。这种先进的机器以其高效、精准和多功能性受到了广大制造商的青睐。然而,就像任何技术产品一样,数控6面钻也有其优缺点。在本文中,我们将深入探讨数控6面钻的优缺点…