完整教程:从0到1在Windows下训练YOLOv8模型
YOLOv8在Windows下训练模型的完整步骤
一、环境配置
1. 安装CUDA(如果尚未安装)
- 确保已安装与GPU兼容的CUDA版本
- 从NVIDIA官网下载并安装CUDA Toolkit
2. 创建并配置Python虚拟环境
# 创建虚拟环境
conda create -n yolov8 python=3.8 -y# 激活虚拟环境
conda activate yolov8# 安装PyTorch和Torchvision(推荐使用GPU版本)
# 可以参考:https://pytorch.org/get-started/locally/
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118# 安装Ultralytics库(包含YOLOv8)
pip install ultralytics
注意:安装时确保使用与CUDA版本兼容的PyTorch版本
二、数据集准备
1. 收集并标注图像
- 使用LabelImg等工具标注图像数据集
- 安装LabelImg(推荐使用国内源):
pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple
2. 数据集格式要求
- 图片文件:放在
images/train/
、images/val/
、images/test/
文件夹中 - 标签文件:与图片同名的
.txt
文件,放在labels/train/
、labels/val/
、labels/test/
中 - 每个标签文件格式:
<class_id> <x_center> <y_center> <width> <height>
-
- 坐标归一化到[0,1]范围
- 以空格分隔
重要:如果使用LabelImg标注,需要将XML格式转换为YOLO格式(可使用脚本转换)
3. 创建数据集配置文件(如mydata.yaml
)
train: ./images/train/
val: ./images/val/
test: ./images/test/nc: 3 # 类别数量
names: ['class_1', 'class_2', 'class_3'] # 类别名称
三、模型训练
1. 使用命令行训练(推荐)
yolo train data=mydata.yaml model=yolov8n.pt epochs=100 imgsz=640 batch=16 device=0
参数说明:
data
: 数据集配置文件路径model
: 预训练模型(如yolov8n.pt)epochs
: 训练轮数imgsz
: 输入图像尺寸(640为常用值)batch
: 批次大小(根据GPU显存调整)device
: 运行设备(0表示GPU,'cpu'表示CPU)
2. 使用Python脚本训练(如果命令行有问题)
创建train.py
文件,内容如下:
from ultralytics import YOLO# 加载模型
model = YOLO('yolov8n.pt')# 训练模型
model.train(data='mydata.yaml',epochs=100,imgsz=640,batch=16,device=0
)
然后在虚拟环境中运行:
python train.py
四、模型测试
训练完成后,使用以下命令测试模型:
yolo predict model=runs/train/exp/weights/best.pt source='your_image.jpg'
或者使用Python脚本:
from ultralytics import YOLO# 加载训练好的模型
model = YOLO('runs/train/exp/weights/best.pt')# 进行预测
results = model.predict('your_image.jpg', save=True)# 查看结果
print(results)
五、常见问题解决
- GPU无法使用:
-
- 确保CUDA版本与PyTorch兼容
- 在命令中指定
device=0
或device='cuda'
- 多线程问题:
-
- 如果遇到报错,尝试将训练代码放在
if __name__ == '__main__':
中
- 如果遇到报错,尝试将训练代码放在
- 路径问题:
-
- Windows路径使用正斜杠
/
或双反斜杠\\
- 示例:
data='C:/datasets/mydata.yaml'
- Windows路径使用正斜杠
- 显存不足:
-
- 减小
batch
参数(如改为8或4) - 降低
imgsz
(如改为416)
- 减小
六、推荐工具
- Roboflow:直接下载已标注数据集(https://universe.roboflow.com/)
- Autodl云服务器:一键配置环境
重要提示:训练过程中,模型会自动保存在runs/train/exp/weights/
目录下,其中best.pt
是性能最好的模型。
YOLOv8n.pt 的获取方式
yolov8n.pt 不是 ultralytics 库安装后自带的,而是在首次使用时自动从互联网下载的。
详细说明:
- 安装 ultralytics 后不会自动下载模型文件:
-
pip install ultralytics
只会安装库本身- 模型文件(如 yolov8n.pt)需要在首次使用时下载
YOLOv8现成标注好的数据集推荐
是的,YOLOv8有现成标注好的数据集,您可以直接使用开源数据集快速跑一个demo训练,无需自己标注数据。这里有一个现成的数据集推荐:
推荐数据集(直接可用)
链接:https://pan.quark.cn/s/17cbfbb4850c
这个数据集包含:
- 训练集(train)
- 验证集(va