智慧工地AI视觉落地|施工现场建材目标检测开源数据集|无人机航拍建材识别、工地智能化物料盘点深度学习10266期
智慧工地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个标签完全匹配施工现场高频主材,全部取自工地实拍堆放场景:
- Plywood胶合板:建筑支模常用多层板材,多成堆平铺/立放堆放;
- Lumber木材:工地木方、原木料,长短堆叠杂乱,是识别难点;
- Rebar钢筋:盘螺、直条螺纹钢,捆装堆放,外形呈圆柱形簇状;
- 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 落地应用场景
- 无人机远程工地巡检:机载摄像头实时识别堆场钢筋、木方存量,自动生成物料盘点报表;
- 出入口智能验收:工地大门摄像头识别进场袋装沙、木料、钢筋,自动统计进场数量;
- 现场安全管控:识别建材乱堆乱放违规区域,联动智慧工地平台预警。
5.2 模型选型参考
- 边缘端(无人机/工地摄像头):YOLOv5-n、YOLOv8-n、MobileNet+SSD(轻量化低算力)
- 云端盘点(服务器批量图像处理):YOLOv8-L/X、RT-DETR、YOLO-World(高精度统计)
六、文末结语
本套2200张施工现场建材数据集聚焦四大主材细分识别,补齐智慧工地AI物料盘点的数据短板,开发者可基于上述代码快速完成模型训练,落地建筑行业物料智能化管理项目。后续将持续扩充不同地域、不同规格建材实拍数据,拓展水泥块、脚手架等新增识别类别,关注即可获取数据集更新与配套工程落地案例。
附加分类标签
智慧工地,AI建材识别,目标检测数据集,YOLO训练数据集,建筑数字化,无人机工地巡检,深度学习实战,工地物料盘点
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)