1. 项目背景与核心价值煤矿传送带异物检测是矿山安全生产中的关键环节。传送带上出现的金属件、木块、石块等异物可能引发设备卡死、皮带撕裂甚至火灾等严重事故。传统人工巡检方式存在效率低、漏检率高的问题而基于计算机视觉的自动检测系统能够实现7×24小时不间断监控。这个数据集专门针对煤矿场景设计包含784张高清图像所有样本均标注了传送带上的异物位置。采用VOC和YOLO两种格式存储满足不同训练框架的需求。作为单类别数据集它聚焦于异物这一核心检测目标避免了多类别数据分散模型注意力的问题。2. 数据集技术细节解析2.1 数据采集与标注规范原始图像采集自多个煤矿的传送带监控系统分辨率统一为1920×1080。采集时考虑了以下场景因素不同光照条件矿井照明/自然光混合传送带运行速度变化0.5-3.5m/s煤流厚度差异10-50cm常见异物类型金属、木材、塑料等标注采用labelImg工具完成每个异物标注框都经过三位标注员的交叉验证。标注规范要求异物边缘清晰可见时标注框紧贴物体边缘部分遮挡物体按可见部分标注并标记为difficult小于30×30像素的物体不标注2.2 数据格式详解2.2.1 VOC格式结构数据集包含标准的VOC2007目录结构VOCdevkit/ └── VOC2007/ ├── Annotations/ # XML标注文件 ├── ImageSets/ │ └── Main/ # 训练/验证/测试划分文件 └── JPEGImages/ # 原始图像典型XML标注文件示例annotation filenameIMG_20230512_143022.jpg/filename size width1920/width height1080/height depth3/depth /size object nameforeign_object/name bndbox xmin856/xmin ymin322/ymin xmax901/xmax ymax378/ymax /bndbox /object /annotation2.2.2 YOLO格式规范YOLO格式采用txt文件存储标注每个图像对应一个同名txt文件。标注格式为class_id x_center y_center width height其中坐标值均为归一化后的相对值0-1之间。示例内容0 0.458333 0.324074 0.046875 0.051852注意VOC格式使用绝对坐标YOLO格式使用相对坐标。训练前需要确认框架要求的输入格式。2.3 数据分布与增强建议数据集包含784张图像共标注异物1347个。统计显示异物尺寸分布30-50像素占比42%50-100像素占比35%位置分布传送带中央区域占比68%边缘区域32%异物类型金属件51%木块29%其他20%建议训练时加入以下增强策略随机亮度调整±20%高斯噪声σ0.01小目标复制粘贴增强模拟煤尘雾化效果3. 模型训练实战指南3.1 环境配置推荐使用Python 3.8和PyTorch 1.12环境conda create -n coal_det python3.8 conda activate coal_det pip install torch1.12.1cu113 torchvision0.13.1cu113 --extra-index-url https://download.pytorch.org/whl/cu113 pip install ultralytics opencv-python albumentations3.2 YOLOv8训练配置创建dataset.yaml配置文件path: /path/to/dataset train: images/train val: images/val names: 0: foreign_object启动训练命令yolo detect train datadataset.yaml modelyolov8n.pt epochs100 imgsz640 batch16关键参数说明imgsz: 根据GPU显存选择建议不小于640batch: 显存充足时可增大提升训练速度workers: 数据加载线程数建议设为CPU核心数的70%3.3 训练过程监控使用TensorBoard监控关键指标tensorboard --logdir runs/detect重点关注train/box_loss: 建议最终值0.05val/mAP0.5: 目标0.85val/precision和recall的平衡3.4 模型优化技巧针对小目标的改进# 修改model.yaml anchors: - [5,6, 8,14, 15,11] # 小目标专用anchor - [10,13, 16,30, 33,23] - [30,61, 62,45, 59,119]关键层修改# 增加小目标检测头 head: - [-1, 1, Conv, [256, 3, 2]] # P5/32 - [[-1, 6], 1, Concat, [1]] # cat backbone P4 - [-1, 3, C2f, [512]] # 新增检测头4. 部署与性能优化4.1 模型导出选项推荐导出格式yolo export modelbest.pt formatonnx opset12 simplifyTrue不同部署场景建议边缘设备TensorRT格式FP16量化云服务ONNX格式移动端CoreML格式4.2 推理加速技巧TensorRT优化trtexec --onnxbest.onnx --saveEnginebest.engine --fp16多流处理# 创建多个推理实例 models [YOLO(best.engine) for _ in range(4)] # 轮询分配推理任务4.3 实际部署问题排查常见问题及解决方案问题现象可能原因解决方法漏检小目标输入分辨率不足提升imgsz至1280误检煤块训练数据不均衡增加负样本推理速度慢后处理耗时启用TensorRT NMS插件内存泄漏未释放模型实例使用with语句管理资源5. 数据集扩展建议增量数据采集方向极端光照条件强反光/低照度动态模糊场景高速传送带多异物重叠情况半自动标注流程graph TD A[新数据] -- B[模型预标注] B -- C[人工校验] C -- D[加入训练集]合成数据生成 使用Blender创建3D异物模型结合煤流材质渲染# 示例合成代码 import bpy bpy.ops.import_mesh.stl(filepathmetal_part.stl) bpy.context.object.location (0, 0, 0.5) bpy.context.scene.render.filepath synthetic.png bpy.ops.render.render(write_stillTrue)实际使用中我们发现在传送带边缘区域的检测准确率比中央区域低约12%。通过在训练集中针对性增加边缘区域样本可使整体mAP提升5-7个百分点。建议每季度更新一次数据集版本持续优化模型性能。