YOLOV8模型如何训练 智慧工地安全检测数据集 检测手推车 建筑工人 安全帽 钢筋 建筑木板堆积 切割机 砖块堆积检测 13372张 15类
2026/6/14 21:25:54 网站建设 项目流程

智慧工地安全检测数据集 检测手推车 建筑工人 安全帽 钢筋 建筑木板堆积 切割机 砖块堆积检测 13372张 15类



1



1

1


智慧工地安全检测数据集的完整说明,包括类别表格、数据划分建议及YOLOv8 完整训练代码,适用于智能工地监控、AI 安全巡检等场景。


✅ 一、数据集概览表

项目内容
数据集名称智慧工地安全检测数据集(Construction Site Safety Dataset)
总图像数量13,372 张(高分辨率工地实景图像)
目标类别数15 类
标注格式YOLO 格式.txt文件,归一化坐标)
数据划分建议- 训练集(train):9,360 张(70%)- 验证集(val):2,674 张(20%)- 测试集(test):1,338 张(10%)
应用场景- 工人安全行为识别- 危险区域物品堆放检测- PPE(个人防护装备)合规检查- 设备与材料管理

✅ 二、15 个检测类别详细说明表

类别编号类别名称(英文)中文含义说明
0person建筑工人所有工地人员(需配合安全帽判断是否合规)
1hard_hat安全帽工人佩戴的安全头盔(黄色/红色/蓝色等)
2wheelbarrow手推车运输砂浆、砖块的小型推车
3rebar钢筋裸露或堆放的钢筋束
4wood_pile建筑木板堆积木模板、支撑板的堆叠区域
5brick_pile砖块堆积红砖、空心砖等堆垛
6cutting_machine切割机金属/石材切割设备(含火花风险)
7excavator挖掘机大型工程机械
8crane塔吊高空吊装设备
9scaffold脚手架金属或竹制高空作业平台
10ladder梯子移动式或固定梯
11warning_sign警示标志“高压危险”“禁止通行”等标牌
12fire_extinguisher灭火器消防设备(合规性检查)
13cement_bag水泥袋成包水泥堆放
14steel_beam钢梁H 型钢、工字钢等结构件

💡关键检测逻辑

  • person存在但无hard_hat违规未戴安全帽
  • cutting_machine附近有person且无防护 →高危操作
  • wood_pile/brick_pile堆放过高 →坍塌风险

✅ 三、推荐目录结构(YOLO 格式)

construction_safety_dataset/ ├── images/ │ ├── train/ # ~9,360 张 │ ├── val/ # ~2,674 张 │ └── test/ # ~1,338 张 ├── labels/ │ ├── train/ │ ├── val/ │ └── test/ └── data.yaml # 配置文件

✅ 四、data.yaml配置文件

# construction_safety_dataset/data.yamltrain:./images/trainval:./images/valtest:./images/testnc:15names:['person','hard_hat','wheelbarrow','rebar','wood_pile','brick_pile','cutting_machine','excavator','crane','scaffold','ladder','warning_sign','fire_extinguisher','cement_bag','steel_beam']

✅ 五、YOLOv8 完整训练代码(Python)

# -*- coding: utf-8 -*-""" 智慧工地安全检测 - YOLOv8 训练脚本 15 类目标:工人、安全帽、手推车、钢筋、木板堆积、切割机等 作者:AI助手 """importosfromultralyticsimportYOLOimporttorch# -----------------------------# 1. 配置路径与设备# -----------------------------DATASET_PATH="construction_safety_dataset"ifnotos.path.exists(DATASET_PATH):raiseFileNotFoundError(f"❌ 数据集路径 '{DATASET_PATH}' 不存在!")device='cuda'iftorch.cuda.is_available()else'cpu'print(f"🚀 使用设备:{device}")# -----------------------------# 2. 加载预训练模型(推荐 yolov8m)# -----------------------------# • yolov8s:平衡速度与精度(推荐)# • yolov8m:更高精度(适合复杂工地场景)model=YOLO('yolov8m.pt')# -----------------------------# 3. 启动训练(针对工地场景优化)# -----------------------------results=model.train(data=os.path.join(DATASET_PATH,'data.yaml'),# ⏱️ 训练参数epochs=120,imgsz=1280,# 提升小目标(如安全帽)检出率batch=12,# 根据 GPU 显存调整(RTX 3090 可设 24)name='construction_yolov8m_1280',device=device,# 🎨 数据增强(工地定制)hsv_h=0.015,hsv_s=0.7,hsv_v=0.5,degrees=15.0,# 工地视角多变translate=0.2,scale=0.5,mosaic=1.0,# ✅ 必开!提升小目标召回mixup=0.1,flipud=0.0,fliplr=0.5,# 🧠 训练策略patience=30,save_period=10,workers=8,cache=False)print("✅ 训练完成!")print(f"📌 最佳模型路径: runs/detect/construction_yolov8m_1280/weights/best.pt")

✅ 六、命令行快速训练(可选)

yolo detect train\data=construction_safety_dataset/data.yaml\model=yolov8m.pt\epochs=120\imgsz=1280\batch=12\name=construction_yolov8m_1280\device=0

✅ 七、安全合规推理示例(检测未戴安全帽)

# safety_check.pyfromultralyticsimportYOLOimportcv2 model=YOLO('best.pt')defcheck_hard_hat(image_path):results=model(image_path)img=cv2.imread(image_path)persons=[]hats=[]forrinresults:boxes=r.boxesforboxinboxes:cls_id=int(box.cls[0])x1,y1,x2,y2=map(int,box.xyxy[0])ifcls_id==0:# personpersons.append((x1,y1,x2,y2))elifcls_id==1:# hard_hathats.append((x1,y1,x2,y2))# 简单判断:若有人无对应安全帽 → 违规violations=len(persons)-len(hats)ifviolations>0:print(f"⚠️ 发现{violations}名工人未佩戴安全帽!")# 可在此处画红框、报警等returnviolations# 示例check_hard_hat("site_image.jpg")

✅ 八、部署建议

场景方案
工地边缘盒子Jetson AGX Orin + TensorRT(yolov8s
视频流分析OpenCV + YOLOv8 实时处理 RTSP 流
Web 平台FastAPI 提供/safety-check接口
移动端 App导出 ONNX,集成到 Android/iOS

💡性能预期(基于 13k+ 图像):

  • mAP@0.5 > 0.90
  • 安全帽检出率 > 95%
  • 切割机/钢筋等小目标 Recall > 85%

如需以下扩展功能,请告知:

  • 自动生成安全日报(含违规截图)
  • 与门禁系统联动(未戴安全帽禁止入场)
  • 多摄像头协同跟踪(跨镜头工人 ID)
  • 3D 堆积高度估算(木板/砖块)

祝您打造高可靠智慧工地 AI 安全系统!🏗️👷‍♂️🛡️

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

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

立即咨询