01 前景概要
现有的基于深度学习的方法在识别速度和模型复杂性方面面临一些挑战。为了保证建筑外墙缺陷检测的准确性和速度,我们研究了了一种改进的YOLOv7方法BFD-YOLO。首先,将YOLOv7中原有的ELAN模块替换为轻量级的MobileOne模块,以减少参数数量并提高推理速度。其次,在模型中加入了坐标注意力模块,增强了特征提取能力。接下来,使用SCYLLA-IoU来加快收敛速度并增加模型的召回率。最后,我们扩展了开放数据集,构建了一个包括三个典型缺陷的建筑立面损伤数据集。BFD-YOLO基于该数据集展示了卓越的准确性和效率。与YOLOv7相比,BFD-YOLO的精度和mAP@.5分别提高了2.2%和2.9%,同时保持了相当的效率。实验结果表明,该方法在保证实时性的前提下,获得了较高的检测精度。
02 现状和项目动机
外墙缺陷的存在是建筑运营阶段的一个紧迫问题,通常归因于机械和环境因素。典型的缺陷表现为混凝土剥落、装饰剥落、构件裂缝、大规模变形、瓷砖损伤、潮湿损坏等。这些缺陷会影响外观,降低建筑物的使用寿命。更严重的是,外墙坠物可能会造成安全事故和无法弥补的损失。结构损伤检测是结构健康监测的一个组成部分,对确保建筑物的安全运行至关重要。作为结构损伤检测的一个组成部分,建筑外墙缺陷的检测可以使政府和管理层准确了解建筑外墙的综合状况,从而有助于制定合理的维修方案。这是降低建筑维护成本、延长建筑使用寿命和减轻外墙损坏影响的有效方法。许多国家和地区正在制定定期标准化目视检查的政策。建筑外墙缺陷的检测已成为建筑维护的关键组成部分。
目视检查是评估建筑外观状况的一种简单可靠的方法。传统的建筑外观检查通常需要专业人员带着专用工具到达检查地点,在那里使用视觉观察、锤击和其他技术进行评估。这些方法依赖于检查员的专业知识和经验,这是主观的、危险的和低效的。由于建筑数量的增加和规模的扩大,人工目视检查方法已不足以满足大规模检查的要求。随着技术的进步,许多新方法(如激光扫描、3D热成像和SLAM)正被用于通过无人机和机器人平台进行外墙损伤检测。与传统技术相比,这些新方法更方便、更安全,但耗时且成本高。因此,这些方法在满足大规模检查的需求方面也面临挑战。因此,有必要开发一种更精确、更有效的表面缺陷检测方法,以提高检测效率并降低计算成本。
03 新想法及实践细节
建筑外墙缺陷有多种类型,不同的检测方法都适用。常见的类型包括裂缝、剥落和墙体空鼓。对于裂纹,有更多的研究使用语义分割进行检测。对于墙体空鼓,敲击法和红外热像法应用更为广泛。我们经过调研和研究,选择了适合目标检测方法且易于构建数据集的缺陷类型。数据集中的图像主要来自通过手机、摄像机和无人机拍摄的建筑立面图像。此外,一些来自互联网和公共数据集的图像也被用于扩展。所有图像的宽度在1000到3000像素之间,高度在2000到5000像素之间。该数据集由三个建筑外墙缺陷组成:分层、剥落和瓷砖损失。总共收集了1907张原始图像,其中包含约2%的背景图像。背景图像是添加到数据集中以减少错误位置的没有缺陷的图像。训练集、验证集和测试集按照7:2:1的比例进行划分。下图显示了数据集中的缺陷示例。
从左到右分别是分层、剥落和瓷砖损耗。
Data Augmentation
在神经网络的模型训练中经常需要大量的数据。然而,获取建筑外墙缺陷的图像相对困难,并且在收集的数据中存在类别不平衡的问题。为了减轻这个问题的影响,我们将数据扩充技术应用于训练数据。数据扩充是对原始数据执行各种转换的常用技术。它被广泛应用于深度学习领域,以系统地生成更多的训练数据。数据扩充可以帮助模型学习更多的数据变化,防止其过度依赖特定的训练样本。监督数据增强技术包括几何变换(例如,翻转、旋转、缩放、裁剪等)和像素变换(例如噪声、模糊、亮度调整、饱和度调整等)。
新设计框架
它可以分为主干和头。主干网络的功能是提取特征。YOLOv7的原始主干由几个CBS、MP和ELAN模块组成。CBS是一个由卷积核、批处理规范化和SiLU激活函数组成的模块。议员由MaxPooling和CBS组成。改进后的主干网用MobileOne模块取代了ELAN模块以提高速度,并在每个MobileOne模件后面添加了一个协调注意力模块。所提出的改进方法能够关注输入图像中的显著特征并抑制外来信息,从而有效地提高检测精度。
网络的头是一个PaFPN结构,它由一个SPPPCC、几个ELAN2、CatConv和三个RepVGG块组成。ELAN的设计采用了梯度路径设计策略。与数据路径设计策略相比,梯度路径设计策略侧重于分析梯度的来源和组成,以设计有效利用网络参数的网络架构。该策略的实现可以使网络架构更加轻量级。ELAN和ELAN2之间的区别在于它们的通道数量不同。将结构重新参数化方法应用于RepVGG区块。该方法采用多分支训练结构和单分支推理结构来提高训练性能和推理速度。在输出三个特征图后,头通过三个RepConv模块生成三个不同大小的预测结果。
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。