Ultralytics YOLOv5 🚀 on AzureML 快速入门

欢迎阅读 Microsoft Azure Machine Learning (AzureML) 的 Ultralytics YOLOv5 快速入门指南!本指南将带你了解如何在 AzureML 计算实例上设置 YOLOv5,涵盖从创建虚拟环境到模型训练和运行推理的所有步骤。

什么是 Azure?

Azure 是 Microsoft 的综合性云计算平台。它提供广泛的服务,包括计算能力、数据库、分析工具、机器学习功能和网络解决方案。Azure 使企业能够通过 Microsoft 管理的数据中心构建、部署和管理应用程序与服务,从而促进将工作负载从本地基础设施迁移到云端。

什么是 Azure Machine Learning (AzureML)?

Azure Machine Learning (AzureML) 是一项专门用于开发、训练和部署机器学习模型的云服务。它提供了一个协作环境,其中的工具适用于各种技能水平的数据科学家和开发人员。主要功能包括自动化机器学习 (AutoML)、用于模型创建的拖放式界面,以及用于更精细地控制机器学习生命周期的强大 Python SDK。AzureML 简化了将预测建模嵌入应用程序的过程。

先决条件

要按照本指南操作,你需要一个有效的 Azure 订阅并拥有 AzureML 工作区的访问权限。如果你还没有设置工作区,请参考官方 Azure 文档进行创建。

创建计算实例

AzureML 中的计算实例为数据科学家提供了一个托管的云端工作站。

  1. 导航到你的 AzureML 工作区。
  2. 在左侧窗格中,选择 Compute(计算)。
  3. 转到 Compute instances(计算实例)选项卡并点击 New(新建)。
  4. 根据你的训练或推理需求,选择适当的 CPU 或 GPU 资源来配置你的实例。
Azure ML create compute instance interface

打开终端

一旦计算实例运行起来,你就可以直接从 AzureML studio 访问它的终端。

  1. 转到左侧窗格中的 Notebooks(笔记本)部分。
  2. 在顶部下拉菜单中找到你的计算实例。
  3. 点击文件浏览器下方的 Terminal(终端)选项,即可打开连接到你实例的命令行界面。

Azure ML 打开终端按钮位置

设置并运行 YOLOv5

现在,让我们来设置环境并运行 Ultralytics YOLOv5。

创建虚拟环境

使用虚拟环境来管理依赖项是最佳实践。我们将使用 AzureML 计算实例上预安装的 Conda。有关详细的 Conda 设置指南,请参阅 Ultralytics Conda 快速入门指南

创建一个包含特定 Python 版本的 Conda 环境(例如 yolov5env)并激活它:

conda create --name yolov5env -y python=3.10 # Create a new Conda environment
conda activate yolov5env                     # Activate the environment
conda install pip -y                         # Ensure pip is installed

克隆 YOLOv5 仓库

Clone the official Ultralytics YOLOv5 repository from GitHub using Git:

git clone https://github.com/ultralytics/yolov5 # Clone the repository
cd yolov5                                       # Navigate into the directory
# Initialize submodules (if any, though YOLOv5 typically doesn't require this step)
# git submodule update --init --recursive

安装依赖项

安装 requirements.txt 文件中列出的必要 Python 包。我们还安装了用于模型导出功能的 ONNX

pip install -r requirements.txt # Install core dependencies
pip install "onnx>=1.12.0"      # Install ONNX for exporting

执行 YOLOv5 任务

设置完成后,你现在可以训练、验证、执行推理并导出你的 YOLOv5 模型了。

  • 训练(Train):在像 COCO128 这样的数据集上训练模型。查看训练模式文档以了解更多详细信息。

    # Start training using yolov5s pretrained weights on the COCO128 dataset
    python train.py --data coco128.yaml --weights yolov5s.pt --img 640 --epochs 10 --batch 16
  • 验证(Validate):使用精确率 (Precision)召回率 (Recall)mAP 等指标验证训练后模型的性能。查看验证模式指南以了解选项。

    # Validate the yolov5s model on the COCO128 validation set
    python val.py --weights yolov5s.pt --data coco128.yaml --img 640
  • 运行推理(Run Inference):对新图像或视频执行推理。浏览预测模式文档以查看各种推理源。

    # Run inference with yolov5s on sample images
    python detect.py --weights yolov5s.pt --source data/images --img 640
  • 导出(Export):将模型导出为 ONNX、TensorRTCoreML 等不同格式以便进行部署。请参阅导出模式指南和 ONNX 集成页面。

    # Export yolov5s to ONNX format
    python export.py --weights yolov5s.pt --include onnx --img 640

使用 Notebook

如果你更喜欢交互式体验,可以在 AzureML Notebook 中运行这些命令。你需要创建一个链接到你的 Conda 环境的自定义 IPython 内核

创建新的 IPython 内核

在你的计算实例终端中运行以下命令:

# Ensure your Conda environment is active
# conda activate yolov5env

# Install ipykernel if not already present
conda install ipykernel -y

# Create a new kernel linked to your environment
python -m ipykernel install --user --name yolov5env --display-name "Python (yolov5env)"

创建内核后,刷新你的浏览器。当你打开或创建一个 .ipynb 笔记本文件时,从右上角的内核下拉菜单中选择你的新内核("Python (yolov5env)")。

在 Notebook 单元格中运行命令

  • Python 单元格:Python 单元格中的代码将使用所选的 yolov5env 内核自动执行。

  • Bash 单元格:要运行 shell 命令,请在单元格开头使用 %%bash 魔术命令。记得在每个 bash 单元格中激活你的 Conda 环境,因为它们不会自动继承笔记本内核的环境上下文。

    %%bash
    source activate yolov5env # Activate environment within the cell
    
    # Example: Run validation using the activated environment
    python val.py --weights yolov5s.pt --data coco128.yaml --img 640

恭喜!你已经成功在 AzureML 上设置并运行了 Ultralytics YOLOv5。如需进一步探索,请考虑查看其他 Ultralytics 集成或详细的 YOLOv5 文档。你可能还会发现 AzureML 文档对于分布式训练或将模型部署为端点等高级场景非常有用。

评论