目录
- 环境准备
- 安装 Ultralytics YOLO
- 准备数据集和标注
- 配置数据集文件(data.yaml)
- 加载预训练模型
- 训练模型
- 验证和推理
- 模型导出与部署
- 进阶建议与未来趋势
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.yaml中nc和names支持多类别。 -
数据增强:利用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视觉之旅顺利!