ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

汽车轮胎状态目标检测 YOLOv8 完整训练 测试教程

汽车轮胎状态目标检测 YOLOv8 完整训练  测试教程 数据集轮胎三分类BAD_Tyres、BALD_Tyres、NORMAL_Tyres环境要求Python 3.9~3.11CUDA11.8 / CUDA12.1Windows / Linux 硬件显存参考yolov8s ≥6GByolov8m ≥8GB缺陷纹理多优先使用yolov8s/yolov8m不推荐 yolov8n 数据集 yaml 内容汽车轮胎状态目标检测数据集介绍train: ../train/images val: ../valid/images test: ../test/images nc: 3 names: [BAD_Tyres, BALD_Tyres, NORMAL_Tyres]一、环境安装1. 安装依赖库# 安装ultralytics YOLOv8框架 pip install ultralytics opencv-python matplotlib tqdm如果使用 GPU提前安装对应 cuda 版本 pytorchCPU 可以跑训练但速度很慢。二、数据集准备1. 标准目录结构tire_dataset/ ├─ images │ ├─ train/ │ ├─ valid/ │ └─ test/ ├─ labels │ ├─ train/ │ ├─ valid/ │ └─ test/ └─ data.yaml图片与标签文件名必须完全一致后缀不同例001.jpg↔001.txt没有轮胎目标的图片对应空 txt 标签文件。2. 修改 data.yaml必做防止找不到图片报错增加path填写数据集根目录绝对路径# Linux示例 path: /home/user/tire_dataset # Windows示例 path: D:/datasets/tire_dataset path: D:/datasets/tire_dataset train: images/train val: images/valid test: images/test nc: 3 names: [BAD_Tyres, BALD_Tyres, NORMAL_Tyres]三、模型训练⚠️业务重点轮胎检测属于安全相关场景训练重点关注故障类BAD_Tyres、BALD_Tyres的召回率尽量减少漏检。方式 1命令行 CLI推荐yolo train modelyolov8s.pt datadata.yaml imgsz800 epochs120 batch8 patience15 device0参数说明表格参数说明modelyolov8s.pt预训练权重追求精度换yolov8m.ptdatadata.yaml数据集配置文件路径imgsz800轮胎裂纹、磨损属于细粒度纹理推荐 800 分辨率显存不足改为 640epochs120最大训练轮次可 80‑150 区间调整batch8显存不足调为 4、2出现 OOM 就降低 batch 大小patience15早停策略连续 15 轮验证集指标不提升自动停止防止过拟合device0使用 0 号 GPUCPU 训练写devicecpu方式 2Python 脚本 train_tire.pyfrom ultralytics import YOLO # 加载预训练权重 model YOLO(yolov8s.pt) if __name__ __main__: results model.train( datadata.yaml, imgsz800, epochs120, batch8, patience15, device0, projectruns/detect, nametire_train_exp ) print(训练完成)训练输出目录runs/detect/tire_train_exp/weights/best.pt验证集最优权重后续测试、推理必须使用该权重last.pt最后一轮 epoch 权重 同时输出 loss 曲线、mAP 曲线、混淆矩阵、各类别 PR 曲线。四、验证集评估 valid使用 valid 子集做调参参考不能作为最终实验指标。CLI 命令yolo val modelruns/detect/tire_train_exp/weights/best.pt datadata.yaml imgsz800Python 脚本from ultralytics import YOLO model YOLO(runs/detect/tire_train_exp/weights/best.pt) metrics model.val(datadata.yaml, imgsz800) print(fmAP50: {metrics.box.map50:.4f}) print(fmAP50‑95: {metrics.box.map:.4f}) print(fPrecision: {metrics.box.mp:.4f}) print(fRecall: {metrics.box.mr:.4f})五、独立测试集评测写实验报告必用 splittesttest 集合全程没有参与训练、早停调参代表模型真实泛化能力作为论文 / 报告最终指标。CLIyolo val modelruns/detect/tire_train_exp/weights/best.pt datadata.yaml imgsz800 splittestPython 脚本 test_tire.pyfrom ultralytics import YOLO model YOLO(runs/detect/tire_train_exp/weights/best.pt) test_metrics model.val( datadata.yaml, imgsz800, splittest ) print(轮胎数据集测试集指标) print(f测试集 mAP50 {test_metrics.box.map50:.4f}) print(f测试集 mAP50‑95 {test_metrics.box.map:.4f}) print(f平均精确率 mp {test_metrics.box.mp:.4f}) print(f平均召回率 mr {test_metrics.box.mr:.4f})六、模型推理图片 / 视频轮胎缺陷是细微纹理置信度不要设置太高防止故障漏检推荐 conf0.20~0.25。单张图片推理 Pythonfrom ultralytics import YOLO model YOLO(runs/detect/tire_train_exp/weights/best.pt) res model.predict( test_tire.jpg, imgsz800, conf0.22, iou0.45, saveTrue ) # 解析检测结果 for r in res: boxes r.boxes for box in boxes: cls_id int(box.cls[0]) conf float(box.conf[0]) xyxy box.xyxy[0].tolist() print(f类别ID:{cls_id},置信度:{conf:.3f},坐标:{xyxy})saveTrue绘制框的图片保存到runs/detect/predict批量图片推理 CLIyolo predict modelruns/detect/tire_train_exp/weights/best.pt source./test_images imgsz800 conf0.22 saveTrue视频推理车场 / 工位监控视频yolo predict modelruns/detect/tire_train_exp/weights/best.pt sourcetire_video.mp4 imgsz800 conf0.22 saveTrue✅业务重要提示不要单帧直接判定轮胎故障工程部署建议做多帧结果融合多张图片综合判定过滤泥水、光影带来的瞬时误识别。七、模型导出 ONNX用于边缘设备部署CLIyolo export modelruns/detect/tire_train_exp/weights/best.pt formatonnx imgsz800Pythonfrom ultralytics import YOLO model YOLO(runs/detect/tire_train_exp/weights/best.pt) model.export(formatonnx, imgsz800)导出 onnx 可用于 NCNN、OpenVINO、C 工业工控机部署。八、常见问题与调优方案训练找不到图片data.yaml增加path:绝对根路径核对 images、labels 文件名一一对应。轮胎裂纹、磨损缺陷漏检严重将imgsz800不要使用 640推理 conf 降低到 0.20‑0.25使用 yolov8m 替代 yolov8s检查故障类样本数量样本少可以做复制增强。显存溢出 OOM调小 batchbatch4 / 2。大量误检把地面杂物识别成轮胎推理 conf 适度调高扩充复杂背景、车场干扰样本mosaic 数据增强默认开启不要关闭。故障类别召回率低安全检测场景召回优先可以适当降低 conf对故障样本做复制、马赛克增强平衡样本分布。九、完整实验流程总结整理数据集修改data.yaml添加path绝对路径安装环境执行训练产出best.pt最优权重使用 val 验证集进行调参使用splittest跑独立测试集拿到报告最终指标图片、视频推理肉眼验证效果需要部署导出 onnx 模型
返回列表