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

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

智慧工地安全检测数据集

检测手推车 建筑工人 安全帽 钢筋 建筑木板堆积 切割机 砖块堆积检测 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 安全系统!🏗️👷‍♂️🛡️