建筑物损伤检测数据集 | 建筑物损伤 裂缝检测 渗漏识别 脱落检测 9143期
数据集概述
本数据集专注于建筑物结构表观损伤的视觉检测与分类 ,服务于建筑安全巡检、老旧小区改造及市政工程健康监测。数据涵盖五类典型建筑损伤,适配无人机航拍巡检、外立面隐患排查及自动化损伤识别等应用。

数据集核心信息
| 数据要素 | 详细说明 |
|---|---|
| 类别 | 共 5 类:裂缝、渗漏、脱落、锈蚀、鼓包 |
| 数量 | 14304 张图像 |
| 格式 | 图像为 JPG/PNG(分辨率 640×640 );同时提供 YOLO 、VOC 、COCO 三种标注格式 |
| 数据划分 | 训练集 11443 张,验证集 1430 张,测试集 1431 张 |
| 应用价值 | 1. 结构巡检 :支撑建筑物外立面损伤的自动化检测与分类,替代人工登高检查。 2. 安全排查 :辅助老旧小区外立面隐患排查,自动标记裂缝、脱落风险区域。 3. 健康监测 :为桥梁、高架、廊道等构筑物的结构健康监测提供数据基础。 4. 算法研发:为多类别损伤检测、细粒度识别等视觉任务提供大规模训练与评测数据。 |

完整类别列表(共5类)
| 序号 | 英文名称 | 中文释义 | 包含该类图像数 | 标注框总数 |
|---|---|---|---|---|
| 0 | crackrotation | 裂缝 | 6253 | 17044 |
| 1 | leakagerotation | 渗漏 | 2464 | 6642 |
| 2 | abscissionrotation | 脱落 | 5165 | 22700 |
| 3 | corrosionrotation | 锈蚀 | 2102 | 9207 |
| 4 | bulgerotation | 鼓包 | 1170 | 1851 |
数据三要素解析
类别与损伤覆盖
- 数据集定义 5 类建筑典型损伤:裂缝 (crack)、渗漏 (leakage)、脱落 (abscission)、锈蚀 (corrosion)、鼓包(bulge)。
- 损伤类型覆盖了混凝土结构从物理开裂、渗水到材料劣化、涂层脱落的多种失效模式,具有较强的工程实用性。
- 类别名称后缀"rotation"表明数据可能包含了旋转增强样本。

数据规模与划分
- 图像总量达 14304 张,规模充足,能支撑多类别损伤检测模型的稳健训练。
- 按约 80:10:10 比例规范划分为训练集(11443张)、验证集(1430张)与测试集(1431张),划分规范。
- 图像分辨率统一为 640×640,可直接输入常见检测网络。
- 同时提供 YOLO 、VOC 、COCO 三种通用标注格式,灵活适配不同检测框架。
配套资源与源码
- 附赠基于 YOLOv11n 训练的完整模型(训练80轮),可直接推理或作为迁移学习起点。
- 提供全部训练 + 测试源代码。
- 提供 PyQt5 可视化界面(含源码、.ui、.qrc、图标文件),支持图片、视频、摄像头实时检测,实时显示目标位置、总数、置信度等信息,支持结果导出。
- 运行环境:Python=3.8、opencv-python、PyQt5、torch,支持 Windows、Linux 系统。
知识普及:建筑物损伤视觉检测的技术要点
- 裂缝的细长特征:裂缝呈细长线状,对检测算法的边缘保持能力要求较高。建议采用多尺度特征融合或专门的小目标检测头。
- 渗漏与锈蚀的边界模糊:渗漏、锈蚀等损伤边界可能模糊,与建筑表面纹理交织,需依赖色彩与纹理特征进行区分。
- 脱落与鼓包的形态差异:脱落通常呈现不规则缺失区域,鼓包呈局部隆起,模型需依赖形状与阴影特征进行区分。
- 背景干扰:建筑表面装饰、门窗、管线等可能与损伤混淆,建议训练时加入相关数据增强。
- 类别不平衡:鼓包类样本较少(1170张),裂缝类较多(6253张),训练时可采用类别加权损失或过采样策略。
- 应用闭环:检测结果可导入建筑管理系统,结合GPS信息生成损伤分布图与维修工单,辅助安全决策。
快速开始(代码示例)
1. 准备配置文件 (data.yaml)
yaml
path: ./building_damage_dataset
train: images/train
val: images/val
test: images/test
nc: 5
names: ['crackrotation', 'leakagerotation', 'abscissionrotation',
'corrosionrotation', 'bulgerotation']
2. 启动 YOLOv11n 训练
python
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
train_results = model.train(
data="data.yaml",
epochs=80,
imgsz=640,
batch=8,
device=0,
workers=2,
project="building_damage",
name="yolo11n_building",
conf=0.25
)
# 验证模型精度
metrics = model.val()
print(f"mAP@0.5 = {metrics.box.map50:.4f}")
# 单图推理
model.predict("test.jpg", save=True, conf=0.3)
# 导出onnx部署模型
model.export(format="onnx")
3. PyQt5 可视化检测界面
python
import sys
import cv2
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QLabel, QFileDialog
from PyQt5.QtGui import QImage, QPixmap
from ultralytics import YOLO
class DetWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("建筑物损伤检测系统 YOLOv11")
self.resize(1000, 700)
self.model = YOLO("runs/building_damage/yolo11n_building/weights/best.pt")
self.btn_img = QPushButton("图片检测", self)
self.btn_img.move(20, 20)
self.btn_img.clicked.connect(self.detect_img)
self.label_show = QLabel(self)
self.label_show.setGeometry(20, 80, 800, 550)
def detect_img(self):
fname, _ = QFileDialog.getOpenFileName()
if not fname:
return
res = self.model(fname, conf=0.3)
img = res[0].plot()
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
h, w, c = img.shape
qimg = QImage(img.data, w, h, c * w, QImage.Format_RGB888)
self.label_show.setPixmap(QPixmap.fromImage(qimg))
if __name__ == "__main__":
app = QApplication(sys.argv)
win = DetWindow()
win.show()
sys.exit(app.exec_())
标签
建筑物损伤 裂缝检测 渗漏识别 脱落检测 目标检测 YOLO格式 深度学习数据集 计算机视觉