当前位置: 首页 > news >正文

第二节 YOLOv5参数

目录

2.1 关键参数

2.2.1 weights

 2.2.2 source

2.2.3 conf-thres 

2.2.4 iou-thres

2.2 所有参数说明 

2.2.1 核心推理控制参数

2.2.2 结果保存参数

2.2.3 检测过滤与后处理

2.2.4 工程化与调试参数 

2.3 jupiterlap 

 2.4 基于torch.hub的检测方法

2.4.1模型检测代码实现: 

2.4.2关键知识

2.1 关键参数

  • weights:训练好的模型文件。
  • source:检测的目标,可以是单张图片、文件夹、屏幕或者摄像头等。
  • conf-thres:置信度阈值,越低框越多,越高框越少。
  • iou-thres:IOU阈值,越低框越少,越高框越多。

2.2.1 weights

(一)、表格指标意思

        Model:模型     size:图片大小       mAPval:平均精度均值   

        Speed CPU b1:速度(CPU b1,ms)    Speed V100 b1:速度(V100 b1,ms)

        Speed V100 b32:速度(V100 b32,ms)  params:参数量

        FLOPs @640(B):代表模型在输入图像尺寸为 640×640 时的浮点运算量,单位是十亿次(B,即 billion)。

进一步说明:

        mAPval 50-95:表示在不同 IoU(Intersection over Union,交并比,用于衡量预测框和真实框之间的重叠程度 )阈值范围(从 0.50 到 0.95,步长为 0.05)下计算得到的平均精度均值。这个指标综合考虑了模型在不同重叠程度要求下的检测效果,能更全面地反映模型的性能。

        mAPval 50:表示在 IoU 阈值为 0.50 时计算得到的平均精度均值。它更关注模型在相对宽松的检测标准下的表现,即只要预测框和真实框的重叠度达到 0.5 就算检测正确。

        “Speed V100 b1(ms)” 这一列的数据,就表示 YOLOv5 不同版本模型在 Tesla V100 GPU 上,以每次处理一张图像(batch size 为 1)的方式进行推理时,处理一张图像所需要的时间,单位是毫秒(ms)。

        “FLOPs @640(B)” 代表模型在输入图像尺寸为 640×640 时的浮点运算量,单位是十亿次(B,即 billion ),下面详细解释:

FLOPs(floating point operations

        FLOPs 指的是浮点运算次数,是衡量深度学习模型计算复杂度的一个重要指标。在深度学习模型执行推理(对输入数据进行预测 )或训练(调整模型参数以最小化损失函数 )过程中,会涉及到大量的矩阵乘法、加法等浮点运算。比如在卷积神经网络(CNN)中,卷积层通过卷积核与图像数据进行卷积操作,本质上就是大量的乘法和加法运算,这些运算次数的总和就是模型的浮点运算量。

FLOPs 数值越大,通常意味着模型的计算复杂度越高,运行时需要消耗更多的计算资源(如 CPU、GPU 的运算能力 ),也可能需要更长的时间来完成一次推理或训练步骤。不过,FLOPs 只是一个理论上的计算量指标,实际的运行速度还会受到硬件性能(如 GPU 的架构、主频 )、软件优化(如深度学习框架的优化程度 )等多种因素的影响。

@640

        “@640”表示的是输入图像的尺寸条件。在目标检测任务中,模型输入图像的尺寸大小会影响模型的计算量。对于 YOLOv5 系列模型,这里指的是输入图像的边长为 640 像素(即图像尺寸为 640×640 )。当输入图像尺寸改变时,模型进行卷积、池化等操作的数据量也会发生变化,进而导致浮点运算量不同 。

(B

        括号中的 “B” 代表单位,即十亿(billion )。也就是说,表格中 FLOPs 这一列的数据,是以十亿次浮点运算为单位来表示的。例如,YOLOv5x 对应的 FLOPs 值为 205.7,实际含义是当输入图像尺寸为 640×640 时,YOLOv5x 模型进行一次推理大约需要进行 2057 亿次浮点运算 。

        通过 FLOPs 指标,科研人员和开发者可以在设计和选择模型时,评估模型的计算成本,从而根据实际的硬件条件和应用需求,选择合适的模型。

(二)、各模型核心特点

1YOLOv5n:超轻量、速度最快,精度较低。

2YOLOv5s:轻量平衡型,适配端侧 / 边缘。

3YOLOv5m:精度提升,速度稍降,适合服务端。

4YOLOv5l:高精度优先,速度进一步降低。

5YOLOv5x:极致精度,资源消耗最大系统架构设计。

选型建议

  1. 追求极致速度(如边缘设备、实时检测)→ YOLOv5n
  2. 端侧 / 边缘场景平衡(轻量 + 可用精度)→ YOLOv5s
  3. 服务端部署(精度优先,算力充足)→ YOLOv5m/l/x(按需求选精度 - 速度 trade-off )

(三)、实验

   指令:python detect.py --weights 训练好的模型文件。

        上图中,使用yolov5s来检测,指令是python detect.py --weights yolov5s.pt从运行结果来看,识别到bus.jpg图片有4个人、1辆公交车、识别速度为214.8ms。 识别到zidan.jpg图片有2个人、2条领带、识别速度为13.0ms。(使用cpu跑的)      

        上图中,使用yolov5x来检测,指令是python detect.py --weights yolov5x.pt 。从运行结果来看,识别到bus.jpg图片有4个人、1辆公交车、识别速度为114.7ms。识别到zidan.jpg图片有2个人、2条领带、识别速度为101.7ms。(GPU跑的)

 2.2.2 source

(一)、检测单张图片

        指令:python detect.py --weights yolov5s.pt --source 文件路径

        上图中,使用yolov5s来检测单张图片,指令是python detect.py --weights yolov5s.pt --source data/images/bus.jpg。从运行结果来看,识别到bus.jpg图片有4个人、1辆公交车、识别速度为187.2ms。 

(二)、对屏幕检测

        指令:python detect.py --weights yolov5s.pt --source screen        

2.2.3 conf-thres 

         conf-thres:置信度阈值,越低框越多,越高框越少。

        指令:python detect.py --weight yolov5s.pt --conf-thres 置信度阈值

         上图是将阈值设置成0.8,指令是python detect.py --weight yolov5s.pt --conf-thres 0.8由上图可知,当置信度阈值设置成0.8后,会将低于0.8阈值的框框过滤掉,即置信度阈值越高框越少。 

        上图是将阈值设置成0.05,指令是python detect.py --weight yolov5s.pt --conf-thres 0.05由上图可知,当置信度阈值设置成0.05后,会将高于0.05的框框显示出来,即置信度阈值越低框越多。 

2.2.4 iou-thres

        iou-thres:IOU阈值,越低框越少,越高框越多。

        指令:python detect.py --weight yolov5s.pt --iou-thres 置信度阈值

        上图是将阈值设置成0.8,指令是python detect.py --weight yolov5s.pt --iou-thres 0.8 

        上图是将阈值设置成0.05,指令是python detect.py --weight yolov5s.pt --iou-thres 0.05 

2.2 所有参数说明 

2.2.1 核心推理控制参数

2.2.2 结果保存参数

2.2.3 检测过滤与后处理

2.2.4 工程化与调试参数 

2.3 jupiterlap 

        JupyterLab是最新的基于网络的笔记本、代码和数据的互动开发环境。它灵活的界面允许用户配置和安排数据科学、科学计算、计算新闻和机器学习方面的工作流程。使用模块化的设计方便扩展和丰富功能。

相关博客:JupyterLab(Jupyter Notebook)安装与使用_jupyter lab官网下载-CSDN博客

        通过下面命令安装JupyterLabpip install jupyterlab

 2.4 基于torch.hub的检测方法

         PyTorch 是 Python 优先的深度学习框架,由 Facebook(现 Meta)开发维护,核心用于:

  • 构建 / 训练深度学习模型(如 CNN、RNN、Transformer 等),覆盖计算机视觉(CV)、自然语言处理(NLP)、语音识别等领域。
  • 自动求导(通过 autograd 机制),简化反向传播实现,让开发者专注模型逻辑。
  • 张量(Tensor)计算:类似 NumPy 数组,但支持 GPU 加速,是模型运算的基础数据结构。

2.4.1模型检测代码实现: 

import torch  # 1. 导入 PyTorch 核心库,启用张量、模型加载等功能
# 2. 从本地加载 YOLOv5s 模型 
# torch.hub.load:PyTorch 官方“模型仓库”工具,支持本地/在线加载预训练模型
#参数说明:
# "./":本地模型所在文件夹(YOLOv5 项目根目录)
# "yolov5s":模型配置/权重文件名(对应 YOLOv5s 小模型)
# source="local":强制从本地加载(避免联网下载)
model = torch.hub.load("./", "yolov5s", source="local")  
# 3. 定义输入图像路径(YOLOv5 示例图)
img = "./data/images/zidane.jpg"  
# 4. 执行目标检测:模型前向推理,输出预测结果(含边界框、类别、置信度)
result = model(img) 
# 5. 可视化结果:弹出窗口显示带检测框的图像
result.show()

2.4.2关键知识点

1torch.hub 的作用

        官方模型 hub,支持一键加载 PyTorch 生态的预训练模型(如 ResNet、YOLO 等),source="local" 适配本地自定义模型(需项目结构符合规范)。

2YOLOv5 PyTorch 的关系

        YOLOv5 是基于 PyTorch 实现的目标检测框架,torch.hub 让其加载更便捷,无需手动写模型构建代码。

3、应用场景扩展

        替换 img 路径可检测任意图像 / 视频;结合 result.pandas().xyxy[0] 可提取检测结果(坐标、类别文本),用于自动化标注、数据统计等。

        总结:PyTorch 是深度学习开发的核心框架,torch.hub 简化了模型复用,这段代码用 “最少代码” 实现了 YOLOv5 目标检测流程,适合快速验证或集成到项目中。

http://www.lryc.cn/news/609246.html

相关文章:

  • 电商系统定制开发流程:ZKmall开源商城需求分析到上线全程可控
  • Linux命令基础(上)
  • 关于Web前端安全防御之内容安全策略(CSP)
  • 第八章:进入Redis的SET的核心
  • 基于 Spring Boot + Vue 实现人脸采集功能全流程
  • spring-ai-alibaba 之 graph 槽点
  • 无人机集群协同三维路径规划,采用冠豪猪优化器(Crested Porcupine Optimizer, CPO)实现,Matlab代码
  • 基于BiLSTM+CRF实现NER
  • JavaWeb学习------SpringCloud入门
  • 最小半径覆盖问题【C++解法+二分+扫描线】
  • 研报复现|史蒂夫·路佛价值选股法则
  • [硬件电路-138]:模拟电路 - 什么是正电源?什么是负电源?集成运放为什么有VCC+和VCC-
  • 【RH124 问答题】第 8 章 监控和管理 Linux 进程
  • MySQL学习之MVCC多版本并发控制
  • 浅谈Python中的os.environ:环境变量交互机制
  • [硬件电路-141]:模拟电路 - 源电路,信号源与电源,能自己产生确定性波形的电路。
  • IO流-数据流
  • LLM的训练:RLHF及其替代方案
  • 2025年6月电子学会青少年软件编程(C语言)等级考试试卷(七级)
  • 当Windows远程桌面出现“身份验证错误。要求的函数不受支持”的问题
  • 电机结构设计与特性曲线分析:基于MATLAB和FEMM的仿真研究
  • 【软考中级网络工程师】知识点之 IS-IS 协议
  • AI Agent 重塑产业发展新格局
  • SpringAI的使用
  • 图像张量中的通道维度
  • 【C 学习】04.1-数字化基础
  • Spring Boot 整合 Minio 实现高效文件存储解决方案(本地和线上)
  • Monaco Editor 开发流程详解
  • Flutter Dart类的使用
  • Redisson高并发实战:守护Netty IO线程的关键指南