开启 AI 视觉之旅:用 Python 和 YOLO v8(YOLO11)打造专属目标检测模型

544 阅读3分钟

目录

  1. 环境准备
  2. 安装 Ultralytics YOLO
  3. 准备数据集和标注
  4. 配置数据集文件(data.yaml)
  5. 加载预训练模型
  6. 训练模型
  7. 验证和推理
  8. 模型导出与部署
  9. 进阶建议与未来趋势

1. 环境准备

  • Python版本:建议 Python 3.8 及以上,推荐使用 Python 3.12.x,避免使用最新不兼容版本(如3.13)。
  • IDE推荐:PyCharm、VSCode均可,方便代码编写与调试。
  • 硬件:支持GPU训练时,建议安装CUDA环境,训练速度显著提升;无GPU可使用CPU,但训练时间较长。

2. 安装 Ultralytics YOLO

打开终端或PyCharm内置终端,执行:

pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple

说明:使用清华镜像源加速安装。

安装完成后,验证版本:

python -c "from ultralytics import YOLO; print(YOLO.__version__)"

3. 准备数据集和标注

  • 创建项目文件夹结构:
project_root/
├── images/
│   ├── train/
│   └── val/
├── labels/
│   ├── train/
│   └── val/
  • 图片格式:jpg、png均支持。
  • 标注格式:YOLO格式txt文件,每行格式为:
<class_id> <x_center> <y_center> <width> <height>

坐标均归一化到1

  • 推荐工具:Label Studio、Roboflow、Ultralytics官方标注工具等。

4. 配置数据集文件(data.yaml)

在项目根目录创建 data.yaml,内容示例如下:

text
train: ./images/train
val: ./images/val

nc: 1  # 类别数
names: ['car-number']  # 类别名称列表

注意路径可使用相对路径,确保正确指向图片文件夹。


5. 加载预训练模型

Python代码示例:

from ultralytics import YOLO

# 加载YOLOv8 Nano预训练模型(轻量级)
model = YOLO("yolov8n.pt")

# 查看模型信息
model.info()

如果本地无模型文件,Ultralytics库会自动下载,若失败请手动下载放置项目目录。


6. 训练模型

使用最新API,示例代码:

results = model.train(
    data="data.yaml",    # 数据集配置文件
    epochs=100,          # 训练周期数,实际可根据需求调整
    imgsz=640,           # 输入图像大小
    batch=16,            # 批次大小,视显存调整
    device="cuda",       # 训练设备,支持 'cpu', 'cuda', 'mps' 等
    save=True            # 保存训练权重和日志
)
print("训练完成")
  • 混合精度训练:默认自动开启,无需额外配置,提升速度和显存效率。
  • 训练日志:保存在 runs/detect/train 文件夹,包含 best.pt(最佳模型权重)和 last.pt(最后模型权重)。

7. 验证和推理

训练完成后,加载最佳模型进行推理:

# 加载训练好的最佳模型
model = YOLO("runs/detect/train/weights/best.pt")

# 对单张图片进行推理
results = model("images/val/sample.jpg", save=True, show=True)

# 对视频文件推理
results = model("videos/test.mp4", save=True, show=True)
  • save=True 会保存推理结果到 runs/detect/predict 文件夹。
  • show=True 会弹窗显示检测结果。

8. 模型导出与部署

YOLO支持多种导出格式,方便部署到不同平台:

# 导出为ONNX格式
model.export(format="onnx", device="cuda")

# 其他支持格式包括:TensorRT、CoreML、TorchScript、TF SavedModel等

导出模型后可用于边缘设备、移动端或云端部署。


9. 进阶建议与未来趋势

  • 多类别检测:修改 data.yamlncnames 支持多类别。

  • 数据增强:利用Ultralytics内置的自动增强功能提升模型泛化能力。

  • 超参数调优:调整学习率、优化器、批次大小等参数,提升模型性能。

  • 未来趋势

    • Vision Transformer(ViT)与CNN混合架构逐渐普及;
    • 自监督学习和少样本学习技术提升模型训练效率;
    • 3D视觉和多模态融合推动复杂场景理解。

完整示例代码整合

from ultralytics import YOLO

# 1. 加载预训练模型
model = YOLO("yolov8n.pt")

# 2. 训练模型
results = model.train(
    data="data.yaml",
    epochs=100,
    imgsz=640,
    batch=16,
    device="cuda",
    save=True
)

print("训练完成")

# 3. 加载训练好的最佳模型进行推理
model = YOLO("runs/detect/train/weights/best.pt")

# 4. 对单张图片进行检测
results = model("images/val/sample.jpg", save=True, show=True)

# 5. 导出模型为ONNX格式,方便部署
model.export(format="onnx", device="cuda")

以上教程基于2025年5月最新Ultralytics官方文档和社区实践,覆盖从环境搭建、数据准备、训练到部署的完整流程,帮助你用最前沿的YOLO v8技术打造高效精准的目标检测模型。祝你AI视觉之旅顺利!