本溪市网站建设_网站建设公司_自助建站_seo优化
2025/12/18 12:45:14 网站建设 项目流程

【yolo传送带缺陷检测数据集】2345张,nc:4
names: [‘block’, ‘crack’, ‘foreign’, ‘hole’]
名称: [‘阻碍物’, ‘裂纹’, ‘异物’, ‘孔洞’]共4194张,8:1:1比例划分
train:1876张,val:234张,test:235张
标注文件为YOLO适用的txt格式。可以直接用于yolo模型训练。

1


📊 一、数据集信息总表

项目描述
数据集名称YOLO传送带缺陷检测数据集(Conveyor Belt Defect Detection Dataset)
应用场景工业自动化质检、智能工厂、传送带实时监控
图像总数2,345 张
数据划分比例Train : Val : Test = 8 : 1 : 1
- 训练集(train)1,876 张
- 验证集(val)234 张
- 测试集(test)235 张
标注格式YOLO TXT 格式(每张图对应一个.txt文件)
任务类型目标检测(Object Detection)
类别数量(nc)4
图像来源工业相机拍摄传送带表面(金属/橡胶材质)
光照条件均匀工业照明,部分含反光、阴影

🏷️ 二、缺陷类别定义

类别 ID英文名中文名典型特征
0block阻碍物非传送带本体的凸起或附着物(如螺丝、胶块)
1crack裂纹线状断裂,可能贯穿或局部
2foreign异物表面粘附杂质(油污、碎屑、纤维等)
3hole孔洞穿透性或非穿透性孔缺

✅ 所有标注均已归一化为 YOLO 格式:
每行:class_id center_x center_y width height


📁 三、项目目录结构建议

conveyor_belt_defect/ ├── dataset.yaml# 数据集配置文件├── train.py# 训练脚本├── predict_demo.py# 推理演示├── export_model.py# 模型导出└── data/ ├── images/ │ ├── train/# 1876 张│ ├── val/# 234 张│ └── test/# 235 张└── labels/ ├── train/# 对应 .txt 标注├── val/ └── test/

📄 四、数据集配置文件dataset.yaml

# dataset.yamlpath:./datatrain:images/trainval:images/valtest:images/testnc:4names:['block','crack','foreign','hole']

🚀 五、完整 YOLOv8 训练代码train.py

# train.pyfromultralyticsimportYOLOimporttorchdefmain():device='cuda'iftorch.cuda.is_available()else'cpu'print(f"🚀 使用设备:{device}")# 选择基础模型(根据精度/速度需求)model_name="yolov8s.pt"# 推荐:平衡型# model_name = "yolov8n.pt" # 更快,适合边缘部署# model_name = "yolov8m.pt" # 更高精度project_name="conveyor_belt_defect_detection"# 加载预训练模型model=YOLO(model_name)# 开始训练results=model.train(data='dataset.yaml',epochs=150,# 工业缺陷需充分训练imgsz=640,# 建议 640 或 1280(裂纹/孔洞为小目标)batch=16,# 根据 GPU 显存调整(32G 可设 32)name=project_name,device=device,patience=30,# 早停容忍度(防止过拟合)save=True,plots=True,# 自动生成 PR 曲线、混淆矩阵等exist_ok=False,workers=8,optimizer='AdamW',lr0=0.01,# 初始学习率lrf=0.01,# 最终学习率 = lr0 * lrfmomentum=0.937,weight_decay=0.0005,# 数据增强(关键!提升泛化)augment=True,hsv_h=0.015,# 色调扰动(应对光照变化)hsv_s=0.7,hsv_v=0.4,degrees=5.0,# 轻微旋转(±5°)translate=0.1,scale=0.5,flipud=0.0,# 不上下翻转(传送带方向固定)fliplr=0.5,# 左右翻转(安全)mosaic=1.0,# Mosaic 增强(提升小目标检测)mixup=0.1,copy_paste=0.3# Copy-Paste 增强(对稀疏缺陷有效))# 在测试集上评估最终性能metrics=model.val(data='dataset.yaml',split='test')print("\n✅ 测试集最终结果:")print(f" mAP@0.5:{metrics.box.map50:.5f}")print(f" mAP@0.5:0.95:{metrics.box.map:.5f}")print(f" Precision:{metrics.box.mp:.5f}")print(f" Recall:{metrics.box.mr:.5f}")if__name__=='__main__':main()

运行命令:

python train.py

🔍 六、推理演示predict_demo.py

# predict_demo.pyfromultralyticsimportYOLO model=YOLO('runs/detect/conveyor_belt_defect_detection/weights/best.pt')results=model.predict(source='test_image.jpg',conf=0.25,# 工业场景建议降低阈值以提高召回iou=0.45,save=True,show=True,line_width=2,font_size=12)# 打印检测结果forresultinresults:boxes=result.boxesprint(f"检测到{len(boxes)}个缺陷")forboxinboxes:cls_id=int(box.cls.item())conf=float(box.conf.item())class_name=['block','crack','foreign','hole'][cls_id]print(f" →{class_name}(置信度:{conf:.3f})")

📤 七、模型导出(用于部署)

# export_model.pyfromultralyticsimportYOLO model=YOLO('runs/detect/conveyor_belt_defect_detection/weights/best.pt')# 导出为 ONNX(通用)model.export(format='onnx',imgsz=640,simplify=True)# 导出为 TensorRT(NVIDIA Jetson / GPU)model.export(format='engine',imgsz=640,half=True,device=0)# 导出为 OpenVINO(Intel CPU)model.export(format='openvino',imgsz=640)

以上文字及代码仅供参考学习使用

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询