智慧工地AI视觉落地|施工现场建材目标检测开源数据集|无人机航拍建材识别、工地智能化物料盘点深度学习10266期

#智慧工地 #计算机视觉 #目标检测 #建材识别 #YOLO数据集 #建筑数字化 #深度学习数据集 #无人机工地巡检

在国内建筑数字化落地进程中,建材成本占据工程项目总造价60%以上,中国建筑业协会调研数据显示:72.3%在建项目存在建材进场盘点误差,人工现场清点钢筋、木方、胶合板、袋装沙袋的错算率常年维持12%~15%,工地物料乱堆、露天堆放受潮损耗、进场验收对账纠纷,每年因物料管控粗放造成数十万吨建材浪费。传统人工巡检盘点耗时费力,夜间、扬尘、逆光等复杂工地环境下肉眼识别难度陡增,无人机航拍+AI视觉自动识物成为智慧工地降本增效刚需,但行业长期缺少落地可用的实景建材标注数据集。本期开源分享一款面向施工现场实景采集的建材目标检测数据集,专为工地物料智能盘点、现场安全堆放监管、无人机远程巡检算法训练打造。

在这里插入图片描述

一、数据集总览

# 数据集元信息(GitHub卡片标准YAML格式)
Dataset_Name: Construction_Building_Material_Detect
Task_Type: Object Detection(2D目标检测)
Total_Images: 2200
Category_Num: 4
License: Free for academic research(学术免费商用需授权)
Scene: Ground construction site / UAV overhead shooting(地面实景+无人机俯拍双场景)
Release_No: No.10266

在这里插入图片描述

1.1 核心参数汇总表

项目 详细参数
任务属性 通用2D目标检测数据集,面向施工现场实景建材识别
图像总量 2200张实景图片(2.2k),覆盖晴天/阴天/扬尘/逆光多工地环境
标注类别 4类:Plywood(胶合板)、Lumber(原木/木方)、Rebar(螺纹钢筋)、Sand of bag(袋装沙袋)
存储格式 原始图像文件,支持YOLO、VOC、COCO主流目标检测标注格式适配
落地场景 工地进场物料自动清点、堆场存量智能统计、无人机远程巡检识别、现场建材堆放合规监管

在这里插入图片描述

1.2 类别释义

数据集4个标签完全匹配施工现场高频主材,全部取自工地实拍堆放场景:

  1. Plywood胶合板:建筑支模常用多层板材,多成堆平铺/立放堆放;
  2. Lumber木材:工地木方、原木料,长短堆叠杂乱,是识别难点;
  3. Rebar钢筋:盘螺、直条螺纹钢,捆装堆放,外形呈圆柱形簇状;
  4. Sand of bag沙袋:防汛/基坑防护袋装沙土,成垛码放,袋体褶皱干扰特征提取。

在这里插入图片描述

二、数据集价值与落地优势

Feature1:样本量级适配轻量化/大模型双向训练
2200张实景样本体量,既可以训练YOLO-Nano、YOLOv5s等边缘端轻量化模型(部署工地嵌入式摄像头、无人机机载算力),也可支撑YOLOv8x、RT-DETR等高精度检测模型微调,充足样本有效规避小数据集训练出现的严重过拟合问题。

Feature2:场景贴合真实工地复杂工况
图片源自真实在建工地地面实拍+低空无人机俯拍,包含粉尘遮挡、局部堆叠遮挡、强光阴影、远距离小目标等工程常见干扰画面,训练后的模型可直接落地真实项目,减少后期实地微调成本。

Feature3:填补建材细分数据集空白
现有开源工地数据集多聚焦安全帽、工程机械、施工人员,针对钢筋/木方/胶合板/沙袋四类主材的专用标注数据集稀缺,本数据集可直接用于建材盘点AI算法研发,助力建筑企业数字化管控物料损耗。

三、数据集目录结构

Construction_Building_Material_Detect/
├── images/          # 全部2200张原始实景图像
│   ├── train/       # 训练集图片(默认7:2:1划分:1540张)
│   ├── val/         # 验证集图片(440张)
│   └── test/        # 测试集图片(220张)
├── labels/          # 对应YOLO格式txt标注文件
│   ├── train/
│   ├── val/
│   └── test/
└── material.yaml    # YOLO系列模型配置文件(类别、路径配置)

四、深度学习代码实操:数据集加载+训练配置

适配PyTorch+YOLOv8主流工业落地框架,全部代码附加工地物料识别场景专属注释,可直接复制运行,对应本数据集4类建材识别业务。

4.1 环境依赖安装脚本

# 【注释:智慧工地项目常用稳定环境,CUDA117适配工业服务器/本地训练,适配无人机端模型训练环境】
conda create -n construction_ai python=3.9
conda activate construction_ai
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117
# ultralytics为YOLOv8官方库,opencv用于工地实景图片预处理、matplotlib可视化堆场识别效果
pip install ultralytics opencv-python numpy tqdm albumentations

4.2 数据集yaml配置文件(material.yaml,YOLO训练必备)

# 【场景注释:适配工地四类建材,nc为类别总数,names顺序和数据集标注id一一对应,修改错误会导致标签错乱】
# 数据集路径,根据本地存放目录自行修改
train: ./Construction_Building_Material_Detect/images/train
val: ./Construction_Building_Material_Detect/images/val
test: ./Construction_Building_Material_Detect/images/test

# 类别数量与类别名称(严格和数据集4类物料匹配)
nc: 4
names:
  0: Plywood
  1: Lumber
  2: Rebar
  3: Sand_of_bag

4.3 自定义Dataset数据加载代码(PyTorch原生,适配工地遮挡数据增强)

import os
import cv2
import torch
from torch.utils.data import Dataset, DataLoader
import albumentations as A
from albumentations.pytorch import ToTensorV2

# 【场景注释:工地实拍图普遍存在粉尘、阴影、局部遮挡,使用albumentations做实景增强,提升模型鲁棒性,适配户外无人机航拍畸变】
class ConstructionMaterialDataset(Dataset):
    def __init__(self, img_root, label_root, transform=None):
        self.img_root = img_root
        self.label_root = label_root
        self.transform = transform
        self.img_list = sorted([x for x in os.listdir(img_root) if x.endswith((".jpg",".png"))])

    def __len__(self):
        return len(self.img_list)

    def __getitem__(self, idx):
        img_name = self.img_list[idx]
        img_path = os.path.join(self.img_root, img_name)
        label_path = os.path.join(self.label_root, img_name.replace(".jpg",".txt"))
        # 读取工地实景图像
        img = cv2.imread(img_path)
        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
        boxes = []
        cls_ids = []
        # 读取YOLO标注txt(归一化坐标+类别id)
        if os.path.exists(label_path):
            with open(label_path,"r",encoding="utf-8") as f:
                lines = f.readlines()
                for line in lines:
                    line = line.strip().split()
                    cid, cx, cy, w, h = list(map(float,line))
                    cls_ids.append(int(cid))
                    boxes.append([cx,cy,w,h])
        # 数据增强:随机裁切、亮度扰动模拟工地昼夜、扬尘光线变化
        if self.transform:
            aug_res = self.transform(image=img, bboxes=boxes, class_labels=cls_ids)
            img = aug_res["image"]
            boxes = torch.tensor(aug_res["bboxes"], dtype=torch.float32)
            cls_ids = torch.tensor(aug_res["class_labels"], dtype=torch.int64)
        return img, boxes, cls_ids

# 构建训练集增强策略【注释:模拟工地逆光、沙尘、缩放,贴合无人机远近航拍差异】
train_aug = A.Compose([
    A.Resize(640,640),
    A.RandomBrightnessContrast(brightness_limit=0.2,contrast_limit=0.2,p=0.5),
    A.HorizontalFlip(p=0.5),
    A.GaussNoise(p=0.2), # 模拟工地粉尘带来的画面噪点
    ToTensorV2()
],bbox_params=A.BboxParams(format="yolo",label_fields=["class_labels"]))

# 实例化数据集与加载器
train_set = ConstructionMaterialDataset(
    img_root="./Construction_Building_Material_Detect/images/train",
    label_root="./Construction_Building_Material_Detect/labels/train",
    transform=train_aug
)
train_loader = DataLoader(train_set,batch_size=8,shuffle=True)

4.4 YOLOv8一键训练代码(落地智慧工地巡检)

from ultralytics import YOLO
# 【场景注释:yolov8s为平衡精度与速度的优选,可部署在无人机边缘板卡;yolov8l用于服务器高精度盘点场景】
if __name__ == "__main__":
    # 加载预训练权重,基于COCO预训练权重迁移学习,加速建材特征收敛
    model = YOLO("yolov8s.pt")
    # 开始训练,epochs=100适配2200张样本体量,避免欠拟合/过拟合
    result = model.train(
        data="material.yaml",
        epochs=100,
        imgsz=640,
        batch=8,
        device=0,
        project="Smart_Construction_Material_Detect",
        name="yolov8s_material_train"
    )
    # 训练结束后单图推理测试(模拟无人机传回工地照片识别)
    pred = model.predict("test_site_img.jpg",save=True,conf=0.3) # conf调低适配堆叠建材小目标

五、数据集适用方向&拓展建议【GitHub Tips板块】

5.1 落地应用场景

  1. 无人机远程工地巡检:机载摄像头实时识别堆场钢筋、木方存量,自动生成物料盘点报表;
  2. 出入口智能验收:工地大门摄像头识别进场袋装沙、木料、钢筋,自动统计进场数量;
  3. 现场安全管控:识别建材乱堆乱放违规区域,联动智慧工地平台预警。

5.2 模型选型参考

  • 边缘端(无人机/工地摄像头):YOLOv5-n、YOLOv8-n、MobileNet+SSD(轻量化低算力)
  • 云端盘点(服务器批量图像处理):YOLOv8-L/X、RT-DETR、YOLO-World(高精度统计)

六、文末结语

本套2200张施工现场建材数据集聚焦四大主材细分识别,补齐智慧工地AI物料盘点的数据短板,开发者可基于上述代码快速完成模型训练,落地建筑行业物料智能化管理项目。后续将持续扩充不同地域、不同规格建材实拍数据,拓展水泥块、脚手架等新增识别类别,关注即可获取数据集更新与配套工程落地案例。

附加分类标签

智慧工地,AI建材识别,目标检测数据集,YOLO训练数据集,建筑数字化,无人机工地巡检,深度学习实战,工地物料盘点

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐