零基础也能用!YOLOv9训练与推理镜像保姆级教程
你是不是也遇到过这种情况:想上手目标检测,却被复杂的环境配置劝退?下载代码、安装依赖、版本冲突、CUDA报错……还没开始训练,就已经被“环境地狱”耗尽耐心。
别担心,今天这篇教程就是为你准备的。我们不讲复杂原理,也不堆砌术语,只用最直白的方式带你从零开始,5分钟内跑通YOLOv9的推理和训练。
本文使用的YOLOv9 官方版训练与推理镜像,已经预装了所有必要组件——PyTorch、CUDA、OpenCV、模型权重、甚至官方代码库都给你放好了。你只需要会敲几条命令,就能立刻看到效果。
无论你是学生、工程师,还是刚入门AI的小白,只要跟着一步步操作,一定能成功运行自己的第一个YOLOv9项目。
1. 镜像到底帮你省了哪些事?
在正式操作前,先搞清楚一件事:这个镜像到底有多“省心”?
传统方式部署YOLOv9,你需要做这些:
- 手动克隆WongKinYiu/yolov9仓库
- 创建conda环境
- 安装pytorch==1.10.0 + torchvision + torchaudio(还得匹配CUDA 12.1)
- 安装numpy、opencv、pandas等几十个依赖
- 下载yolov9-s.pt权重文件
- 解决各种版本不兼容问题……
而使用本镜像后,以上所有步骤全部跳过。镜像已经为你准备好:
- PyTorch 1.10.0 + CUDA 12.1 环境
- Python 3.8.5
- 所有常用深度学习库(包括OpenCV、Matplotlib、TQDM等)
- YOLOv9官方代码库(位于
/root/yolov9) - 预下载好的
yolov9-s.pt权重文件
也就是说,你一进入环境,就已经站在了“可以立刻运行”的起跑线上。
2. 第一步:激活环境,进入代码目录
启动镜像后,默认你会处于base环境中。首先需要切换到YOLOv9专用环境。
2.1 激活 conda 环境
conda activate yolov9这一步非常重要。如果不激活环境,系统找不到对应的PyTorch版本和依赖包,后续命令会直接报错。
提示:你可以通过
conda env list查看当前有哪些环境。如果看到yolov9 *表示已成功激活。
2.2 进入代码主目录
cd /root/yolov9所有训练、推理脚本都在这个目录下。接下来的操作都将基于此路径进行。
3. 第二步:先看效果——模型推理实战
新手最容易获得成就感的方式,就是“先看结果”。我们先让模型跑起来,看看它能不能识别图片中的物体。
3.1 运行默认推理命令
执行以下命令:
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 0 | 使用第0号GPU(如果你有多个GPU) |
--weights | 使用哪个模型权重文件,这里用的是轻量级的s版本 |
--name | 输出结果保存的文件夹名 |
3.2 查看检测结果
运行完成后,结果会自动保存在:
runs/detect/yolov9_s_640_detect/你可以通过文件浏览器或命令行查看生成的图片:
ls runs/detect/yolov9_s_640_detect/打开horses.jpg的检测结果图,你会发现画面中每匹马都被准确框出,并标注了类别“horse”和置信度分数。
成功了!你的YOLOv9已经能“看见世界”了。
4. 第三步:动手训练——用自己的数据训练模型
现在你已经看到了推理效果,下一步就是让模型学会识别你关心的目标。比如你想检测工地上的安全帽、工厂里的缺陷零件,或者校园里的电动车。
4.1 数据集准备:必须按YOLO格式组织
YOLO系列模型对数据格式有固定要求。你需要准备三样东西:
- 图像文件:JPG/PNG格式,放在一个文件夹里
- 标签文件:每个图像对应一个
.txt文件,内容是归一化后的边界框坐标 - data.yaml 配置文件:说明类别名称、训练集/验证集路径
标准结构如下:
my_dataset/ ├── images/ │ ├── train/ │ └── val/ ├── labels/ │ ├── train/ │ └── val/ └── data.yamldata.yaml示例:
train: /path/to/my_dataset/images/train val: /path/to/my_dataset/images/val nc: 3 names: ['helmet', 'person', 'bicycle']注意:请把
data.yaml中的路径改成你自己数据的实际位置。
4.2 开始训练:一条命令搞定
确认数据准备好后,运行训练命令:
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我们来快速解读几个关键参数:
--batch 64:每次喂给模型64张图(根据显存调整,太大可能OOM)--epochs 20:整个数据集训练20轮--weights '':从头开始训练(不加载预训练权重)--close-mosaic 15:前15轮用Mosaic增强,后面关闭以稳定收敛
训练过程中,你会看到实时输出的日志,包括损失值、mAP等指标。
4.3 训练结果保存在哪?
训练结束后,模型会自动保存在:
runs/train/yolov9-s/里面包含:
weights/best.pt:表现最好的模型weights/last.pt:最后一轮的模型results.png:训练曲线图(loss、mAP等)
你可以把这些模型拿去推理,也可以继续微调。
5. 常见问题与避坑指南
即使用了开箱即用的镜像,有些小细节还是容易踩坑。以下是新手最常见的几个问题及解决方法。
5.1 忘记激活环境 → 报错 ModuleNotFoundError
现象:运行python detect_dual.py时报错找不到 torch 或 cv2。
原因:没有执行conda activate yolov9
解决方法:
conda activate yolov9建议把这个命令写进你的操作清单第一步,养成习惯。
5.2 显存不足(CUDA Out of Memory)
现象:训练时突然中断,提示CUDA out of memory
原因:batch size 太大,或图像分辨率太高
解决方法:
- 降低
--batch值(如从64降到32或16) - 减小
--img尺寸(如从640降到320) - 使用更小的模型(如改用yolov9-tiny,虽然镜像没预装,但可自行下载)
经验建议:在消费级显卡(如RTX 3060/3070)上,batch=32、img=640 是比较稳妥的选择。
5.3 推理结果为空 → 图片没检测到任何物体
现象:运行detect_dual.py后生成了图片,但没有任何框
可能原因:
- 使用了错误的权重文件(比如用了训练中途的模型)
- 输入图片本身不含常见类别物体
- 置信度阈值太高
检查方法: 查看是否设置了--conf-thres参数。如果没有,默认是0.25。可以尝试降低到0.1:
python detect_dual.py --source img.jpg --weights yolov9-s.pt --conf-thres 0.15.4 如何测试视频或摄像头?
YOLOv9支持直接检测视频和实时摄像头画面。
检测本地视频:
python detect_dual.py --source my_video.mp4 --weights yolov9-s.pt调用摄像头(通常是0号设备):
python detect_dual.py --source 0 --weights yolov9-s.pt运行后会弹出窗口,实时显示检测结果。按q键退出。
6. 实用技巧:让YOLOv9更好用
除了基本功能,还有一些小技巧能大幅提升使用体验。
6.1 自定义输出目录
默认结果保存在runs/detect/xxx,如果你想指定路径,可以用--project和--name:
python detect_dual.py \ --source horses.jpg \ --weights yolov9-s.pt \ --project /root/my_results \ --name horse_test结果将保存在/root/my_results/horse_test/
6.2 只保存检测框坐标,不画图
有时候你不需要可视化图片,只想拿到坐标数据用于后续处理。
加上--save-txt参数即可:
python detect_dual.py --source horses.jpg --weights yolov9-s.pt --save-txt会在labels/目录下生成同名.txt文件,格式为:
class_id center_x center_y width height confidence非常适合做自动化分析。
6.3 提高推理速度的小技巧
如果你追求更快的响应速度,可以尝试:
使用
--half启用半精度推理(速度快,显存少,精度略降):python detect_dual.py --source 0 --weights yolov9-s.pt --half关闭数据增强(仅推理时有效):
--augment False
7. 总结:你已经掌握了YOLOv9的核心用法
恭喜你!通过这篇教程,你已经完成了以下关键动作:
- 成功激活YOLOv9专用环境
- 跑通了第一张图片的推理任务
- 理解了数据集的组织方式
- 完成了自定义数据的模型训练
- 掌握了常见问题的排查方法
- 学会了几项实用技巧提升效率
更重要的是,你没有被繁琐的环境配置拖住脚步,而是把时间花在真正有价值的事情上——让模型为你所用。
这个镜像的设计理念就是:“让技术回归应用本质”。你不一定要成为PyTorch专家,也能用好最先进的目标检测模型。
下一步你可以尝试:
- 用自己的数据集训练一个专属模型
- 把模型部署到边缘设备(如Jetson Nano)
- 结合Flask做一个简单的网页检测工具
AI的大门已经打开,而你,已经迈出了最关键的一步。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。