基于航拍图像与改进U-Net 的建筑外墙裂缝检测方法

2024-04-11 13:02刘少华任宜春郑智雄牛孜飏
土木与环境工程学报 2024年1期
关键词:外墙卷积裂缝

刘少华 ,任宜春 ,郑智雄 ,牛孜飏

(1.长沙理工大学 土木工程学院,长沙 410114;2.中国建筑第五工程局有限公司,长沙 410007)

建筑外墙裂缝会使带腐蚀性的雨水渗入墙体,导致墙体涂料与防水材料等发霉、剥落,不仅影响建筑美观,甚至锈蚀墙内钢筋等材料,破坏墙体结构,带来安全隐患。准确检测出裂缝位置,可以为制定有效的维护方案提供依据。目前,建筑外墙裂缝主要采用人工检测,这是一种高空作业,不仅危险,而且检测效率和精度都很低。如何安全、高效地检测建筑外墙裂缝成为亟须解决的问题。

计算机视觉为裂缝检测提供了一种非接触式的检测技术[1],包括图像处理和深度学习两类方法。基于图像处理的裂缝检测方法根据裂缝的纹理和边缘等特征,人为设计裂缝检测的依据,实现裂缝检测[2]。这种方法够在特定的数据集上取得良好的检测效果,但是裂缝的检测精度不高,且需要针对特定的图像设计专门的裂缝检测算法。近年来,基于深度学习的方法在裂缝检测领域取得了显著的成果,根据裂缝检测方式的不同可将其分为3 类:图像分类、目标检测与语义分割。基于图像分类[3]与目标检测[4]的裂缝检测方式,只能识别并定位裂缝,不能在像素级别上标记裂缝,从而无法获得裂缝形状信息;基于语义分割的裂缝检测方法是对图像中的每个像素点进行分类,能将裂缝像素准确标记出来,既可以检测有无裂缝,又能得到裂缝的位置、形状等信息[5]。经典语义分割模型 U-Net[6]、DeepLabv3+[7]、PSPNet[8]及其改进模型在桥梁、路面及隧道等领域的裂缝检测中得到广泛应用。李良福等[9]提出了改进的PSPNet 模型,解决了桥梁裂缝分割细节信息丢失的问题;Li 等[10]提出了一种可训练的上下文编码网络,实现了复杂条件下桥梁裂缝的检测;曹锦纲等[11]提出了一种基于注意力机制的网络,实现了自动准确地路面裂缝检测;Nguyen等[12]提出了一种两级卷积神经网络来处理含噪声和低质量的道路图像;孟庆成等[13]用改进的MobileNet_v2 替换U-Net 编码器,实现了对混凝土裂缝的实时检测;Dang 等[14]提出了改进的U-Net 模型,在满足裂缝分割性能要求的基础上支持裂缝自动测量。上述模型在裂缝检测中的成功应用,表明深度学习方法在裂缝检测领域具有广阔的应用前景。

建筑外墙裂缝与桥梁、路面等混凝土裂缝拥有共同特征,然而建筑外墙因其材料多样性,且墙体包含复杂建筑构件,导致建筑外墙裂缝图像背景更加复杂,存在更多的背景噪声。因此,有必要为建筑外墙裂缝检测针对性地设计一个深度学习模型。基于深度学习的裂缝检测方法在训练和预测阶段都依赖原始图像数据,人工采集大型建筑的外墙图像需高空作业,存在安全隐患大、效率低等问题。近年来,无人机技术取得快速发展,无人机搭载传感器为高空采集图像提供了一种安全且高效的方式,在抗震救灾、农业植保等领域得到广泛应用[15]。笔者使用无人机航拍采集建筑外墙图像,并根据裂缝图像特征设计了改进的U-Net 模型用于裂缝检测。

1 裂缝数据集构建

1.1 图像采集与处理

图像采集包括裂缝数据集构建和裂缝检测两个阶段。在构建数据集时,为了保证训练后模型的鲁棒性,需要广泛采集各类型建筑外墙图像,包括不同光照条件、不同拍摄角度及不同航拍间距等。在裂缝检测阶段,需要根据裂缝检测精度要求来设计图像采集方案,规划采集路线、航拍间距等以确定裂缝位置及图像像素比例尺,从而指导裂缝修复与建筑维护。

广泛采集原始建筑外墙图像以构建建筑外墙裂缝数据集。共得到建筑外墙裂缝图像566 张,分辨率大小为8 000×6 000。由于采集的图像分辨率过大,不利于模型训练,且裁剪后的裂缝图像细节信息更加丰富,于是对图像进行裁剪。利用滑动窗口方法将原图裁剪为512×512 大小的子图,第1步:从图像左上角开始,沿着自左向右、自上而下的顺序依次裁剪,得到子图165 张,保证子图覆盖原图,避免信息丢失;第2 步:在图像左下角7 488×5 488 范围内随机选择35 个点作为子图左下角进行裁剪,得到子图35 张,用于信息补充。在完成所有图像裁剪后,剔除非建筑外墙图像及不含裂缝的背景图像后共得到裂缝图像3 862 张。

图1 裂缝样本Fig.1 Crack samples

为了确保模型的泛化性能和复杂背景下裂缝分割的鲁棒性,必须保证裂缝图像数据中裂缝样本及图像背景的多样性和复杂度。无人机航拍包括不同天气状况、一天的不同时间段,因光照条件不同,得到明暗程度不同的裂缝图像;裂缝图像包含的裂缝类型全面,包括纵向、横向、斜向、交叉及任意分布的裂缝图像,且图像背景丰富,包括不同材料建筑外墙下砖缝、门窗、排水管、阴影及杂物等背景,部分裂缝图像如图1 所示。

1.2 图像标注

为了保证数据集的可靠性,使用开源的分割任务标注软件labelme 对裂缝进行人工标注。首先,沿着裂缝边缘逐点勾勒出裂缝的轮廓,生成一个包含裂缝位置坐标的json 文件,然后用python 代码将其转化为可供计算机学习的二值图像,标记结果如图2 所示。

图2 裂缝标注Fig.2 Crack labeling

在完成裂缝数据集构建后,按照8∶1∶1 的比例将数据集划分为训练集、验证集和测试集,其中训练集3 102 张,验证集与测试集各380 张。

2 研究方法

2.1 U-Net 模型

U-Net 是在全卷积神经网络的基础上提出用于医学图像分割的网络模型。该模型是一个对称编解码结构,包括编码器、解码器两个部分。其独特之处在于将编码器中低分辨率特征图通过跳跃连接直接拼接到对应解码器上采样生成的特征图,从而有效融合浅层纹理特征和深层语义特征,有利于图像分割。

编码器是由两个无填充的3×3 卷积重复应用组成,每一个卷积后面有一个ReLU 激活函数,两次卷积之后有一个2×2 最大池化,用于下采样。编码器一共包含4 个下采样,每一个下采样中,将特征通道的数量增加一倍,特征图大小减为一半。编码器主要负责提取输入图像的特征信息,并将多个尺度的特征图传入解码器。

解码器是模型的加强特征提取网络,利用转置卷积对主干网络获取的5 个初步有效特征层进行上采用,并进行特征融合,最终得到一个融合了所有特征的有效特征层。

2.2 改进的U-Net 模型

研究表明:U-Net 模型存在细长裂缝分割不连续、复杂背景下裂缝漏检及背景误检的问题。分析其可能原因为:1)裂缝图像正负样本分布不均对模型性能造成影响;2)模型特征提取能力不足导致裂缝漏检及误检;3)缺少获取多尺度信息的能力导致裂缝分割不连续及背景误检。在分析原因基础上提出了基于U-Net 的改进模型,相对于原模型做出了3 点具有针对性的改进:1)使用改进的损失函数处理裂缝图像正负样本分布极度不均衡的问题;2)使用预训练的ResNet50 网络替换原模型的编码网络,以提升模型特征表达能力;3)添加改进的ASPP 模块,获取多尺度上下文信息。网络结构如图3 所示。

图3 改进的U-Net 模型Fig.3 Improved U-Net model

2.2.1 残差神经网络

理论上,神经网络的层数越多即深度学习模型越深,网络的特征表达能力越强。但神经网络达到一定深度时,继续加深会因为反向传播过程梯度消失导致模型性能变得更差。为了解决这个问题,He等[16]提出了用跳跃连接解决网络加深造成梯度消失的残差神经网络(ResNet),包括Conv Block 和Identity Block 两个基本模块,Conv Block 改变网络的维度,用来调整特征图大小和层数;Identity Block不改变网络维度,用来加深网络,结构如图4 所示。

图4 残差模块Fig.4 Residual Module

基于深度学习的方法对建筑外墙裂缝图像分割,然而裂缝的标注难度较大,自制大型数据集成本太高且不实际,为了克服深度学习方法依赖大量训练样本的问题,引入迁移学习方法。基于特征提取的迁移,用ImageNet 数据集上预训练好的深度残差网络(删除最后的平均池化层、全连接层和softmax 层),替换U-Net 网络原来由两层卷积加一层池化组成的编码网络。

2.2.2 ASPP 模块

受空间金字塔池化(Spatial Pyramid Pooling,SPP)模块[8]启发,Chen 等[7]提出了ASPP 模块,结构如图5 所示。

图5 ASPP 模块Fig.5 ASPP module

采用并行的多个具有不同扩张率的扩张卷积,每个分支使用不同扩张率单独进行图像特征提取,并将各分支提取特征进行融合,从而提取得到多尺度的图像信息。该模块可以有效避免局部信息丢失,增加远距离信息的相关性。

扩张卷积是在普通卷积中增加“空洞”来扩大感受野的卷积,相对于普通卷积增加了“扩张率”这个超参数。通过设置扩张率的大小,可以实现相同参数量和计算量下更大的感受野。如图6 所示,扩张率为2 的3×3 卷积核与普通3×3 卷积核相比,感受野由3×3 扩大为5×5。

图6 感受野对比图Fig.6 Comparison of receptive field

值得注意的是,组合扩张卷积的扩张率设置不当会产生“网格效应”。当卷积核大小为3×3,组合扩张率设为[2,2,2]时,像素利用情况如图7(a)所示(数字表示像素利用次数),此时,大量像素未被利用(数字0 处),产生了“网格效应”;组合扩张率设为[1,2,3]时,像素利用情况如图7(b)所示,此时像素利用全面,未产生“网格效应”。

图7 像素利用情况Fig.7 Pixel utilization

Wang 等[17]提出了混合扩张卷积(Hybrid Dilated Convolution,HDC)理论,用于解决“网格效应”问题。假设有n个卷积核大小为k×k,扩张率为[r1…ri…rn]的扩张卷积,定义两个非零值之间的距离为

式中:Mn=rn,M2≤k。另外,还需保证扩张率的最大公约数为不能大于1。

由于裂缝呈线性分布的特点,既有小目标物体的特点又有大目标物体的特点,且裂缝图像含有多尺度背景噪声。原U-Net 模型对细长裂缝预测存在分割不连续及背景噪声误检的问题。

为了解决上述问题,在模型编解码之间添加ASPP 模块。ASPP 模块扩张率设计基于HDC 理论,并借鉴DeepLabv3+中ASPP 模块结构。设计了扩张率分别为[2,3,5]、[2,3,7]、[2,3,9]、[2,3,12]的ASPP 模块进行消融实验。

2.2.3 损失函数

在建筑外墙裂缝图像中,裂缝像素所占比例极小,约为1.5%~4%,造成正(裂缝)负(背景)样本分布极度不均衡,且样本中存在大量易分类的负样本。研究发现,经典的二分类损失函数在裂缝图像语义分割模型中,易分类的负样本会对损失起主要贡献作用,导致模型对裂缝特征的学习被抑制,模型的性能和优化方向不稳定。

为了解决现有损失函数在裂缝分割模型中的不足,提出使用Dice Loss[18]作为正则项与Focal Loss[19]结合的新损失函数(FD Loss),如式(2)所示。

式中:w为数量级校正因子,保证两者处在相同数量级上。

Focal Loss 是基于二分类交叉熵损失函数改进而来的处理正负样本分布不均,并让模型在训练时更专注于难分类样本的损失函数,如式(3)所示。

式中:N为像素点总数;与y分别表 示第n个像素的预测值与真实值,通过设置α来控制正负样本对总损失的共享权重;通过设置γ来减少易分类样本的权重,使模型在训练时更专注于难分类的样本,本文α设为0.25、γ设为2。

Dice Loss 源于Dice 系数,可以缓解正负样本在数量上不平衡的问题,并优化F1_score,如式(4)所示。

式中:N为像素点总数;与y分别表 示第n个像素的预测值与真实值;|·|表示其参数的所有矩阵元素的和;∩表示逐个元素的乘法运算。

3 实验设计与分析

实验环境配置如表1 所示。

表1 实验环境配置Table 1 Experimental environment configuration

模型训练100 个epoch,前50 个epoch 冻 结编码器,对解码器进行训练。这样可以避免因为编码器预训练权重与未训练的解码器权重相差太大导致编码器预训练权重被破坏,同时还可以加快模型训练速度。批大小设为16,初始学习率设为0.000 1。后50 个epoch 对整个模型进行训练,批大小设为8,初始学习率设为0.000 01。各模型损失曲线与mIoU 曲线如图8 所示。总体上,模型大约在85 个epoch 后达到收敛。

图8 各模型损失曲线与mIoU 曲线Fig.8 Loss curve and mIoU curve of each model

3.1 评价指标

对于二分类问题,在进行结果评价时,可将样例根据其真实类别与预测类别的组合划分为真正例(TP)、假正例(FP)、真反例(TN)、假反例(FN)4种情形。

使用交并比(IoU)、精准率(Precision)、召回率(Recall)和F1_score这4 个指标,对网络模型的分割性能进行定量评估。

IoU 突出预测结果与标签的重合度,是常见的图像分割评价指标;Precision 突出预测结果中误检像素的比例;Recall 突出漏检的比例;F1_score综合考虑了Precision 与Recall,F1_score值越大代表模型性能越好。

3.2 实验分析

3.2.1 损失函数对比实验

分别使用Focal Loss、Dice Loss 以及FD Loss作为模型的损失函数,在自制数据集上训练,并在测试集上测试,得到实验结果如图9 所示。

图9 损失函数实验结果Fig.9 Experimental results of loss function

由图9 可知,Focal Loss 从局部进行考察,其Precision 较高,Recall 相对较低;Dice Loss 从全局进行考察,Recall 较高,Precision 较低。FD Loss 结合两者共同优化模型,引导模型更加注重对难分类的正(裂缝)样本进行学习,并提高预测裂缝区域与标注裂缝区域的重合度。相较于单独使用Focal Loss和Dice Loss,FD Loss 在裂缝数据上表现出更优异的效果,且训练过程更加稳定。

3.2.2 编码网络对比实验

在U-Net 模型基础上,将模型编码网络分别替换为预训练的ResNet18、ResNet34、ResNet50 及ResNet101 进行实验(模型使用FD Loss 作为损失函数),实验结果如表2 所示。

表2 编码网络实验结果Table 2 Experimental results of encoder

由表2 可知,随着编码网络的加深,各评价指标都逐步提升,说明加深编码网络提高了模型特征提取能力,模型对裂缝的分割性能得到优化;然而编码网络使用ResNet101 时,各评价指标反而大幅下降,说明此时的模型复杂度与数据集大小及裂缝的分割难度不匹配,模型出现了过拟合现象。选择ResNet50 作为迁移网络,在增强模型特征提取能力的同时避免网络过深导致模型与分割任务复杂度不匹配,造成过拟合。

3.2.3 ASPP 模块扩张率对比实验

在U-Net 模型基础上,分别在编解码网络间添加3 种不同扩张率的ASPP 模块进行实验(模型使用FD Loss 作为损失函数),实验结果如表3 所示。

表3 扩张率实验结果Table 3 Experimental results of dilated rate

由表3 可知,为了避免“网格效应”,根据HDC理论设计的ASPP 模块为两个较小扩张率加一个较大扩张率的组合,随着较大扩张率由5、7、9 逐渐增大时,各项评价指标均逐渐上升,说明组合的较大扩张率增大有助于提升模型的裂缝分割性能。当扩张率设置为[2,3,12]时,评价指标反而减小。这是因为其M2=6>3,不满足HDC 理论,导致模型性能下降。当扩张率设为[2,3,9]时,各项评价指标均达到最高,模型分割性能最优。基于此,改进的ASPP 模块选择扩张率为[2,3,9]的一组扩张卷积,结构如图10 所示。

图10 改进的ASPP 模块Fig.10 Improved ASPP module

改进的ASPP 模块首先使用一个1×1 的普通卷积作为第1 层,保留原特征图以补充空间信息;然后使用扩张率为[2,3,9]的扩张卷积作为2 到4 层,提取多尺度物体的特征;最后使用全局平均池化作为第5 层,获取全局特征。

3.2.4 消融实验

为了验证改进策略对提高模型分割性能的有效性,在自制数据集上进行消融实验。分别验证进行迁移学习、添加改进的ASPP 模块以及二者组合对模型分割效果的影响(模型都使用FD Loss 作为损失函数),实验结果如表4 所示。

表4 消融实验结果Table 4 Ablation experimental results

比较实验结果可知,在改进损失函数的基础上用ResNet50 替换编码网络,Recall 提升了6.78%,同时IoU、Precision 和F1_score 都有相应的提升,说明引入迁移学习的U-Net 模型可以提取更丰富的裂缝特征,减少了部分裂缝不能被准确分割的状况;在改进损失函数的基础上添加改进的ASPP 模块,Precision 提升了2.72%,同时IoU、Recall 和F1_score都有相应的提升,说明改进的ASPP 模块获取多尺度上下文信息的能力在U-Net 模型中得到利用,降低了将背景误检为裂缝的状况,保证了裂缝分割的连续性;改进的U-Net 模型是在改进损失函数的基础上引入迁移学习方法并加入改进的ASPP 模块,与单个改进策略相比,以上评价指标都有一定的提升,说明用ResNet50 替代编码网络与添加改进的ASPP 模块可以共同优化模型,并提升模型性能。与原模型相比,IoU 指标和F1_score 分别提升了3.53%、4.18%,说明所提改进策略有效提升了模型的裂缝分割性能。

3.2.5 经典语义分割模型对比

为了验证改进模型的先进性和鲁棒性,在自制建筑外墙裂缝数据集上复现了经典语义分割模型U-Net、DeepLabv3+及PSPNet,并与模型进行对比。为了确保实验有效性,各模型在相同实验参数下进行训练。通过评价指标与分割结果进行定性与定量地对比模型性能。不同模型在建筑外墙裂缝数据集上实验结果如表5 所示。

表5 模型对比结果Table 5 Model comparison results

由表5 可知,改进的U-Net 模型各项评价指标分别为69.06%、82.57%、86.3%、84.39%,均高于其他语义分割模型,说明模型对建筑外墙裂缝分割具有最优的性能。

为了更直观地对比经典模型与本文模型对建筑外墙裂缝图像的分割效果,选取3 张分别包含细长裂缝、任意分布裂缝及复杂背景噪声的裂缝图像进行预测,得到各模型的分割结果如图11 所示。

图11 裂缝分割结果对比Fig.11 Crack segmentation results comparison

由图11 可知,经典语义分割模型在裂缝数据集上训练后均能进行裂缝分割,但由于原模型并非针对裂缝特征进行设计,故裂缝分割效果较差,存在大量漏检和误检的情况。对比经典模型分割效果可知,U-Net 模型对裂缝的分割效果较理想,存在少量误检和漏检的情况;Deeplabv3+模型对裂缝的分割效果较U-Net 要差,漏检和误检情况更加明显;PSPNet 模型对裂缝的分割效果较差,不仅分割粗糙,且存在大量漏检和误检。与经典模型相比,针对裂缝特征改进的U-Net 模型对裂缝分割不仅准确,而且分割精细,与标签图像基本一致;与U-Net模型相比,改进模型解决了原模型细长裂缝分割不连续、复杂背景下裂缝漏检及背景误检的问题。

4 结论

针对建筑外墙裂缝人工检测方法效率低、检测效果和安全性差的问题,提出基于无人机航拍与计算机视觉的裂缝检测方法。针对U-Net 模型存在的问题进行改进,并进行对比实验,得出以下结论:

1)无人机灵活性强,可以绕建筑飞行并快速获取高清的外墙图像。在构建裂缝数据集和建筑外墙裂缝定期检测阶段,可以使用无人机绕建筑航拍实现安全、高效地采集建筑外墙图像。

2)提出了组合Focal Loss 与Dice Loss 的FD Loss,用于模型优化。新损失函数具有更强的处理正负样本分布不均的能力,保证了模型训练过程的稳定性,并提高了模型对裂缝的分割性能。

3)所提改进的U-Net 模型增强了模型编码网络的特征提取能力,以及模型获取多尺度上下文信息的能力,解决了原模型细长裂缝分割不连续、复杂背景下裂缝漏检及背景误检的问题,IoU 指标和F1_score 分别提升了3.53%、4.18%。实验表明,改进的U-Net 模型可以对复杂背景下的裂缝进行准确识别,具有较强的鲁棒性。

4)所提基于无人机航拍与计算机视觉的建筑外墙裂缝检测方法,使用无人机获取裂缝图像,并利用改进的U-Net 模型对裂缝进行检测。该方法解决了传统建筑外墙裂缝检测方法需要人工高空作业带来的安全问题,并提高了裂缝检测的效率和精度。

猜你喜欢
外墙卷积裂缝
基于3D-Winograd的快速卷积算法设计及FPGA实现
碳酸盐岩裂缝描述七大难点
裂缝(组诗)
从滤波器理解卷积
如此外墙,防水还扛得住么?!
地球的裂缝
基于傅里叶域卷积表示的目标跟踪算法
一种外墙清洗机器人控制系统
外墙保温技术探讨
外墙色彩