菜单

集成

相关源文件

本页面记录了 YOLOv5 中可用的外部集成,重点关注实验跟踪平台和部署选项。这些集成使您能够监控训练、可视化结果、管理模型,并在生产环境中部署训练好的模型。有关部署细节的相关信息,请参阅 部署

实验跟踪集成

YOLOv5 与流行的实验跟踪平台无缝集成,这些平台可以帮助您监控、比较和可视化训练运行。

来源:utils/loggers/__init__.py18-20 utils/loggers/__init__.py77-156

Loggers 类

YOLOv5 集成系统的核心是 utils/loggers/__init__.py 文件中的 Loggers 类。此类负责初始化和管理与各种日志记录平台的连接。

来源:utils/loggers/__init__.py78-347 utils/loggers/wandb/wandb_utils.py33-196 utils/loggers/clearml/clearml_utils.py65-228

集成中的数据流

下图展示了在训练和验证过程中,数据如何从 YOLOv5 流向外部跟踪平台。

来源:utils/loggers/__init__.py171-339

Weights & Biases (WandB)

Weights & Biases 是一个流行的实验跟踪平台,可让您可视化和比较模型的性能,记录超参数,并与团队共享结果。

主要功能

  • 自动跟踪训练和验证指标
  • 可视化模型预测
  • 超参数记录
  • 模型检查点和工件
  • 实验比较

注意: YOLOv5 中的 WandB 集成已被弃用,将在未来的版本中移除。建议用户使用官方的 Ultralytics 集成。

要启用 WandB 日志记录,请确保已安装 wandb 包,并在训练命令中添加 --wandb

来源:utils/loggers/__init__.py124-129 utils/loggers/wandb/wandb_utils.py1-4 utils/loggers/wandb/wandb_utils.py33-196

ClearML

ClearML 是一个开源 MLOps 平台,提供实验跟踪、数据集管理和模型部署功能。

主要功能

  • 自动跟踪训练和验证指标
  • 通过 clearml-data 进行数据集版本控制
  • 远程执行功能
  • 超参数优化
  • 与 YOLOv5 训练流水线集成

要将 ClearML 用于 YOLOv5

  1. 安装 ClearML:pip install clearml
  2. 配置您的凭证:clearml-init
  3. 在训练命令中添加 --clearml

使用 ClearML 进行数据集管理

您还可以使用 ClearML 进行数据集版本控制。

然后在训练中使用数据集。

来源:utils/loggers/__init__.py132-144 utils/loggers/clearml/clearml_utils.py65-228 utils/loggers/clearml/README.md1-233

TensorBoard

TensorBoard 是一个 TensorFlow 的可视化工具包,也可与 PyTorch 一起使用。YOLOv5 支持将指标、图像和模型图记录到 TensorBoard。

主要功能

  • 标量指标可视化
  • 学习率跟踪
  • 模型架构可视化
  • 图像记录

TensorBoard 在 YOLOv5 中是默认启用的。要访问 TensorBoard,请运行:

来源:utils/loggers/__init__.py119-122 utils/loggers/__init__.py270-273

Comet ML

Comet ML 提供实验跟踪、数据集管理和超参数优化等功能。

主要功能

  • 自动记录指标和超参数
  • 模型检查点跟踪
  • 超参数优化
  • 数据集版本控制
  • 用于目标检测的自定义可视化面板

要将 Comet ML 用于 YOLOv5

  1. 安装 Comet ML:pip install comet_ml
  2. 设置您的 Comet ML API 密钥。
  3. 在训练命令中添加 --comet

来源:utils/loggers/__init__.py147-156 utils/loggers/comet/README.md1-287

CSV 和 NDJSON 日志记录

YOLOv5 提供使用 CSV 和 NDJSON 文件格式的本地日志记录选项。这些是默认启用的,并将训练和验证指标存储在运行输出目录中。

  • CSV 日志记录:创建包含所有指标的 results.csv
  • NDJSON 日志记录:创建采用 JSON Lines 格式的 results.ndjson

来源:utils/loggers/__init__.py255-268

部署集成

YOLOv5 包含用于在生产环境中部署模型的集成。

来源:utils/flask_rest_api/README.md1-86 utils/triton.py1-91

Flask REST API

YOLOv5 包含一个基于 Flask 的 REST API,用于通过 HTTP 端点提供模型。这提供了一种将 YOLOv5 目标检测功能集成到 Web 应用程序或服务中的简单方法。

主要功能

  • 设置简单,依赖项最少
  • 用于上传图像和接收检测结果的 HTTP 端点
  • 具有检测结果的 JSON 响应格式
  • 支持不同的 YOLOv5 模型变体

要使用 Flask REST API

  1. 安装 Flask:pip install Flask
  2. 运行 API 服务器。
  3. 将 POST 请求和图像发送到端点。
    http://:5000/v1/object-detection/yolov5s
    

API 以 JSON 格式返回检测结果,包括类别 ID、置信度分数和边界框坐标。

来源:utils/flask_rest_api/README.md1-86

Triton 推理服务器

NVIDIA Triton Inference Server 是一个用于大规模部署 AI 模型的平台。YOLOv5 通过 TritonRemoteModel 类与 Triton 集成。

主要功能

  • 支持多种后端(TensorRT、ONNX、PyTorch)
  • 可扩展的推理服务
  • 模型版本控制
  • 支持 gRPC 和 HTTP 协议

TritonRemoteModel 类提供了与 Triton 服务器上托管的模型进行交互的 Python 客户端。

来源:utils/triton.py10-90

与 CI/CD 工作流集成

YOLOv5 包含用于持续集成的 GitHub Actions 工作流,以确保代码质量和功能。

主要功能

  • 自动化测试
  • 文档链接检查
  • 代码质量验证
  • Docker 镜像构建

用于链接检查的主要工作流定义在 .github/workflows/links.yml 中,并每天运行以确保所有文档链接保持有效。

来源:.github/workflows/links.yml1-83

总结

YOLOv5 提供了与流行的实验跟踪平台和部署选项的强大集成。下表总结了可用的集成。

类别集成描述
实验跟踪Weights & Biases记录指标、图像和模型工件
实验跟踪ClearML跟踪实验和管理数据集
实验跟踪TensorBoard可视化训练指标和模型图
实验跟踪Comet ML跟踪实验和优化超参数
实验跟踪CSV/NDJSON本地记录训练指标
部署Flask REST API通过 HTTP 端点提供模型
部署Triton 推理服务器为生产扩展模型推理
开发GitHub Actions用于代码质量的 CI/CD 工作流

这些集成使 YOLOv5 成为研究和生产环境的通用框架,实现了从训练到部署的无缝工作流。