小白必看!YOLOv9目标检测保姆级入门教程
1. 教程目标与适用人群
本教程专为深度学习初学者和计算机视觉新手设计,旨在帮助你从零开始掌握 YOLOv9 的基本使用方法。无论你是学生、开发者还是对 AI 感兴趣的爱好者,只要你想快速上手目标检测任务,这篇教程都能为你提供清晰、可操作的指导。
通过本文,你将学会:
- 如何使用预配置镜像快速启动 YOLOv9 环境
- 执行模型推理(Inference)并查看检测结果
- 运行训练任务并自定义参数
- 理解常见问题及解决方案
无需手动安装复杂依赖,无需担心版本冲突,一切已在镜像中准备就绪——真正做到“开箱即用”。
2. 镜像环境说明
本教程基于YOLOv9 官方版训练与推理镜像构建,该镜像已集成所有必需组件,极大简化了部署流程。
2.1 核心环境配置
| 组件 | 版本 |
|---|---|
| PyTorch | 1.10.0 |
| CUDA | 12.1 |
| Python | 3.8.5 |
| Torchvision | 0.11.0 |
| Torchaudio | 0.10.0 |
| OpenCV | opencv-python |
| 其他依赖 | numpy, pandas, matplotlib, tqdm, seaborn |
代码路径:
/root/yolov9
默认环境:Conda base 环境,需手动激活yolov9虚拟环境
该镜像基于 WongKinYiu/yolov9 官方仓库构建,确保与原始实现完全一致,并预下载了yolov9-s.pt权重文件,节省你的等待时间。
3. 快速上手:三步完成首次运行
我们采用“先跑起来”的策略,让你在最短时间内看到成果,建立信心。
3.1 第一步:激活 Conda 环境
镜像启动后,默认处于base环境。请执行以下命令切换至专用环境:
conda activate yolov9验证是否成功激活:
which python输出应包含envs/yolov9/bin/python路径,表示环境已正确加载。
3.2 第二步:执行模型推理
进入代码目录并运行推理脚本:
cd /root/yolov9 python detect_dual.py --source './data/images/horses.jpg' --img 640 --device 0 --weights './yolov9-s.pt' --name yolov9_s_640_detect参数解释:
--source:输入图像路径--img:推理时图像尺寸(640×640)--device:使用 GPU 设备编号(0 表示第一块显卡)--weights:模型权重路径--name:结果保存子目录名
输出结果:
检测结果将保存在:
runs/detect/yolov9_s_640_detect/打开该目录中的horses.jpg,即可看到带有边界框和类别标签的检测图。
✅ 成功标志:你能看到马匹被准确框出,并标注为 "horse" 类别。
3.3 第三步:启动一次简单训练
接下来,我们使用单卡 GPU 训练一个小型 YOLOv9-S 模型,仅需一条命令:
python train_dual.py \ --workers 8 \ --device 0 \ --batch 64 \ --data data.yaml \ --img 640 \ --cfg models/detect/yolov9-s.yaml \ --weights '' \ --name yolov9-s \ --hyp hyp.scratch-high.yaml \ --min-items 0 \ --epochs 20 \ --close-mosaic 15关键参数说明:
--workers:数据加载线程数--batch:每批次样本数量--data:数据集配置文件(需按 YOLO 格式组织)--cfg:模型结构定义文件--weights:初始权重(空字符串表示从头训练)--epochs:训练轮数--close-mosaic:在最后 N 个 epoch 关闭 Mosaic 数据增强,提升收敛稳定性
训练过程中,日志会实时打印 loss、mAP 等指标。训练完成后,最佳模型将保存在:
runs/train/yolov9-s/weights/best.pt4. 数据集准备指南
要进行自定义训练,你需要准备符合 YOLO 格式的标注数据。
4.1 YOLO 数据格式要求
每个图像对应一个.txt标注文件,内容格式如下:
<class_id> <x_center> <y_center> <width> <height>所有坐标均为归一化值(0~1),例如:
0 0.45 0.67 0.23 0.184.2 目录结构示例
建议组织方式如下:
dataset/ ├── images/ │ ├── train/ │ └── val/ ├── labels/ │ ├── train/ │ └── val/ └── data.yaml4.3 编写 data.yaml 配置文件
train: ./dataset/images/train val: ./dataset/images/val nc: 80 # 类别总数(COCO 为 80) names: [ 'person', 'bicycle', 'car', ... ] # 类别名称列表修改train_dual.py中的--data参数指向此文件即可开始训练。
5. 常见问题与解决方法
5.1 环境未激活导致模块缺失
现象:运行时报错ModuleNotFoundError: No module named 'torch'
原因:未激活yolov9conda 环境
解决:
conda activate yolov9可通过conda env list查看当前可用环境。
5.2 显存不足(Out of Memory)
现象:训练时出现CUDA out of memory
解决方案:
- 降低
--batch批次大小(如改为 32 或 16) - 减小
--img图像尺寸(如改为 320 或 416) - 使用更小模型(如
yolov9-c.yaml替代yolov9-e.yaml)
5.3 推理结果为空或漏检严重
可能原因:
- 输入图像不在支持范围内(非 JPG/PNG 格式)
- 检测阈值过高(默认
conf=0.25,可尝试调低) - 模型权重未正确加载
检查方法:
ls -l ./yolov9-s.pt确认权重文件存在且非零字节。
5.4 自定义数据训练不收敛
建议排查点:
- 标注文件路径是否正确映射到
data.yaml - label ID 是否从 0 开始连续编号
- 是否开启
--close-mosaic提升后期收敛性 - 学习率是否合适(可通过
--lr0调整初始学习率)
6. 进阶技巧与优化建议
6.1 使用 TensorBoard 查看训练曲线
训练过程中,日志自动记录于runs/train/yolov9-s/目录下。你可以启动 TensorBoard 实时监控:
tensorboard --logdir runs/train然后通过浏览器访问指定端口即可查看 loss、mAP、学习率等变化趋势。
6.2 导出模型用于部署
训练完成后,可将模型导出为 ONNX 或其他格式以便部署:
python export.py --weights runs/train/yolov9-s/weights/best.pt --include onnx engine --imgsz 640支持格式包括:
onnx:通用中间表示engine:TensorRT 引擎(需 CUDA 环境)torchscript:PyTorch 原生序列化格式
6.3 多卡训练加速(可选)
若有多张 GPU,可启用分布式训练:
python -m torch.distributed.run --nproc_per_node=2 train_dual.py --device 0,1 ...注意调整--batch总量以充分利用算力。
6.4 可视化预测结果
除了保存图像外,还可以交互式查看结果:
from utils.plots import Annotator import cv2 img = cv2.imread('data/images/horses.jpg') results = model(img) for r in results: annotator = Annotator(img) boxes = r.boxes for box in boxes: b = box.xyxy[0] # 获取左上右下坐标 c = box.cls # 类别索引 annotator.box_label(b, model.names[int(c)]) img_with_box = annotator.result() cv2.imshow('Detection', img_with_box) cv2.waitKey(0)7. 总结
本文带你完整走完了 YOLOv9 的入门全流程,涵盖环境使用、推理、训练、数据准备和常见问题处理。核心要点总结如下:
- 镜像优势显著:预装环境避免依赖冲突,
conda activate yolov9即可进入工作状态。 - 推理只需一条命令:
detect_dual.py支持图片、视频、摄像头等多种输入源。 - 训练高度可配置:通过参数灵活控制 batch size、epoch、数据增强等。
- 数据格式必须规范:遵循 YOLO 标注格式,合理组织
data.yaml。 - 问题有迹可循:显存不足、环境错误、训练不收敛均有明确应对策略。
现在,你已经具备独立运行 YOLOv9 的能力。下一步可以尝试:
- 在自己的数据集上微调模型
- 测试不同尺寸输入对速度与精度的影响
- 将模型导出并在边缘设备上部署
AI 视觉的大门已经打开,YOLOv9 是你探索世界的强大工具。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。