目录
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 指标,科研人员和开发者可以在设计和选择模型时,评估模型的计算成本,从而根据实际的硬件条件和应用需求,选择合适的模型。
(二)、各模型核心特点
1、YOLOv5n:超轻量、速度最快,精度较低。
2、YOLOv5s:轻量平衡型,适配端侧 / 边缘。
3、YOLOv5m:精度提升,速度稍降,适合服务端。
4、YOLOv5l:高精度优先,速度进一步降低。
5、YOLOv5x:极致精度,资源消耗最大系统架构设计。
选型建议:
- 追求极致速度(如边缘设备、实时检测)→ YOLOv5n
- 端侧 / 边缘场景平衡(轻量 + 可用精度)→ YOLOv5s
- 服务端部署(精度优先,算力充足)→ 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博客
通过下面命令安装JupyterLab:pip 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关键知识点
1、torch.hub 的作用:
官方模型 hub,支持一键加载 PyTorch 生态的预训练模型(如 ResNet、YOLO 等),source="local"
适配本地自定义模型(需项目结构符合规范)。
2、YOLOv5 与 PyTorch 的关系:
YOLOv5 是基于 PyTorch 实现的目标检测框架,torch.hub
让其加载更便捷,无需手动写模型构建代码。
3、应用场景扩展:
替换 img
路径可检测任意图像 / 视频;结合 result.pandas().xyxy[0]
可提取检测结果(坐标、类别文本),用于自动化标注、数据统计等。
总结:PyTorch 是深度学习开发的核心框架,torch.hub
简化了模型复用,这段代码用 “最少代码” 实现了 YOLOv5 目标检测流程,适合快速验证或集成到项目中。