4.6 训练并部署你自己的视觉模型

简介

YOLO26 是 YOLO 家族的最新一代,专为实时、面向边缘的视觉 AI 而设计。它更快、更轻量、更易于部署,同时在目标检测、分割、分类和姿态估计等任务上仍能保持强大的精度。与早期的 YOLO 模型相比,YOLO26 更注重高效部署和端到端推理,这使其特别适合边缘设备和实际应用。

YOLO26 性能图

在本章中,我们将介绍如何在 reComputer 上快速训练并部署你自己的高级检测模型,让你能够通过高效、现代的工作流,从数据出发,构建出可在真实场景中运行的 AI 应用。

快速体验

第 1 步:明确定义任务

一个出色的项目始于一个明确的问题。

例如:

  • 检测安全帽和人员
  • 检测被占用的停车位
  • 检测托盘和叉车

为了便于演示,我们提供了一个脚本,可以帮助我们完成从数据采集到模型部署的整个流程。

前提条件: 安装所需依赖:

bash
pip install ultralytics opencv-python pillow pyyaml

🚀 大胆尝试,亲自运行一下吧!

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_end_to_end.py

第 2 步:采集数据

将摄像头连接到你的设备,选择想要检测的目标,采集合适的数据集图像。

capture_picture

第 3 步:标注数据

对于检测任务,标注通常意味着绘制边界框并指定类别标签。

使用我们的工具,拖动鼠标来标记你想要检测的目标。

mark_img

第 4 步:训练模型

划分你的数据集,并选择一个预训练模型进行训练。

训练集用于通过调整参数来教模型学习。验证集则在开发过程中使用,用来检查模型的泛化能力、比较不同的设置,并决定何时停止训练。简而言之,数据集划分能帮助我们以可信的方式训练、改进并评估模型。

训练

训练阶段是模型从数据集中学习并逐步改进预测的过程。通常,我们会从一个起始检查点开始,即使用预训练模型,而不是从零开始。这能让模型学得更快,并且通常能取得更好的结果。

第 5 步:推理

选择此前训练好的模型权重,观察它的表现。

infer

注意:如果你希望模型表现更好,需要扩充数据集或进行数据增强操作。

常见误解

  • "指标高就意味着模型已经准备好了。"
    • 真实场景下的测试仍然必不可少。
  • "数据越多,模型自然就越好。"
    • 只有相关且标注良好的数据才有用。
  • "训练完成,部署就很容易。"
    • 部署会引入速度、内存和系统层面的约束。

练习 / 思考

  1. 设计一个适合初学者完成的两类目标检测项目。
  2. 列出你希望数据集中包含的五种场景变化。
  3. 解释验证结果与真实部署性能之间的差异。
  4. 跑完一次训练后,查看三个失败案例,并描述什么样的数据可能可以解决这些问题。

环境配置

在训练 YOLO 模型之前,请先使用 uv 包管理器配置你的 Python 环境:

安装 uv

bash
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc
uv --version

安装 uv

创建虚拟环境

bash
uv venv .yolo --python 3.10.12
source .yolo/bin/activate
python --version

虚拟环境 激活环境

安装 PyTorch(GPU)

bash
uv pip install torch --index-url https://pypi.jetson-ai-lab.io/jp6/cu126

PyTorch 验证

注意: Seeed 的 Jetson 开发套件自带预配置的环境。在创建新环境之前,请先检查 .yolo 环境是否已经存在。

安装 YOLO26/Ultralytics

bash
uv pip install ultralytics opencv-python pillow pyyaml

YOLO26 任务示例

YOLO26 支持多种计算机视觉任务。下面是各类任务的示例。

目标检测

检测并定位图像或视频中的目标:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_object_detection.py

目标检测结果

实例分割

在像素级别识别目标:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_instance_segmentation.py

实例分割

姿态估计

检测人体关键点:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_pose_estimation.py

姿态估计

图像分类

对图像中的主体进行分类:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_image_classification.py

图像分类

旋转目标检测(OBB)

使用旋转边界框检测目标:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_obb_detection.py

OBB 检测

模型训练

在你的自定义数据集上训练 YOLO 模型:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_train.py

训练输出 训练结果

使用 Label Studio 标注数据集

使用 Label Studio(基于 Docker)来标注你的训练数据:

Label Studio 启动 Label Studio 标注 数据集结构

总结

训练一个自定义视觉模型不仅仅是运行一条命令。它是一个数据驱动的过程,包括任务定义、标注、训练、验证和错误分析。在下一节,我们将从第一个成功的模型出发,迈向模型导出与边缘部署。

建议的下一步

继续阅读 4.7 模型导出与边缘部署

参考资料