复杂背景下机场道面细带状结构病害检测算法
2022-02-17李海丰韩红阳
李海丰,韩红阳
(中国民航大学 计算机科学与技术学院,天津 300300)
由于荷载因素和环境因素的反复作用,机场道面结构在使用过程中会逐渐出现各种结构病害,对其定期检修维护是确保机场安全运营的关键。目前,面向公路道面的病害检测算法已经取得了一定进展,但专门针对机场道面病害检测问题的研究很少。当前机场仍采用以人工巡检为主的道面病害检测算法,耗时费力、主观性强且成本高,无法满足机场快速发展的需求。因此,自动化的机场道面病害检测已成为当前研究的热点。
为了从图像中快速、准确地检测出病害,部分学者采用传统的图像处理方法。Sorncharean和Phiphobmongkol[1]基于网格单元划分,设计了一种用于强纹理和光照不均匀模型的裂缝检测算法。李清泉等[2]提出一种将裂缝提取问题转化为格状图顶点之间最小代价路径搜索的算法用以检测裂缝。Guan等[3]运用裂缝与背景信息存在的线性差异采用张量投票的方法增强裂缝特征。Peng等[4]基于改进Otsu阈值分割算法和改进的自适应迭代阈值分割算法,提出二次阈值分割算法,用于检测机场跑道裂缝。然而,该类算法易受环境因素干扰,而实际机场道面状况复杂,如背景纹理多样、病害与背景对比度低、噪声干扰强烈等,导致该类算法无法适用。
近年来,深度学习尤其是卷积神经网络(convolutional neural network,CNN)在图像识别领域取得了巨大进展[5-6],出现了一批优秀的目标检测算法,如Faster R-CNN系列[7-9]、STDN[10]、Cascade R-CNN[11]、DetNet[12]等,这些算法在通用目标检测数据集上取得了很好的效果。然而,本文所研究的机场道面图像数据与通用目标检测图像数据存在显著不同,具体体现在:根据MH/T 5024—2009[13],机场道面中包含裂缝、角隅断裂、接缝破碎、修补等类型的结构病害,接缝破碎是接缝两侧各60 cm范围内出现的裂缝,角隅断裂是在角隅处产生的与接缝斜交的裂缝,修补则是对严重的裂缝进行维修后重新产生的病害,它们具有很大的相似性,都呈现为细带状结构。因此,直接将现有目标检测算法应用于机场道面细带状结构病害,实验结果发现,对于隐藏在复杂背景中的小病害易出现漏检,大病害易出现检测不完整、位置定位不准的问题。近年来,国内外学者提出了一系列专门针对机场道面病害检测的深度学习算法。例如,王森等[14]设计了全卷积网络Crack FCN模型用以检测裂缝。Cha等[15]提出CNN和滑动窗口结合的检测算法对混凝土裂缝进行检测,提高了裂缝分类的准确度。2018年,Cha等[16]使用改进的Faster R-CNN来实时检测结构中多种类型的病害。Zou等[17]设计了多尺度融合的编解码结构网络DeepCrack,通过多尺度特征融合实现更佳的裂缝检测。以上算法虽然取得了一定的效果,但均存在网络深层感受野较小造成深层特征语义信息不足的问题,并且未能很好地利用图像的细节信息,使得病害检测的边界定位模糊。上述问题导致现有基于深度学习的病害检测算法仍无法完全适用于机场道面细带状结构病害检测。
基于以上分析,本文以DetNet[12]为主干网络,提出深度神经网络模型DetMSPNet,与目前经典的特征提取网络相比,DetNet通过引入额外的残差块并减少特征图下采样的次数和通道数,在获得大感受野的同时保持特征图的空间分辨率,有利于减少病害特征的损失,但对于细带状结构病害宽度狭小、与复杂背景对比度低等情况,特征提取能力仍不足。DetMSPNet在DetNet基础上加入注意力和特征融合机制,提升了模型对于细带状目标的检测能力,实验结果表明了本文算法的有效性。
1 机场道面细带状结构病害检测算法
本文提出的基于注意力机制与特征融合的深度神经网络模型DetMSPNet主要由4部分组成:残差空洞金字塔模块(DetASPP)、最大池化支路、3个不同扩张率的扩张卷积、金字塔池化模块(PPM),其详细结构如图1所示。首先,在网络各卷积层加入注意力机制模块CBAM[18],增强细带状结构病害的注意力权重,使其更关注于病害信息,抑制干扰信息;其次,设计DetASPP模块,通过多尺度特征学习,充分提取细带状结构病害特征;然后,增加最大池化支路,保留浅层特征具有的丰富细节信息,使得浅、深层特征进行融合,提高低对比度情况下对于机场道面细带状结构病害的定位能力,并且将深层病害特征通过3种不同扩张率的扩张卷积和PPM模块,充分聚合不同区域的上下文信息,使得提取的特征包含更多全局上下文信息,利用丰富的上下文信息进一步减少细带状结构病害识别错误;最后,对不同操作下产生的病害特征进行融合,从而获得最终的病害检测结果。
图1 DetMSPNet详细结构Fig.1 Detailed structure of DetMSPNet
1.1 注意力机制模块
CBAM是一种结合了通道和空间的注意力机制模块,在DetMSPNet的每个残差块后面加入该模块,结构如图2所示。给定一个病害特征图F∈RC×H×W,C为通道数,H为特征图的高度,W为特征图的宽度。CBAM以此推断出一个1维的通道注意力权重Mc∈RC×1×1,之后通道注意力权重Mc与特征图F计算得到通道注意力特征图F′。
图2 嵌入CBAM的DetBlockFig.2 DetBlock embedded in CBAM
式中:⊗表示逐元素相乘。
F′将作为接下来空间注意力模块的输入特征。基于通道注意力特征图F′,CBAM 推断出一个2维的空间注意力权重Ms∈R1×H×W。然后利用F′与空间注意力权重Ms相乘得到空间注意力特征图F″。
最终输出的特征图F″与原始特征进行融合以进行自适应特征细化。在每个残差模块阶段,不是简单地提取病害特征,而是每次提取特征后,再提取病害特征的通道域和空间域注意力权重,根据注意力权重对输入特征进行细化调整,通过加入CBAM模块,特征学习更加专注于机场道面细带状结构病害,抑制其他干扰信息,使得模型对于病害检测效果更佳。
1.2 残差空洞金字塔模块
机场道面裂缝、接缝破碎、角隅断裂、修补等细带状结构病害由于宽度狭小,在图像中像素占比少,加大了检测难度,为此,本文构建了一个DetASPP模块在大感受野和多尺度空间下提取病害特征。DetASPP模块及残差空洞金字塔(Resdual ASPP)块结构如图1所示。DetASPP模块设置如下:该模块由Resdual ASPP块与残差块交替连接组成,病害特征先被送到Resdual ASPP块生成多尺度特征,再将得到的特征输入残差块进行特征融合,该结构重复3次产生最终特征。每个Resdual ASPP块由3组扩张卷积组(ASPP Group)组成,在每个ASPP Group中,先利用3个扩张率分别为1、4、8的3×3卷积层进行特征提取,再用1个1×1卷积对3个扩张卷积层提取的特征进行融合。通过DetASPP模块进行多尺度特征提取,获得更有辨别力的病害特征,有助于更好地识别机场道面细带状结构病害。
1.3 最大池化支路
通过加入CBAM 模块和构建DetASPP模块,可以一定程度上加强细带状结构病害的特征提取能力,但随着网络层次的加深,经过多次卷积池化后,深层网络提取的高度抽象的语义特征会在一定程度上丢失病害的细节信息,加之机场道面油污、水渍、标线等的存在造成病害和背景之间的对比度较低,使得病害边界变得模糊,影响病害检测的定位能力。为此,本文在DetMSPNet网络的第3个残差块上添加了一个最大池化支路,如图1所示。此支路提取到的特征信息能够极大地保留病害的细节信息,使得之后可以对保留细节信息的浅层特征和具有高度抽象的深层特征相融合,增加信息的多样性,提高DetMSPNet对于机场道面细带状结构病害的定位能力。
1.4 不同扩张率的扩张卷积和金字塔池化模块
机场道面裂缝、接缝破碎、角隅断裂、修补等细带状结构病害大小不一,一些又细又小的病害受到干扰,有可能出现漏检,而大病害可能超出感受野的范围造成病害检测的不连续,导致网络对这些病害特征的提取效果较差。为此,在网络提取到最后一层病害特征之后加入了3个扩张率分别为6、12、18的扩张卷积和金字塔池化模块[19]。相比于普通卷积,扩张卷积能够在不改变特征图尺寸的同时有效增加网络的感受野,如图3所示。输入图像中有效感受野受限,经过3个扩张率d分别为6、12、18的扩张卷积,扩大了有效感受野并保持图像细节,实现在大感受野范围内提取到更多的病害信息。PPM 模块如图1所示,该模块中构建了深度为4的特征金字塔,不同深度的病害特征是基于输入的病害特征通过不同尺度的池化操作得到的,本文池化后的特征尺寸分别是1×1、2×2、3×3和6×6;通过一个1×1卷积层将病害特征维度缩减为原来的1/4;将这些金字塔特征直接上采样到与输入的病害特征相同尺寸,并与输入特征进行融合,通过聚合不同区域的上下文信息,从而得到融合后带有更多全局上下文信息的病害特征。
图3 三个不同扩张率的扩张卷积Fig.3 Dilated convolutions with three dilated rates
2 实验与分析
本文利用Python和OpenCV,使用深度学习框架Pytorch实现和训练所设计神经网络模型。实验硬件环境是主频为3.2 GHz的i7-8700 CPU,64 GB的运行内存,11 GB显存的GeForceGTX1080ti显卡。操作系统为Ubuntu18.04。
2.1 数据集
本文建立了一个机场道面病害图像数据集用于算法验证,数据集中的图像均来自真实机场道面环境,数据采集平台为成都圭目机器人有限公司的机场道面安全检测机器人,如图4所示。该检测机器人集成人造光源、高清面阵相机、差分GPS等设备,为本文实验提供全国数十家机场的道面数据,其中采集图像大小为1 800×900像素和1 600×900像素,实验中采用900×600像素的滑动窗口在不改变原始病害特征的情况下对原图进行切分,将图像分辨率统一调整为900×600像素,通过挑选共选择了2 733张包含细带状结构病害的道面图像作为数据集,数据集命名为APD,其中细带状结构病害主要包含4类:裂缝、接缝破碎、角隅断裂和修补。通过数据增强方法(水平翻转、垂直翻转、缩放变换、对比度变换)对该数据集进行扩充,最终样本数量为9 563张机场道面病害图像,APD具体详情如表1所示。
图4 机场道面安全检测机器人Fig.4 Airport pavement safety detection robot
表1 APD数据集详情Table 1 Details of APD dataset
2.2 网络训练参数选择
参照DetNet[12]提供的超参数设置及实验中多次参数尝试,本文使用随机梯度下降(stochastic gradient descent,SGD)对网络参数进行学习,权重衰减系数设置为0.000 1,使用动量系数来加速梯度下降,设为0.9,IoU阈值设置为0.5,学习率为0.001,每迭代5个epochs对学习率除以10进行更新,由于受到实验平台硬件约束,将batch-size设置为2,一共训练12 epochs。
2.3 评价指标
为了量化检测结果,采用平均精确度AP、平均精确度均值mAP对病害检测性能进行评估。其中,AP衡量模型在检测每个类别上的表现程度,mAP衡量模型在检测所有类别上的表现程度,通过将每个类别对应的AP值算术平均后得到。这2个值的计算依赖于精确率P和召回率R两个参数。精确率和和召回率的定义如下:
式中:TP为病害正确识别为病害的个数;FP为非病害错误识别为病害的个数;FN为病害错误识别为非病害的个数。
在精确率和召回率的基础上,AP和mAP的定义如下:
式中:APi为第i类病害的平均精确度;N为病害类型总数。
2.4 对比算法
采用Faster R-CNN[9]、STDN[10]、Cascade RCNN[11]作为本文的对比算法。其中,STDN通过设计尺度变换模块(scale-transfer module)在不增加额外参数和计算量的同时解决了不同目标检测时的尺度问题。Faster R-CNN则是目前使用最广泛的基于候选区域的目标检测算法。Cascade RCNN在Faster R-CNN的基础上,通过使用不同的IoU阈值,训练了多个级联的检测器,可获得更精细化的检测结果。
2.5 实验结果
根据以上实验设置,完成了在APD数据集上的对比实验,并将测试结果展示在表2中。表中:最佳结果以加粗突出显示。从表2中可以看出,本文算法对于裂缝、接缝破碎、角隅断裂、修补等4类病害的AP和mAP值均优于其他3种对比算法。相比于其他3种病害,裂缝的AP值较低,这是因为虽然接缝破碎、角隅断裂等病害宽度狭小、大小不一,但位置较为固定,如接缝破碎是在接缝处出现,角隅断裂则产生在角隅处并与接缝斜交,而裂缝分布没有规律且形态多变,因此检测难度更大。此外,本文比较了各算法检测单张图像的平均速度,可以发现,本文算法的检测速度与Cascade R-CNN相当,慢于Faster R-CNN和STDN。考虑到机场道面结构病害检测应用对于检测速度要求不高,本文算法能够满足应用需求。图5展示了各算法在APD数据集上的部分可视化检测结果。可以看出,在复杂环境造成的低对比度情况下,STDN出现了漏检,而本文算法、Faster RCNN和Cascade R-CNN算法都检测到了细带状结构病害,但Faster R-CNN算法病害检测不完整,出现了部分漏检;相较于Cascade R-CNN算法,本文算法的检测结果更贴合于病害的真实形态,精度更高,这表明在低对比度情况下,本文算法具有更好的检测效果。图5第7行展示了对于小尺寸的细带状结构病害,相较于STDN和Cascade R-CNN算法,本文算法定位更精准,检测效果更佳。实验结果表明,本文算法的平均检测精度更高。
图5 不同算法在APD数据集上的可视化结果展示Fig.5 Visualization results of various algorithms on APD dataset
表2 机场道面APD数据集检测结果Table 2 Detection results on airport pavement APD dataset
2.6 消融实验
为了证明DetMSPNet中不同组成部分的有效性,开展了如下消融实验。
2.6.1 注意力机制模块的有效性
为了验证CBAM 对于机场道面细带状结构病害检测的有效性,从DetMSPNet中去除CBAM模块,其他条件不变,实验结果如表3所示。可以看出,去掉CBAM 后,角隅断裂、修补的AP及mAP值均有一定程度的下降。这是因为:CBAM在几乎不增加网络开销的情况下,可以使得特征学习更加关注于机场道面病害信息,抑制干扰信息,学习到的病害特征更具代表性。
表3 CBAM 模块的有效性Table 3 Effectiveness of CBAM module
2.6.2 残差空洞金字塔模块的有效性
保持其他条件不变,比较DetMSPNet中有无DetASPP模块病害检测的性能,实验结果如表4所示。可以看出,去除DetASPP模块后,mAP值从78.51%下降至78.23%,该结果表明对于机场道面细带状结构病害,DetASPP模块能够从多尺度空间下提取更多的病害特征信息。
表4 DetASPP模块的有效性Table 4 Effectiveness of DetASPP module
2.6.3 最大池化支路的有效性
本组实验用于对比模型中有无最大池化支路对病害最终检测结果的影响。如表5所示,去掉最大池化支路,裂缝、角隅断裂和修补的AP值分别下降了0.26%、1.73%、1.23%,mAP值从78.51%下降至77.77%,这表明最大池化支路提取的浅层特征能够提供更丰富的病害细节信息,之后浅、深层特征融合有利于病害更精确的定位,进一步提高了检测性能。
表5 最大池化支路的有效性Table 5 Effectiveness of maximum pooling branch
2.6.4 三种不同扩张率的扩张卷积的有效性
本文使用扩张率分别为6、12、18的3个扩张卷积来增大感受野,使得深层特征包含更多病害信息。为验证其有效性,保持其他条件不变,比较模型中有无该模块病害检测的性能。如表6所示,裂缝、角隅断裂、修补AP值分别下降了0.69%、0.63%、0.48%,mAP值从78.51%下降至78.25%。这表明不同扩张率的扩张卷积有助于DetMSPNet在更大的感受野范围内提取到更多的病害信息。
表6 三种不同扩张率的扩张卷积的有效性Table 6 Effectiveness of dilated convolution with three dilated rates
2.6.5 金字塔池化模块的有效性
通过对比加入和去除PPM 模块的效果,来验证其有效性,实验结果如表7所示。与DetMSPNet相比,去掉该模块后,裂缝、角隅断裂、修补AP值分别下降了1.38%、1.73%、1.1%,mAP值从78.51%下降至77.75%。这是因为:PPM模块通过聚合不同区域的上下文信息,减少了不同子区域间上下文信息的丢失,从而提高了对全局信息的获取能力,使得DetMSPNet的分类能力得以提高。
表7 金字塔池化模块的有效性Table 7 Effectiveness of pyramid pooling module
3 结论
1)针对机场道面裂缝、角隅断裂、接缝破碎、修补等细带状结构病害宽度狭小、长短不一、图像中像素占比少,且与复杂背景对比度低的问题,本文提出了一种基于注意力机制和特征融合的机场道面细带状结构病害检测算法。
2)利用注意力机制更加关注病害信息,抑制干扰信息并在多尺度、多层次下提取特征,使得融合后的病害特征更具代表性。
3)在采集的机场道面病害图像数据集APD上进行了实验,结果表明,与目前经典的目标检测算法相比,本文算法具有更高的平均检测精度,能够适用于机场道面细带状结构病害检测任务。