矿井安全智能哨兵:YOLOv5煤矿工人安全帽检测系统全栈实战

发布时间:2026/7/15 3:41:20
矿井安全智能哨兵:YOLOv5煤矿工人安全帽检测系统全栈实战 ⛑️ 矿井安全智能哨兵YOLOv5煤矿工人安全帽检测系统全栈实战| 煤矿工人安全帽检测数据集 煤矿安全帽检测数据集 井下工人安全帽检测数据集煤矿井下环境复杂工人安全帽佩戴不规范是重大安全隐患。传统人工巡检效率低、成本高。本文基于7242张实地标注图像构建了高精度安全帽检测数据集并提供了从数据加载、YOLOv5模型训练到推理部署的完整PyTorch代码为智慧矿井建设提供可落地的视觉AI解决方案。 数据集核心指标与构成数据集划分图像数量占比用途训练集 (Train)579380%模型参数学习验证集 (Val)72410%超参数调优与早停测试集 (Test)72510%最终性能评估总计7242100%单一类别煤矿安全帽数据集特点场景专注所有图像均采集自煤矿井下或矿区环境包含不同光照、角度和遮挡情况。格式标准提供YOLO格式TXT和VOC格式XML标注兼容主流目标检测框架。开箱即用数据集已按8:1:1比例划分并附带classes.txt类别文件可直接用于模型训练。️ 项目目录结构建议mine_safety_helmet_detection/ ├── dataset/ # 数据集 │ ├── images/ │ │ ├── train/ (5793张) │ │ ├── val/ (724张) │ │ └── test/ (725张) │ └── labels/ │ ├── train/ (对应YOLO .txt) │ ├── val/ │ └── test/ ├── config/ │ └── helmet_data.yaml # 数据集配置文件 ├── src/ │ ├── dataset.py # 自定义数据集加载类 │ ├── train_yolov5.py # 训练脚本 │ ├── predict.py # 推理与可视化脚本 │ └── utils.py # 工具函数 ├── weights/ │ └── best_model.pt # 训练好的模型权重 ├── requirements.txt # 项目依赖 └── README.md 核心代码实现与场景注释1. 自定义数据集加载类src/dataset.py# 对应主题场景加载煤矿安全帽图像与YOLO格式标签并进行预处理importosimportcv2importtorchfromtorch.utils.dataimportDatasetfromtorchvisionimporttransformsclassMineSafetyHelmetDataset(Dataset):煤矿安全帽检测数据集支持训练/验证/测试集加载def__init__(self,image_dir,label_dir,transformNone):self.image_dirimage_dir self.label_dirlabel_dir self.transformtransform# 获取所有图像文件 (假设为.jpg格式)self.image_files[fforfinos.listdir(image_dir)iff.endswith(.jpg)]def__len__(self):returnlen(self.image_files)def__getitem__(self,idx):img_nameself.image_files[idx]img_pathos.path.join(self.image_dir,img_name)label_pathos.path.join(self.label_dir,img_name.replace(.jpg,.txt))# 读取图像并转为RGBimagecv2.imread(img_path)imagecv2.cvtColor(image,cv2.COLOR_BGR2RGB)height,widthimage.shape[:2]# 解析YOLO格式标签: class_id x_center y_center width height (归一化)boxes[]withopen(label_path,r)asf:forlineinf.readlines():partsline.strip().split()iflen(parts)!5:continueclass_id,x_c,y_c,w,hmap(float,parts)# 转换为 (x_min, y_min, x_max, y_max, class_id) 便于可视化x_minint((x_c-w/2)*width)y_minint((y_c-h/2)*height)x_maxint((x_cw/2)*width)y_maxint((y_ch/2)*height)boxes.append([x_min,y_min,x_max,y_max,int(class_id)])# 应用数据增强 (如果有)ifself.transform:# 注意albumentations等库支持同时变换图像和边界框transformedself.transform(imageimage,bboxesboxes)imagetransformed[image]boxestransformed[bboxes]# 转换为张量 (图像: CxHxW, 边界框: Nx5)imagetorch.from_numpy(image).permute(2,0,1).float()/255.0boxestorch.tensor(boxes,dtypetorch.float32)returnimage,boxes2. 数据集配置文件config/helmet_data.yaml# 对应主题场景为YOLOv5训练指定数据路径和类别train:./dataset/images/trainval:./dataset/images/valtest:./dataset/images/testnc:1# 类别数量 (仅安全帽)names:[Mine_Safety_Helmet]# 类别名称3. YOLOv5 模型训练脚本src/train_yolov5.py# 对应主题场景使用YOLOv5s预训练模型在安全帽数据集上进行微调importtorchimportyamlfromyolov5.models.commonimportDetectMultiBackendfromyolov5.utils.generalimportcheck_img_size,non_max_suppressionfromyolov5.utils.torch_utilsimportselect_devicefromtorch.utils.dataimportDataLoaderfromsrc.datasetimportMineSafetyHelmetDatasetfromtorchvisionimporttransformsimportalbumentationsasAfromalbumentations.pytorchimportToTensorV2defget_transform(trainTrue):定义训练和验证时的数据增强策略iftrain:returnA.Compose([A.HorizontalFlip(p0.5),# 水平翻转A.RandomBrightnessContrast(p0.2),# 亮度对比度调整A.Resize(height640,width640),# 统一尺寸A.Normalize(mean[0,0,0],std[1,1,1]),# 归一化ToTensorV2()],bbox_paramsA.BboxParams(formatpascal_voc,label_fields[class_labels]))else:returnA.Compose([A.Resize(height640,width640),A.Normalize(mean[0,0,0],std[1,1,1]),ToTensorV2()],bbox_paramsA.BboxParams(formatpascal_voc,label_fields[class_labels]))deftrain_yolov5(data_dir,epochs100,batch_size16,devicecuda):核心训练函数deviceselect_device(device)# 加载YOLOv5s预训练模型 (结构)modelDetectMultiBackend(yolov5s.pt,devicedevice)model.nc1# 更新类别数model.names[Mine_Safety_Helmet]model.to(device)# 创建数据集和数据加载器train_datasetMineSafetyHelmetDataset(os.path.join(data_dir,images/train),os.path.join(data_dir,labels/train),transformget_transform(trainTrue))val_datasetMineSafetyHelmetDataset(os.path.join(data_dir,images/val),os.path.join(data_dir,labels/val),transformget_transform(trainFalse))train_loaderDataLoader(train_dataset,batch_sizebatch_size,shuffleTrue,num_workers4,collate_fnlambdax:tuple(zip(*x)))val_loaderDataLoader(val_dataset,batch_sizebatch_size,shuffleFalse,num_workers4,collate_fnlambdax:tuple(zip(*x)))# 优化器与损失 (简化示例实际YOLOv5训练推荐使用官方train.py)optimizertorch.optim.SGD(model.parameters(),lr0.01,momentum0.937,weight_decay0.0005)# 此处省略完整训练循环建议直接调用YOLOv5的train.py以获得最佳实践:# !python yolov5/train.py --img 640 --batch {batch_size} --epochs {epochs} \# --data config/helmet_data.yaml --weights yolov5s.pt --project helmet_expprint(训练启动... (请参考YOLOv5官方train.py进行完整训练))# 保存模型torch.save(model.state_dict(),weights/best_model.pt)if__name____main__:train_yolov5(data_dir./dataset)建议使用YOLOv5官方训练命令更稳定、功能完整python yolov5/train.py--img640--batch16--epochs100\--dataconfig/helmet_data.yaml\--weightsyolov5s.pt\--projecthelmet_training_results4. 模型推理与可视化src/predict.py# 对应主题场景加载训练好的模型对井下监控图像进行安全帽检测并标注importtorchimportcv2importmatplotlib.pyplotaspltfromyolov5.models.commonimportDetectMultiBackendfromyolov5.utils.generalimportnon_max_suppression,scale_coordsfromyolov5.utils.torch_utilsimportselect_devicedefdetect_helmets(image_path,model_pathweights/best_model.pt,conf_thres0.25):检测图像中的安全帽并返回标注后的图像deviceselect_device(cudaiftorch.cuda.is_available()elsecpu)modelDetectMultiBackend(model_path,devicedevice)model.eval()# 读取并预处理图像img0cv2.imread(image_path)# BGRimgcv2.cvtColor(img0,cv2.COLOR_BGR2RGB)imgcv2.resize(img,(640,640))img_tensortorch.from_numpy(img).permute(2,0,1).float().div(255.0).unsqueeze(0).to(device)# 推理withtorch.no_grad():predmodel(img_tensor)detectionsnon_max_suppression(pred,conf_thres,iou_thres0.45)[0]# 绘制结果ifdetectionsisnotNoneandlen(detections):detections[:,:4]scale_coords(img_tensor.shape[2:],detections[:,:4],img0.shape).round()for*xyxy,conf,clsinreversed(detections):labelfMine_Safety_Helmet{conf:.2f}# 绘制边界框和标签cv2.rectangle(img0,(int(xyxy[0]),int(xyxy[1])),(int(xyxy[2]),int(xyxy[3])),(0,255,0),2)cv2.putText(img0,label,(int(xyxy[0]),int(xyxy[1])-10),cv2.FONT_HERSHEY_SIMPLEX,0.5,(0,255,0),2)returnimg0if__name____main__:result_imgdetect_helmets(path/to/test_image.jpg)cv2.imshow(Safety Helmet Detection,result_img)cv2.waitKey(0)cv2.destroyAllWindows() 模型优化与部署建议优化方向具体方法数据增强增加Mosaic、MixUp等高级增强提升模型对遮挡、光照变化的鲁棒性。类别不平衡本数据集为单类别若后续增加“未戴安全帽”等类别需关注正负样本平衡。模型轻量化使用YOLOv5s或更小的nano版本便于在边缘设备如Jetson Nano上实时推理。部署加速导出为ONNX或TensorRT格式获得2-3倍推理速度提升。部署命令示例# 导出为ONNXpython yolov5/export.py--weightshelmet_training_results/exp/weights/best.pt--includeonnx# 使用TensorRT (需安装对应工具)python yolov5/export.py--weightsbest.pt--includeengine 项目价值与扩展方向核心创新点高价值数据集7242张矿区实拍图像为安全帽检测提供稀缺数据资源。标准化流程提供从数据准备、模型训练到推理的端到端YOLOv5代码。直接应用场景可集成至矿井监控系统实现24/7自动安全巡检。扩展方向多类别检测增加“未戴安全帽”、“佩戴不规范”、“异物”等类别。行为分析结合姿态估计检测工人是否在危险区域取下安全帽。预警系统联动检测到违规时通过声光报警或即时消息通知安全员。历史数据分析统计各时段、各区域违规佩戴频率辅助安全决策。️ 技术标签#智慧矿井#安全帽检测#YOLOv5#目标检测#PyTorch#煤矿安全#计算机视觉#工业AI#实时监控#深度学习

相关新闻

看似合规实则违规!FB 最隐蔽 5 个封号冷门雷区

看似合规实则违规!FB 最隐蔽 5 个封号冷门雷区

很多人做Facebook运营一直很困惑:不发违规内容、不暴力引流、不乱投广告,日常正常养号运营,账号却莫名限流、封禁。其实2026年Meta风控早已全面升级,明目张胆的违规很少人踩,真正毁号的全是隐形冷门雷区。这些操作看似…

发布时间:2026/7/15 3:41:20
别再把商务网站当花瓶:从商务网站开发与建设论文看落地真相

别再把商务网站当花瓶:从商务网站开发与建设论文看落地真相

你的公司官网,是不是还停留在“能看就行”的阶段?打开慢得像蜗牛, 手机端排版乱成一团, 客户找联系方式得翻遍整个页面。这种体验,正在悄悄赶走你的潜在订单。很多老板觉得,网站不过是张电子名片。 其实,它是你24小时在线的销售员。 如果销售员连话都说不清楚, 谁还会掏…

发布时间:2026/7/15 3:40:38
别被忽悠了!我拿三万块学费换来的寻找长沙网站建设避坑指南

别被忽悠了!我拿三万块学费换来的寻找长沙网站建设避坑指南

说实话,刚接到老板那个破任务的时候,我心里是骂娘的。让我去“寻找长沙网站建设”的公司,预算还低得可怜。我就想,这年头,好公司谁缺钱啊?能接这种小单的,多半是坑。但我还是去了,因为我不信邪。我要看看,这潭水到底有多浑。第一天,我刷了无数个网页。全是广告,全是…

发布时间:2026/7/15 3:40:34
dw网站建设字体颜色怎么调才不显廉价?老手私藏的避坑指南

dw网站建设字体颜色怎么调才不显廉价?老手私藏的避坑指南

昨天深夜,我盯着屏幕发呆。手里这台老掉牙的MacBook,风扇转得像直升机起飞。我在Dreamweaver里折腾一个客户的小网站,客户原话是:“要高级感,要通透,别太花哨。”高级感这三个字,简直是设计师的噩梦。很多人觉得,高级感就是黑白灰。错。我见过太多用纯黑背景配纯白字体…

发布时间:2026/7/15 4:31:31
别整虚的!绵阳企业品牌网站建设,到底该咋搞才不亏钱?

别整虚的!绵阳企业品牌网站建设,到底该咋搞才不亏钱?

上周去涪城万达附近一家做机械加工的老板那喝茶,老张跟我吐槽,说之前找的那家外包公司做的网站,打开慢得像蜗牛,手机上看字小得跟蚂蚁似的。他问我为啥现在的网站都这么难用?我说,因为很多绵阳企业品牌网站建设的时候,光想着“好看”,忘了“好用”。咱们绵阳人做生意,…

发布时间:2026/7/15 4:30:36
别被高大上的PPT骗了,扒开湖北交投建设集团网站背后的真实门道

别被高大上的PPT骗了,扒开湖北交投建设集团网站背后的真实门道

别再去翻那些花里胡哨的招商手册了,这篇内容直接告诉你,怎么通过湖北交投建设集团网站找到真正有价值的合作机会和招聘信息。不管你是想接工程、找合作,还是想进去上班,这里面的门道比你想的深得多。说实话,第一次盯着湖北交投建设集团网站看的时候,我也觉得挺懵的。界面…

发布时间:2026/7/15 4:29:52
中国交通建设官方网站真的好用吗?别被忽悠了,看完这篇再决定

中国交通建设官方网站真的好用吗?别被忽悠了,看完这篇再决定

说实话,以前我对这种大型央企的官网印象一直停留在“高冷”和“难用”上。直到上周,为了核实一个海外项目的资质信息,我硬着头皮去查了中国交通建设官方网站。这一趟下来,心情简直像坐过山车,从最初的烦躁到最后的真香,中间经历了不少波折。今天就想跟大伙儿掏心窝子聊聊…

发布时间:2026/7/15 4:29:43
协会建设网站的目的:别把官网做成僵尸页,这几点才是核心

协会建设网站的目的:别把官网做成僵尸页,这几点才是核心

说实话,看到很多行业协会的网站,我心里就一股火。真的,不是我不给面子,是那些网站做得太烂了。打开一看,全是几年前的新闻,图片模糊得连人脸都看不清,联系方式还是那个打了十年的座机号。这种网站,与其说是为了“协会建设网站的目的”,不如说是为了应付检查,或者仅仅…

发布时间:2026/7/15 4:29:32
拒绝被割韭菜!揭秘真正好用的网站建设开源平台,小白也能自己搞定

拒绝被割韭菜!揭秘真正好用的网站建设开源平台,小白也能自己搞定

说实话,每次看到那些号称“三天上线、包年服务”的网站制作广告,我心里就一阵反胃。这年头,谁还没点审美和动手能力?花大几千甚至上万块,最后拿到一个模板套出来的半成品,连个后台权限都受限,这种被当韭菜割的感觉,我真的受够了。今天我就想掏心窝子跟大家聊聊,为什么…

发布时间:2026/7/15 4:29:26
nRF Sniffer 在Wireshark中的高效过滤与实战技巧

nRF Sniffer 在Wireshark中的高效过滤与实战技巧

1. 初识nRF Sniffer与Wireshark黄金组合当你第一次把nRF52840 Dongle插入电脑时,可能没想到这个小玩意儿会成为BLE调试的"显微镜"。作为专为蓝牙低功耗设计的嗅探工具,nRF Sniffer配合Wireshark就像给开发者装上了X光眼镜,能清晰看…

发布时间:2026/7/15 0:00:38
别被忽悠了,普通人怎么选择五屏网站建设才不踩坑

别被忽悠了,普通人怎么选择五屏网站建设才不踩坑

前年我接手公司官网改版,当时脑子一热,觉得搞个“五屏自适应”听起来特别高大上。结果呢?上线第一周,客服电话被打爆,全是客户说手机上看图糊成马赛克,按钮还点不动。那几天我头发都愁白了,找技术对线,找设计扯皮,最后发现全是沟通不到位留下的坑。今天就把我踩过的雷…

发布时间:2026/7/15 0:00:52
泰州网站建设案例揭秘:从0到1的避坑指南与实战心得

泰州网站建设案例揭秘:从0到1的避坑指南与实战心得

泰州网站建设案例 你是否还在为网站打开速度慢而焦虑?是否因为转化率低下而怀疑自己的产品?这篇内容直接给你答案。我不讲虚的理论,只讲怎么把网站做成赚钱机器。做网站最怕什么?怕像绣花枕头,中看不中用。我见过太多泰州的企业老板,花了几万块做个高大上的首页。结果用户…

发布时间:2026/7/15 0:00:52
别装了,你的学院网站建设推进会就是场大型尴尬现场

别装了,你的学院网站建设推进会就是场大型尴尬现场

看着后台那点可怜的访问量,你急不急?方案改了八版,还是没人看。今天这文,只说怎么把会开成,把事做成。上周去隔壁职院蹭会,那场面,真叫一个窒息。会议室里坐满了人,领导在台上讲PPT,底下的人不是在玩手机,就是在发呆。投影仪闪了两下,灭了。没人去修,接着讲。这种会…

发布时间:2026/7/14 8:24:42
七彩建设集团官方网站怎么找?避坑指南与真实体验分享

七彩建设集团官方网站怎么找?避坑指南与真实体验分享

找官网找得头大?这篇直接告诉你怎么辨别真伪,别被假网站坑了钱。昨天半夜两点,我还在电脑前盯着屏幕,心里那个急啊。家里装修刚进场,工长突然说需要确认一份材料清单,说是七彩建设那边要求的。我手忙脚乱地打开浏览器,搜了一堆“七彩建设”,结果出来一堆广告,什么“七…

发布时间:2026/7/14 2:42:40
找可信赖的龙岗网站建设公司?别踩坑,看这几点就够

找可信赖的龙岗网站建设公司?别踩坑,看这几点就够

做企业,网站就是脸面。 在龙岗,想找个靠谱的网站公司,真不容易。 市面上广告满天飞。 承诺得天花乱坠。 最后交付的东西,却让人想砸电脑。 今天不聊虚的。 只聊怎么避坑。 怎么找到真正可信赖的龙岗网站建设团队。先说个大实话。 别信什么“三天上线”。 那是骗小白的。 正…

发布时间:2026/7/14 19:05:38
建站7年才悟出的网站建设思路,别再花冤枉钱了

建站7年才悟出的网站建设思路,别再花冤枉钱了

做建站这行整整7年了。 见过太多老板花几万块, 最后做出来的网站像个垃圾场。 今天不整那些虚头巴脑的术语。 就聊聊我踩过的坑, 和真正能落地的网站建设思路。很多老板一上来就问: “多少钱能做个高大上的?” 我通常直接劝退。 因为方向错了, 你给再多钱也是打水漂。 真正…

发布时间:2026/7/14 13:09:53
合肥的网站建设避坑指南:别被低价忽悠,这3个细节决定生死

合肥的网站建设避坑指南:别被低价忽悠,这3个细节决定生死

做企业官网最怕什么?不是技术难,是交钱后没人管,或者上线一个月连个访客都没有。这篇东西不扯虚的,直接告诉你怎么在合肥找个靠谱的团队,或者自己怎么避坑。先说个大实话,我在合肥混这行五年多,见过太多老板因为贪便宜吃大亏。你去百度搜“合肥的网站建设”,出来一堆报…

发布时间:2026/7/15 2:07:05
别被忽悠了!德州网站建设那些坑,我拿真金白银换来的教训

别被忽悠了!德州网站建设那些坑,我拿真金白银换来的教训

做这行久了,心里就憋着一股火。每次看到客户拿着网上抄来的模板,问我能不能做成“苹果官网”那种效果。我就想笑。真的,太想笑了。今天咱不整那些虚头巴脑的专业术语。就聊聊德州网站建设里,那些让人头秃的真实事儿。我有个客户,老张。他是做德州本地建材的,实在人。当初…

发布时间:2026/7/15 2:07:13