YOLOv8模型训练
YOLOv8官方文档:文档地址
一、YOLO标签格式说明
Section titled “一、YOLO标签格式说明”-
每张图片对应一个
.txt文件 -
每一行代表一个目标框:
Terminal window class_id x y w h -
字段说明:
class_id:类别编号x:中心点x(归一化)y:中心点y(归一化)w:宽度(归一化)h:高度(归一化)
-
示例:
Terminal window 0 0.5 0.5 0.2 0.3表示:
- 类别0
- 位于图片中心
- 宽20%,高30%
二、数据集格式
Section titled “二、数据集格式”-
本地目录结构(以保存在yolo_test为例)
Terminal window D:/yolo_test├── images│ ├── train│ └── val├── labels│ ├── train│ └── val└── data.yaml -
容器内对应路径(以保存在yolo_data为例):
Terminal window /yolo_data/images/train/yolo_data/labels/train -
data.yaml 示例:
path: /yolo_datatrain: images/trainval: images/valnames:0: person1: helmet
三、环境准备
Section titled “三、环境准备”-
安装 Docker Desktop(Windows) 官网下载:https://www.docker.com/products/docker-desktop/
-
启动 Docker,并确保运行正常
-
配置文件共享
打开 Docker Desktop → Settings → Resources → File Sharing
添加本地目录:
D:\yolo_test(用于挂载 Docker 容器,存储数据集和结果)保存后重启 Docker
四、拉取 YOLOv8 Docker 镜像
Section titled “四、拉取 YOLOv8 Docker 镜像”-
打开 PowerShell(管理员模式)
-
执行命令拉取官方镜像或Docker Desktop → Docker Hub → 搜索ultralytics → Pull:
Terminal window docker pull ultralytics/ultralytics:latest -
验证镜像是否存在:
Terminal window docker images
五、运行容器并挂载目录
Section titled “五、运行容器并挂载目录”-
执行运行命令:
Terminal window docker run -it --rm -v D:/yolo_test:/yolo_data --name yolo_v8 ultralytics/ultralytics:latest -
参数说明:
-it:进入交互式终端--rm:容器退出自动删除-v:挂载本地目录到容器--name:容器命名
-
退出容器:
exit
六、测试YOLOv8图片检测
Section titled “六、测试YOLOv8图片检测”-
准备测试图片
在
D:\yolo_test目录下放入:test.jpg⚠️ 注意:
- 文件名必须完全一致(区分大小写)
-
执行检测命令(容器内)
Terminal window yolo detect predict model=yolov8n.pt source=/yolo_data/test.jpg save=True project=/yolo_data/runs name=detect -
参数说明:
model=yolov8n.pt:轻量模型source:输入图片路径save=True:保存检测结果project:输出目录name:结果文件夹名称
七、检测结果验证
Section titled “七、检测结果验证”-
检测成功后,终端会输出类似日志:
Terminal window image 1/1 /yolo_data/test.jpg: 640x480 ... Results saved to /yolo_data/runs/detect -
查看本地结果目录:D:\yolo_test\runs\detect
-
成功标志:
- 出现带检测框的图片
- 正确识别目标
八、正式训练模型(使用GPU)
Section titled “八、正式训练模型(使用GPU)”- 打开容器
Terminal window docker run -it --gpus all --shm-size=8g -v D:/yolo_test:/yolo_data --name yolo_v8 ultralytics/ultralytics:latest - 参数说明:
gpus all:启用GPUshm-size=8g:防止DataLoader崩溃
九、开始训练模型
Section titled “九、开始训练模型”-
在容器内执行训练命令:
Terminal window yolo detect train model=yolov8n.pt data=/yolo_data/data.yaml epochs=10 imgsz=640 batch=4 workers=2 device=0 project=/yolo_data/runs name=exp1 -
参数说明:
model:预训练模型data:数据配置文件epochs:训练轮数imgsz:输入尺寸batch:批大小workers:数据加载线程数device:GPU编号(0表示第一张卡)project:输出目录name:输出模型的文件名
十、训练结果说明
Section titled “十、训练结果说明”-
模型输出路径:
Terminal window /yolo_data/runs/exp1/weights/best.pt -
重要文件:
best.pt:最佳模型(推荐使用)last.pt:最后一轮模型
-
可查看内容:
- loss 曲线
- 精度指标(mAP)
- 训练日志
十一、使用训练模型进行检测
Section titled “十一、使用训练模型进行检测”-
执行检测命令:
Terminal window yolo detect predict model=/yolo_data/runs/exp1/weights/best.pt source=/yolo_data/images/val project=/yolo_data/runs name=predict -
输出内容:
- 检测图片(带框)
- 默认不输出标签文件
-
输出路径:
Terminal window /yolo_data/runs/predict
十二、输出检测标签
Section titled “十二、输出检测标签”-
执行命令:
Terminal window yolo detect predict model=/yolo_data/runs/exp1/weights/best.pt source=/yolo_data/images/val save_txt=True save_conf=True project=/yolo_data/runs name=predict -
输出内容:
.txt标注文件- 每个框的置信度
-
输出路径:
Terminal window /yolo_data/runs/predict/yolo_data/runs/predict/labels