智慧建筑:基于YOLOv7的建筑外墙缺陷检测

 
 

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

58607642d1706f59cfd92abc764ff3b2.gif

01

前景概要

现有的基于深度学习的方法在识别速度和模型复杂性方面面临一些挑战。为了保证建筑外墙缺陷检测的准确性和速度,我们研究了了一种改进的YOLOv7方法BFD-YOLO。首先,将YOLOv7中原有的ELAN模块替换为轻量级的MobileOne模块,以减少参数数量并提高推理速度。其次,在模型中加入了坐标注意力模块,增强了特征提取能力。接下来,使用SCYLLA-IoU来加快收敛速度并增加模型的召回率。最后,我们扩展了开放数据集,构建了一个包括三个典型缺陷的建筑立面损伤数据集。BFD-YOLO基于该数据集展示了卓越的准确性和效率。与YOLOv7相比,BFD-YOLO的精度和mAP@.5分别提高了2.2%和2.9%,同时保持了相当的效率。实验结果表明,该方法在保证实时性的前提下,获得了较高的检测精度。

4afb091ec0e125b2549e5c69c899bb8f.gif

02

现状和项目动机

外墙缺陷的存在是建筑运营阶段的一个紧迫问题,通常归因于机械和环境因素。典型的缺陷表现为混凝土剥落、装饰剥落、构件裂缝、大规模变形、瓷砖损伤、潮湿损坏等。这些缺陷会影响外观,降低建筑物的使用寿命。更严重的是,外墙坠物可能会造成安全事故和无法弥补的损失。结构损伤检测是结构健康监测的一个组成部分,对确保建筑物的安全运行至关重要。作为结构损伤检测的一个组成部分,建筑外墙缺陷的检测可以使政府和管理层准确了解建筑外墙的综合状况,从而有助于制定合理的维修方案。这是降低建筑维护成本、延长建筑使用寿命和减轻外墙损坏影响的有效方法。许多国家和地区正在制定定期标准化目视检查的政策。建筑外墙缺陷的检测已成为建筑维护的关键组成部分。

目视检查是评估建筑外观状况的一种简单可靠的方法。传统的建筑外观检查通常需要专业人员带着专用工具到达检查地点,在那里使用视觉观察、锤击和其他技术进行评估。这些方法依赖于检查员的专业知识和经验,这是主观的、危险的和低效的。由于建筑数量的增加和规模的扩大,人工目视检查方法已不足以满足大规模检查的要求。随着技术的进步,许多新方法(如激光扫描、3D热成像和SLAM)正被用于通过无人机和机器人平台进行外墙损伤检测。与传统技术相比,这些新方法更方便、更安全,但耗时且成本高。因此,这些方法在满足大规模检查的需求方面也面临挑战。因此,有必要开发一种更精确、更有效的表面缺陷检测方法,以提高检测效率并降低计算成本。

e0ca035f36d7d421bb6b681b32d378c9.gif

03

新想法及实践细节

建筑外墙缺陷有多种类型,不同的检测方法都适用。常见的类型包括裂缝、剥落和墙体空鼓。对于裂纹,有更多的研究使用语义分割进行检测。对于墙体空鼓,敲击法和红外热像法应用更为广泛。我们经过调研和研究,选择了适合目标检测方法且易于构建数据集的缺陷类型。数据集中的图像主要来自通过手机、摄像机和无人机拍摄的建筑立面图像。此外,一些来自互联网和公共数据集的图像也被用于扩展。所有图像的宽度在1000到3000像素之间,高度在2000到5000像素之间。该数据集由三个建筑外墙缺陷组成:分层、剥落和瓷砖损失。总共收集了1907张原始图像,其中包含约2%的背景图像。背景图像是添加到数据集中以减少错误位置的没有缺陷的图像。训练集、验证集和测试集按照7:2:1的比例进行划分。下图显示了数据集中的缺陷示例。

e06c11179e729168ae22c15167d10f79.png

从左到右分别是分层、剥落和瓷砖损耗。

Data Augmentation

在神经网络的模型训练中经常需要大量的数据。然而,获取建筑外墙缺陷的图像相对困难,并且在收集的数据中存在类别不平衡的问题。为了减轻这个问题的影响,我们将数据扩充技术应用于训练数据。数据扩充是对原始数据执行各种转换的常用技术。它被广泛应用于深度学习领域,以系统地生成更多的训练数据。数据扩充可以帮助模型学习更多的数据变化,防止其过度依赖特定的训练样本。监督数据增强技术包括几何变换(例如,翻转、旋转、缩放、裁剪等)和像素变换(例如噪声、模糊、亮度调整、饱和度调整等)。

251e443c60eded61cf9b2329c071a3fc.png

新设计框架

f0f654531e32733bc8e9f06eb4de4286.png

它可以分为主干和头。主干网络的功能是提取特征。YOLOv7的原始主干由几个CBS、MP和ELAN模块组成。CBS是一个由卷积核、批处理规范化和SiLU激活函数组成的模块。议员由MaxPooling和CBS组成。改进后的主干网用MobileOne模块取代了ELAN模块以提高速度,并在每个MobileOne模件后面添加了一个协调注意力模块。所提出的改进方法能够关注输入图像中的显著特征并抑制外来信息,从而有效地提高检测精度。

网络的头是一个PaFPN结构,它由一个SPPPCC、几个ELAN2、CatConv和三个RepVGG块组成。ELAN的设计采用了梯度路径设计策略。与数据路径设计策略相比,梯度路径设计策略侧重于分析梯度的来源和组成,以设计有效利用网络参数的网络架构。该策略的实现可以使网络架构更加轻量级。ELAN和ELAN2之间的区别在于它们的通道数量不同。将结构重新参数化方法应用于RepVGG区块。该方法采用多分支训练结构和单分支推理结构来提高训练性能和推理速度。在输出三个特征图后,头通过三个RepConv模块生成三个不同大小的预测结果。

e272ca697f686bfcdf7496686569097e.gif

04

项目落地效果

建立了一个实验平台来训练模型并进行测试。实验平台的硬件和软件配置如下表所示。

环境

名称

系统
Win 10
CPU

I7-11700

GPU
RTX 3090
RAM
32GB
语言
Python 3.7
框架
Pytorch 1.11.0

在训练中,SGD用于模型训练,动量为0.937,权重衰减率为0.0005。Lr0和lrf分别设置为00.1和0.1,这意味着初始学习率为0.01,最终学习率为初始学习率的0.1倍。此外,为了使模型更好地拟合数据,还进行了五个epoch的热身训练。预热训练方法允许模型在最初的几个时期内稳定下来,然后以预设的学习速率进行训练,以更快地收敛。所有训练都是用150个epoch进行的,批次大小设置为16。

b612b281cf5c5be3978b5f2a269efe4f.png

1685d729744e14478859cfe744e0996c.png

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值