煤矿井下智能监控、打钻过程自动化监测、安全行为识别、灾害防治辅助系统 检测工人是否佩戴安全帽 推动煤矿智能化发展 智能矿山、工业AI、安全生产煤矿井下钻场目标检测数据集文章目录**煤矿井下钻场目标检测数据集信息表**类别标签及标注数量统计表**类别标签及目标分布统计表****数据集特点总结****典型应用方向**✅ 一、系统环境搭建CUDA Anaconda Python1. 确认 CUDA 驱动GPU 加速2. 安装 AnacondaPython 包管理器3. 创建 Python 虚拟环境4. 安装必要依赖✅ 二、数据集结构与格式转换VOC → YOLO目录结构建议VOC → YOLO 转换脚本✅ 三、数据划分train/val/test✅ 四、data.yaml 配置文件✅ 五、调用 YOLOv8 官方预训练模型进行训练✅ 六、推理代码单图 / 批量 / 视频1. 单张图像推理2. 批量图像推理3. 视频检测井下监控视频✅ 七、模型评估1. 在验证集上评估2. 在测试集上独立评估最终性能✅ 八、模型导出ONNX / TensorRT / TFLite✅ 九、工业场景优化建议✅ 十、应用场景与拓展✅ 应用场景✅ 可拓展方向✅ 十一、总结煤矿井下钻场目标检测数据集信息表项目内容数据集名称煤矿井下钻场目标检测数据集总图像数量70,948 张数据大小8.8 GB标注格式PASCAL VOC.xml、YOLO.txt双格式提供目标类别数5 类应用场景煤矿井下智能监控、打钻过程自动化监测、安全行为识别、灾害防治辅助系统数据来源煤矿用本安型执法记录仪实地拍摄构建流程数据采集 → 数据清洗 → 人工标注 → 专家抽检核查 → 标准化发布类别标签和标注数量信息整理的表格类别标签及标注数量统计表类别编号英文标签中文名称标注数量实例数0chuck夹持器54,2071coal_miner煤矿工人39,4822drill_pipe钻杆67,2843gripper卡盘70,2534mine_safety_helmet矿井安全帽31,119总计————262,345类别标签及目标分布统计表类别编号英文标签中文名称描述0clamp夹持器钻机中用于固定钻杆的机械装置1drill_chuck钻机卡盘控制钻杆旋转的核心部件2miner煤矿工人井下作业人员3safety_helmet矿井安全帽工人佩戴的安全防护装备常作为独立目标检测4drill_rod钻杆打钻过程中使用的长条形金属杆件✅ 注安全帽与工人可分别检测支持个体防护装备PPE合规性分析。数据集特点总结特点说明✅超大规模数据集包含70,948 张真实井下图像是目前公开中规模领先的煤矿专用目标检测数据集。✅多目标覆盖涵盖打钻作业中的关键设备与人员支持全流程智能监控。✅双标注格式支持PASCAL VOCXML和YOLOTXT格式兼容主流深度学习框架如 YOLOv5/v8、Faster R-CNN、SSD 等。✅高质量标注经过专业数据清洗与专家抽检核查确保标注准确性与一致性。✅多样化场景来自多个不同钻场涵盖不同光照、烟尘、遮挡、角度等复杂井下环境提升模型鲁棒性。✅高应用价值支持打钻过程自动化监控、人员行为分析、设备状态识别、安全隐患预警等智能化应用。典型应用方向✅打钻过程实时监测自动识别钻杆进给、卡盘动作等关键操作。✅安全合规检测检测工人是否佩戴安全帽实现PPE自动检查。✅设备状态分析通过夹持器和卡盘位置判断设备运行状态。✅智能巡检系统集成至煤矿AI监控平台提升井下作业安全性。✅科研与算法训练为深度学习模型提供高质量训练数据推动煤矿智能化发展。你提供的煤矿井下钻场目标检测数据集是一个极具工业价值和研究意义的高质量数据集包含70,948 张图像、5 类关键目标夹持器、钻机卡盘、煤矿工人、矿井安全帽、钻杆支持 PASCAL VOCXML和 YOLO 格式总大小 8.8GB。该数据集可用于构建智能打钻监控系统、人员行为识别、设备状态监测、安全预警等智能化煤矿应用。以下是从环境搭建 → 数据预处理 → YOLOv8 模型训练 → 推理 → 评估 → 部署的完整全流程确保你可以高效利用这个大规模工业数据集。✅ 一、系统环境搭建CUDA Anaconda Python1. 确认 CUDA 驱动GPU 加速nvidia-smi要求NVIDIA GPU建议 ≥ RTX 3090 / A100CUDA 版本 ≥ 11.8推荐 12.1如未安装驱动请前往 NVIDIA 官网 下载。2. 安装 AnacondaPython 包管理器前往 https://www.anaconda.com/products/distribution 下载并安装。3. 创建 Python 虚拟环境# 创建名为 coal_mine_detection 的环境conda create-ncoal_mine_detectionpython3.9# 激活环境conda activate coal_mine_detection4. 安装必要依赖# 安装 PyTorch以 CUDA 11.8 为例pipinstalltorch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118# 安装 YOLOv8 官方库pipinstallultralytics opencv-python numpy matplotlib tqdm scikit-learn pandas pillow lxml# 可选TensorBoard 可视化pipinstalltensorboard# 验证 GPU 是否可用python-cimport torch; print(torch.cuda.is_available())# 应输出 True✅lxml用于解析 XMLVOC 格式✅ 二、数据集结构与格式转换VOC → YOLOYOLOv8 默认使用 YOLO 格式因此需要将 VOC XML 转换为.txt标注。目录结构建议coal_mine_dataset/ ├── images/ │ ├── train/ │ ├── val/ │ └── test/ ├── labels_voc/ # 原始 XML 文件 ├── labels/ # 转换后的 YOLO .txt 文件 └── data.yamlVOC → YOLO 转换脚本# convert_voc_to_yolo.pyimportosimportxml.etree.ElementTreeasETfrompathlibimportPath# 类别映射必须与训练一致classes{clamp:0,# 夹持器drill_chuck:1,# 钻机卡盘miner:2,# 煤矿工人safety_helmet:3,# 矿井安全帽drill_rod:4# 钻杆}defconvert(size,box):dw1./size[0]dh1./size[1]x(box[0]box[1])/2.0-1y(box[2]box[3])/2.0-1wbox[1]-box[0]hbox[3]-box[2]return(x*dw,y*dh,w*dw,h*dh)defconvert_annotation(xml_file,output_folder):treeET.parse(xml_file)roottree.getroot()sizeroot.find(size)wint(size.find(width).text)hint(size.find(height).text)txt_fileos.path.join(output_folder,Path(xml_file).stem.txt)withopen(txt_file,w)asf:forobjinroot.iter(object):clsobj.find(name).text.lower().strip()ifclsnotinclasses:continuecls_idclasses[cls]xmlboxobj.find(bndbox)b[float(xmlbox.find(x).text)forxin[xmin,xmax,ymin,ymax]]bbconvert((w,h),b)f.write(f{cls_id}{ .join(f{x:.6f}forxinbb)}\n)# 执行转换voc_labelscoal_mine_dataset/labels_vocyolo_labelscoal_mine_dataset/labelsos.makedirs(yolo_labels,exist_okTrue)forxml_fileinPath(voc_labels).glob(*.xml):convert_annotation(xml_file,yolo_labels)print(VOC to YOLO conversion completed.)✅ 运行后所有.xml将转为.txt存入labels/✅ 三、数据划分train/val/test# split_data.pyimportosimportrandomfrompathlibimportPath image_dircoal_mine_dataset/images_raw# 原始图像目录output_dircoal_mine_dataset/imageslabel_dircoal_mine_dataset/labels# 创建子集目录forsubsetin[train,val,test]:os.makedirs(f{output_dir}/{subset},exist_okTrue)# 获取所有图像文件images[fforfinos.listdir(image_dir)iff.endswith((.jpg,.jpeg,.png))]random.shuffle(images)# 划分比例80% train, 10% val, 10% testnlen(images)train_filesimages[:int(0.8*n)]val_filesimages[int(0.8*n):int(0.9*n)]test_filesimages[int(0.9*n):]defcopy_files(files,subset):forimginfiles:src_imgos.path.join(image_dir,img)dst_imgos.path.join(output_dir,subset,img)os.system(fcp {src_img} {dst_img})# 同步复制 labellabelPath(img).stem.txtsrc_lblos.path.join(label_dir,label)dst_lblos.path.join(coal_mine_dataset/labels,subset,label)ifos.path.exists(src_lbl):os.system(fcp {src_lbl} {dst_lbl})copy_files(train_files,train)copy_files(val_files,val)copy_files(test_files,test)print(Data split completed: 8:1:1)✅ 四、data.yaml配置文件# data.yamltrain:./coal_mine_dataset/images/trainval:./coal_mine_dataset/images/valtest:./coal_mine_dataset/images/test# 类别数量nc:5# 类别名称英文names:-clamp# 夹持器-drill_chuck# 钻机卡盘-miner# 煤矿工人-safety_helmet# 矿井安全帽-drill_rod# 钻杆# 中文名称用于可视化names_zh:-夹持器-钻机卡盘-煤矿工人-安全帽-钻杆✅ 五、调用 YOLOv8 官方预训练模型进行训练由于是工业场景光照差、遮挡多、目标小如安全帽建议使用YOLOv8m或YOLOv8l。fromultralyticsimportYOLO# 加载官方预训练模型modelYOLO(yolov8m.pt)# 推荐使用中等模型# 开始训练大规模数据可训练更久resultsmodel.train(datadata.yaml,# 数据配置文件路径epochs200,# 大数据集建议 150~300batch32,# 根据显存调整A100 可用 64imgsz640,# 图像尺寸提升小目标检测optimizerAdamW,# 更稳定优化器lr00.001,weight_decay0.0005,momentum0.937,# 数据增强关键提升泛化augmentTrue,hsv_h0.015,hsv_s0.7,hsv_v0.4,degrees10.0,translate0.1,scale0.5,shear0.0,flipud0.0,fliplr0.5,mosaic1.0,mixup0.1,copy_paste0.1,# 对小目标特别有效# 正则化dropout0.2,label_smoothing0.05,# 学习率调度cos_lrTrue,# 余弦退火# 保存与日志projectruns/train,namecoal_mine_yolov8m,saveTrue,save_period10,exist_okFalse,# 缓存内存充足时开启cacheTrue,# 分布式训练多卡# device[0,1] # 多GPU)✅ 训练时长约 12~24 小时取决于 GPU 数量✅ 六、推理代码单图 / 批量 / 视频1. 单张图像推理fromultralyticsimportYOLOfromPILimportImage modelYOLO(runs/train/coal_mine_yolov8m/weights/best.pt)resultsmodel(underground_scene.jpg,conf0.3)forrinresults:im_arrayr.plot()imImage.fromarray(im_array[...,::-1])im.show()2. 批量图像推理resultsmodel.predict(sourcecoal_mine_dataset/images/test,saveTrue,projectruns/detect,namecoal_mine_test,conf0.3,imgsz640)3. 视频检测井下监控视频resultsmodel.predict(sourcedrilling_process.mp4,saveTrue,projectruns/detect/video,namedrilling_monitoring,conf0.3,imgsz640)✅ 七、模型评估1. 在验证集上评估metricsmodel.val(datadata.yaml,splitval,batch32,imgsz640,save_jsonTrue,projectruns/val,namecoal_mine_eval)print(fmAP0.5:{metrics.box.map50:.4f})print(fmAP0.5:0.95:{metrics.box.map:.4f})print(fPrecision:{metrics.box.p:.4f})print(fRecall:{metrics.box.r:.4f})# 每类 APfori,nameinenumerate(model.names):print(f{name}: AP0.5 {metrics.box.ap[i]:.4f})2. 在测试集上独立评估最终性能test_metricsmodel.val(datadata.yaml,splittest,namefinal_test)print(fFinal Test mAP0.5:{test_metrics.box.map50:.4f})✅ 八、模型导出ONNX / TensorRT / TFLite# 导出为 ONNXmodel.export(formatonnx,dynamicTrue,opset13,imgsz640)# 导出为 TensorRTNVIDIA Jetson / 工控机model.export(formatengine,halfTrue,dynamicTrue)# 导出为 TFLite边缘设备model.export(formattflite,int8True)# 导出为 CoreMLiOSmodel.export(formatcoreml)✅ 九、工业场景优化建议问题建议光照差、对比度低使用hsv_v,CLAHE,Gamma Correction小目标安全帽、钻杆使用copy_paste,mosaic,imgsz640遮挡严重使用copy_paste,mixup实时性要求高使用yolov8s TensorRT FP16模型轻量化部署使用prune剪枝或QAT量化✅ 十、应用场景与拓展✅ 应用场景智能打钻监控系统实时检测设备与人员状态安全行为识别未戴安全帽报警钻杆计数与长度估算辅助打钻进度管理设备故障预警夹持器异常、卡盘松动识别数字孪生系统构建井下三维可视化场景✅ 可拓展方向结合 DeepSORT 实现人员/设备跟踪添加姿态估计工人动作分析构建 Web 平台实现远程监控部署到边缘计算盒子Jetson Orin✅ 十一、总结你已经掌握如何✅ 搭建大规模工业检测环境✅ 将 VOC 数据转换为 YOLO 格式✅ 划分 train/val/test 数据集✅ 使用 YOLOv8 训练煤矿井下目标检测模型✅ 完成推理、评估、模型导出全流程下一步建议构建 Flask API 提供 REST 接口集成视频流实时分析RTSP添加报警模块未戴安全帽、设备异常部署到煤矿边缘服务器或工控机如果你需要我提供Flask API 接口代码视频流实时检测脚本安全帽佩戴检测报警系统多摄像头融合监控方案欢迎继续提问祝你在智能矿山、工业AI、安全生产领域取得突破⛏️️
煤矿井下智能监控、打钻过程自动化监测、安全行为识别、灾害防治辅助系统 检测工人是否佩戴安全帽 推动煤矿智能化发展 智能矿山、工业AI、安全生产,煤矿井下钻场目标检测数据集
煤矿井下智能监控、打钻过程自动化监测、安全行为识别、灾害防治辅助系统 检测工人是否佩戴安全帽 推动煤矿智能化发展 智能矿山、工业AI、安全生产煤矿井下钻场目标检测数据集文章目录**煤矿井下钻场目标检测数据集信息表**类别标签及标注数量统计表**类别标签及目标分布统计表****数据集特点总结****典型应用方向**✅ 一、系统环境搭建CUDA Anaconda Python1. 确认 CUDA 驱动GPU 加速2. 安装 AnacondaPython 包管理器3. 创建 Python 虚拟环境4. 安装必要依赖✅ 二、数据集结构与格式转换VOC → YOLO目录结构建议VOC → YOLO 转换脚本✅ 三、数据划分train/val/test✅ 四、data.yaml 配置文件✅ 五、调用 YOLOv8 官方预训练模型进行训练✅ 六、推理代码单图 / 批量 / 视频1. 单张图像推理2. 批量图像推理3. 视频检测井下监控视频✅ 七、模型评估1. 在验证集上评估2. 在测试集上独立评估最终性能✅ 八、模型导出ONNX / TensorRT / TFLite✅ 九、工业场景优化建议✅ 十、应用场景与拓展✅ 应用场景✅ 可拓展方向✅ 十一、总结煤矿井下钻场目标检测数据集信息表项目内容数据集名称煤矿井下钻场目标检测数据集总图像数量70,948 张数据大小8.8 GB标注格式PASCAL VOC.xml、YOLO.txt双格式提供目标类别数5 类应用场景煤矿井下智能监控、打钻过程自动化监测、安全行为识别、灾害防治辅助系统数据来源煤矿用本安型执法记录仪实地拍摄构建流程数据采集 → 数据清洗 → 人工标注 → 专家抽检核查 → 标准化发布类别标签和标注数量信息整理的表格类别标签及标注数量统计表类别编号英文标签中文名称标注数量实例数0chuck夹持器54,2071coal_miner煤矿工人39,4822drill_pipe钻杆67,2843gripper卡盘70,2534mine_safety_helmet矿井安全帽31,119总计————262,345类别标签及目标分布统计表类别编号英文标签中文名称描述0clamp夹持器钻机中用于固定钻杆的机械装置1drill_chuck钻机卡盘控制钻杆旋转的核心部件2miner煤矿工人井下作业人员3safety_helmet矿井安全帽工人佩戴的安全防护装备常作为独立目标检测4drill_rod钻杆打钻过程中使用的长条形金属杆件✅ 注安全帽与工人可分别检测支持个体防护装备PPE合规性分析。数据集特点总结特点说明✅超大规模数据集包含70,948 张真实井下图像是目前公开中规模领先的煤矿专用目标检测数据集。✅多目标覆盖涵盖打钻作业中的关键设备与人员支持全流程智能监控。✅双标注格式支持PASCAL VOCXML和YOLOTXT格式兼容主流深度学习框架如 YOLOv5/v8、Faster R-CNN、SSD 等。✅高质量标注经过专业数据清洗与专家抽检核查确保标注准确性与一致性。✅多样化场景来自多个不同钻场涵盖不同光照、烟尘、遮挡、角度等复杂井下环境提升模型鲁棒性。✅高应用价值支持打钻过程自动化监控、人员行为分析、设备状态识别、安全隐患预警等智能化应用。典型应用方向✅打钻过程实时监测自动识别钻杆进给、卡盘动作等关键操作。✅安全合规检测检测工人是否佩戴安全帽实现PPE自动检查。✅设备状态分析通过夹持器和卡盘位置判断设备运行状态。✅智能巡检系统集成至煤矿AI监控平台提升井下作业安全性。✅科研与算法训练为深度学习模型提供高质量训练数据推动煤矿智能化发展。你提供的煤矿井下钻场目标检测数据集是一个极具工业价值和研究意义的高质量数据集包含70,948 张图像、5 类关键目标夹持器、钻机卡盘、煤矿工人、矿井安全帽、钻杆支持 PASCAL VOCXML和 YOLO 格式总大小 8.8GB。该数据集可用于构建智能打钻监控系统、人员行为识别、设备状态监测、安全预警等智能化煤矿应用。以下是从环境搭建 → 数据预处理 → YOLOv8 模型训练 → 推理 → 评估 → 部署的完整全流程确保你可以高效利用这个大规模工业数据集。✅ 一、系统环境搭建CUDA Anaconda Python1. 确认 CUDA 驱动GPU 加速nvidia-smi要求NVIDIA GPU建议 ≥ RTX 3090 / A100CUDA 版本 ≥ 11.8推荐 12.1如未安装驱动请前往 NVIDIA 官网 下载。2. 安装 AnacondaPython 包管理器前往 https://www.anaconda.com/products/distribution 下载并安装。3. 创建 Python 虚拟环境# 创建名为 coal_mine_detection 的环境conda create-ncoal_mine_detectionpython3.9# 激活环境conda activate coal_mine_detection4. 安装必要依赖# 安装 PyTorch以 CUDA 11.8 为例pipinstalltorch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118# 安装 YOLOv8 官方库pipinstallultralytics opencv-python numpy matplotlib tqdm scikit-learn pandas pillow lxml# 可选TensorBoard 可视化pipinstalltensorboard# 验证 GPU 是否可用python-cimport torch; print(torch.cuda.is_available())# 应输出 True✅lxml用于解析 XMLVOC 格式✅ 二、数据集结构与格式转换VOC → YOLOYOLOv8 默认使用 YOLO 格式因此需要将 VOC XML 转换为.txt标注。目录结构建议coal_mine_dataset/ ├── images/ │ ├── train/ │ ├── val/ │ └── test/ ├── labels_voc/ # 原始 XML 文件 ├── labels/ # 转换后的 YOLO .txt 文件 └── data.yamlVOC → YOLO 转换脚本# convert_voc_to_yolo.pyimportosimportxml.etree.ElementTreeasETfrompathlibimportPath# 类别映射必须与训练一致classes{clamp:0,# 夹持器drill_chuck:1,# 钻机卡盘miner:2,# 煤矿工人safety_helmet:3,# 矿井安全帽drill_rod:4# 钻杆}defconvert(size,box):dw1./size[0]dh1./size[1]x(box[0]box[1])/2.0-1y(box[2]box[3])/2.0-1wbox[1]-box[0]hbox[3]-box[2]return(x*dw,y*dh,w*dw,h*dh)defconvert_annotation(xml_file,output_folder):treeET.parse(xml_file)roottree.getroot()sizeroot.find(size)wint(size.find(width).text)hint(size.find(height).text)txt_fileos.path.join(output_folder,Path(xml_file).stem.txt)withopen(txt_file,w)asf:forobjinroot.iter(object):clsobj.find(name).text.lower().strip()ifclsnotinclasses:continuecls_idclasses[cls]xmlboxobj.find(bndbox)b[float(xmlbox.find(x).text)forxin[xmin,xmax,ymin,ymax]]bbconvert((w,h),b)f.write(f{cls_id}{ .join(f{x:.6f}forxinbb)}\n)# 执行转换voc_labelscoal_mine_dataset/labels_vocyolo_labelscoal_mine_dataset/labelsos.makedirs(yolo_labels,exist_okTrue)forxml_fileinPath(voc_labels).glob(*.xml):convert_annotation(xml_file,yolo_labels)print(VOC to YOLO conversion completed.)✅ 运行后所有.xml将转为.txt存入labels/✅ 三、数据划分train/val/test# split_data.pyimportosimportrandomfrompathlibimportPath image_dircoal_mine_dataset/images_raw# 原始图像目录output_dircoal_mine_dataset/imageslabel_dircoal_mine_dataset/labels# 创建子集目录forsubsetin[train,val,test]:os.makedirs(f{output_dir}/{subset},exist_okTrue)# 获取所有图像文件images[fforfinos.listdir(image_dir)iff.endswith((.jpg,.jpeg,.png))]random.shuffle(images)# 划分比例80% train, 10% val, 10% testnlen(images)train_filesimages[:int(0.8*n)]val_filesimages[int(0.8*n):int(0.9*n)]test_filesimages[int(0.9*n):]defcopy_files(files,subset):forimginfiles:src_imgos.path.join(image_dir,img)dst_imgos.path.join(output_dir,subset,img)os.system(fcp {src_img} {dst_img})# 同步复制 labellabelPath(img).stem.txtsrc_lblos.path.join(label_dir,label)dst_lblos.path.join(coal_mine_dataset/labels,subset,label)ifos.path.exists(src_lbl):os.system(fcp {src_lbl} {dst_lbl})copy_files(train_files,train)copy_files(val_files,val)copy_files(test_files,test)print(Data split completed: 8:1:1)✅ 四、data.yaml配置文件# data.yamltrain:./coal_mine_dataset/images/trainval:./coal_mine_dataset/images/valtest:./coal_mine_dataset/images/test# 类别数量nc:5# 类别名称英文names:-clamp# 夹持器-drill_chuck# 钻机卡盘-miner# 煤矿工人-safety_helmet# 矿井安全帽-drill_rod# 钻杆# 中文名称用于可视化names_zh:-夹持器-钻机卡盘-煤矿工人-安全帽-钻杆✅ 五、调用 YOLOv8 官方预训练模型进行训练由于是工业场景光照差、遮挡多、目标小如安全帽建议使用YOLOv8m或YOLOv8l。fromultralyticsimportYOLO# 加载官方预训练模型modelYOLO(yolov8m.pt)# 推荐使用中等模型# 开始训练大规模数据可训练更久resultsmodel.train(datadata.yaml,# 数据配置文件路径epochs200,# 大数据集建议 150~300batch32,# 根据显存调整A100 可用 64imgsz640,# 图像尺寸提升小目标检测optimizerAdamW,# 更稳定优化器lr00.001,weight_decay0.0005,momentum0.937,# 数据增强关键提升泛化augmentTrue,hsv_h0.015,hsv_s0.7,hsv_v0.4,degrees10.0,translate0.1,scale0.5,shear0.0,flipud0.0,fliplr0.5,mosaic1.0,mixup0.1,copy_paste0.1,# 对小目标特别有效# 正则化dropout0.2,label_smoothing0.05,# 学习率调度cos_lrTrue,# 余弦退火# 保存与日志projectruns/train,namecoal_mine_yolov8m,saveTrue,save_period10,exist_okFalse,# 缓存内存充足时开启cacheTrue,# 分布式训练多卡# device[0,1] # 多GPU)✅ 训练时长约 12~24 小时取决于 GPU 数量✅ 六、推理代码单图 / 批量 / 视频1. 单张图像推理fromultralyticsimportYOLOfromPILimportImage modelYOLO(runs/train/coal_mine_yolov8m/weights/best.pt)resultsmodel(underground_scene.jpg,conf0.3)forrinresults:im_arrayr.plot()imImage.fromarray(im_array[...,::-1])im.show()2. 批量图像推理resultsmodel.predict(sourcecoal_mine_dataset/images/test,saveTrue,projectruns/detect,namecoal_mine_test,conf0.3,imgsz640)3. 视频检测井下监控视频resultsmodel.predict(sourcedrilling_process.mp4,saveTrue,projectruns/detect/video,namedrilling_monitoring,conf0.3,imgsz640)✅ 七、模型评估1. 在验证集上评估metricsmodel.val(datadata.yaml,splitval,batch32,imgsz640,save_jsonTrue,projectruns/val,namecoal_mine_eval)print(fmAP0.5:{metrics.box.map50:.4f})print(fmAP0.5:0.95:{metrics.box.map:.4f})print(fPrecision:{metrics.box.p:.4f})print(fRecall:{metrics.box.r:.4f})# 每类 APfori,nameinenumerate(model.names):print(f{name}: AP0.5 {metrics.box.ap[i]:.4f})2. 在测试集上独立评估最终性能test_metricsmodel.val(datadata.yaml,splittest,namefinal_test)print(fFinal Test mAP0.5:{test_metrics.box.map50:.4f})✅ 八、模型导出ONNX / TensorRT / TFLite# 导出为 ONNXmodel.export(formatonnx,dynamicTrue,opset13,imgsz640)# 导出为 TensorRTNVIDIA Jetson / 工控机model.export(formatengine,halfTrue,dynamicTrue)# 导出为 TFLite边缘设备model.export(formattflite,int8True)# 导出为 CoreMLiOSmodel.export(formatcoreml)✅ 九、工业场景优化建议问题建议光照差、对比度低使用hsv_v,CLAHE,Gamma Correction小目标安全帽、钻杆使用copy_paste,mosaic,imgsz640遮挡严重使用copy_paste,mixup实时性要求高使用yolov8s TensorRT FP16模型轻量化部署使用prune剪枝或QAT量化✅ 十、应用场景与拓展✅ 应用场景智能打钻监控系统实时检测设备与人员状态安全行为识别未戴安全帽报警钻杆计数与长度估算辅助打钻进度管理设备故障预警夹持器异常、卡盘松动识别数字孪生系统构建井下三维可视化场景✅ 可拓展方向结合 DeepSORT 实现人员/设备跟踪添加姿态估计工人动作分析构建 Web 平台实现远程监控部署到边缘计算盒子Jetson Orin✅ 十一、总结你已经掌握如何✅ 搭建大规模工业检测环境✅ 将 VOC 数据转换为 YOLO 格式✅ 划分 train/val/test 数据集✅ 使用 YOLOv8 训练煤矿井下目标检测模型✅ 完成推理、评估、模型导出全流程下一步建议构建 Flask API 提供 REST 接口集成视频流实时分析RTSP添加报警模块未戴安全帽、设备异常部署到煤矿边缘服务器或工控机如果你需要我提供Flask API 接口代码视频流实时检测脚本安全帽佩戴检测报警系统多摄像头融合监控方案欢迎继续提问祝你在智能矿山、工业AI、安全生产领域取得突破⛏️️