菜单

概述

相关源文件

YOLOv5 是 Ultralytics 开发的一款尖端的、最先进的 (SOTA) 计算机视觉模型。它为对象检测、实例分割和图像分类任务提供了一个全面的生态系统。YOLOv5 构建在 PyTorch 框架之上,提供了高性能、高效的模型,在速度和准确性之间取得了平衡,可用于实际应用。

本文档概述了 YOLOv5 仓库的结构、架构和核心组件。有关特定功能的更详细信息,请参阅相应的维基页面:安装与设置训练推理验证模型架构部署

系统架构

YOLOv5 的架构遵循模块化设计,具有清晰定义的组件,可处理计算机视觉管道的不同方面。

架构图

来源:README.md21-23 tutorial.ipynb65-89

核心组件

模型

YOLOv5 提供三种主要模型类型

  1. 检测模型 - 用于识别和定位带有边界框的对象
  2. 分割模型 - 用于带有像素级掩码的实例分割
  3. 分类模型 - 用于图像分类任务

所有模型都继承自具有针对不同任务的专用头的基本架构。

来源:README.md253-269

模型变体

YOLOv5 提供多种模型尺寸,具有不同的速度-精度权衡

模型大小mAPval
50-95
速度
CPU b1 (ms)
参数 (M)FLOPs
@640 (B)
YOLOv5n64028.0451.94.5
YOLOv5s64037.4987.216.5
YOLOv5m64045.422421.249.0
YOLOv5l64049.043046.5109.1
YOLOv5x64050.776686.7205.7

来源:README.md257-269

核心脚本

YOLOv5 操作通过四个主要脚本执行

  1. train.py - 处理在自定义或预定义数据集上训练模型
  2. detect.py - 对图像、视频或流进行推理
  3. val.py - 使用 mAP 等指标验证模型性能
  4. export.py - 将模型转换为各种部署格式

来源:tutorial.ipynb108-146 README.md147-170

工作流程管道

训练流程

来源:tutorial.ipynb284-292 README.md150-174

推理管道

来源:README.md108-146 tutorial.ipynb114-146

数据处理

YOLOv5 包含强大的数据加载和增强系统,支持各种输入格式并有助于提高模型的泛化能力。

来源:README.md330-350 tutorial.ipynb290-292

任务能力

目标检测

YOLOv5 在对象检测方面表现出色,能够识别和定位 COCO 数据集中的多达 80 种不同的对象类别。它会输出带有类别标签和置信度的边界框。

来源:README.md21-23 tutorial.ipynb114-128

实例分割

随着 v7.0 的发布,YOLOv5 增加了对实例分割的支持,为检测到的对象提供像素级掩码。分割模型使用与检测模型相同的骨干网络,并增加了用于掩码预测的附加层。

来源:README.md280-307 segment/tutorial.ipynb102-116

图像分类

YOLOv5 还支持图像分类,其模型已在 ImageNet 上进行训练。分类模型使用相似的骨干结构,但具有针对分类任务优化的不同头。

来源:README.md365-392 classify/tutorial.ipynb102-116

集成生态系统

YOLOv5 为实验跟踪、模型导出和部署提供了与各种工具和平台的广泛集成。

来源:README.md198-225 tutorial.ipynb511-524

快速入门

YOLOv5 为训练、检测和验证提供了简单的接口

训练模型

运行推理

验证模型

有关安装、训练和部署的更详细信息,请参阅本文档开头链接的特定维基页面。

来源:README.md150-170 tutorial.ipynb140-146 tutorial.ipynb220-223 tutorial.ipynb325-328