隧道表面图像多目标智能识别算法研究
2022-10-14许力之王耀东朱力强史红梅余祖俊
许力之,王耀东,朱力强,史红梅 ,余祖俊
(1.北京交通大学 机械与电子控制工程学院,北京 100044;2.北京交通大学 载运工具先进制造与测控技术教育部重点实验室,北京 100044;3.北京交通大学 智慧高铁系统前沿科学中心,北京 100044)
裂缝和渗漏水是隧道衬砌常见的病害形式之一。当前隧道巡检,主要采用人工检测或者半自动检测方法,用于隧道病害的检测和养护,工作量繁重、效率低,难以适应日益增长的检测需求。随着机器视觉和图像处理技术的发展,围绕隧道病害智能检测的研究逐渐开展。然而,隧道表面图像呈现多样性和复杂性,影响图像识别精度,也是科研人员遇到的一个难题。
国内外在隧道图像采集和处理方面有一系列的研究,但主要针对背景简单的裂缝图像[1-2]。复杂恶劣环境下,隧道表面图像纹理特征呈现背景复杂、无规则的特点,包含大量的噪声干扰。传统算法主要从像素级处理,对简单裂缝图像的识别效果较好,但对直接用于复杂隧道图像的检测,识别率不高。
随着机器学习和深度学习的研究和发展,轨道交通图像智能识别提升了一个台阶[3]。当前研究局限于构建单一目标数据集,缺少一种合理的隧道表面纹理分类方法,以适用于大部分复杂隧道图像。本文通过采集整理隧道表面图像数据,特别分析了隧道表面纹理的特点,第一次对隧道表面多种病害和固有纹理提出了分类方案,并构建了目标分类数据集,提出了基于深度卷积网络的多目标分类识别方法,针对隧道多种纹理特征改进了多层深度网络结构,通过大量的数据样本训练,实现了地铁隧道表面图像多种目标的智能识别。
1 相关工作与多目标识别原理
1.1 隧道表面病害图像识别的相关研究
国内外针对隧道裂缝病害的检测,已转向基于机器视觉和图像处理的检测和识别。朱力强等人设计了基于模板的分析法,基于Hough变换的线型结构分析法和基于SVM近似裂缝结构分析法对图中裂缝成分进行提取[4]。王耀东等[5]提出了分块图像局部纹理处理算法,设计了裂缝和虚假裂缝的差异性计算模型,可以滤除虚假裂缝的干扰。Amhaz等[6]提出了一种选择一组最小路径的方法,并引入两个后处理步骤来提高裂缝检测的质量。Choudhary等[7]将图像处理和边缘检测提取的特征,输入到裂缝检测模型中提升裂缝检测的质量。Lin等[8]用方向梯度直方图检测裂缝。Huang等[9]提出了一种基于局部图像网格特征的隧道缺陷检测算法。Yin等[10]提出了一种新的高斯快速中值滤波算法对隧道裂缝图像进行滤波。Chen等[11]开发了一种基于图像处理和地面激光扫描技术相结合的裸露衬砌自动检测方法。Kong等[12]对基于小波变换模极大值法的隧道监测结果进行了分析。Yu等[13]提出了一种基于图像局部结构和灰度信息的帧差检测方法来检测隧道运动目标。
深度学习在图像识别上体现了优势,可用于海量数据样本图像的自动识别[14]。Makantasis等利用卷积神经网络(CNN)构建高级特征,并选择多层感知器作为检测器[15]。Song等[16]建立了带有分段标注的隧道裂缝数据集,提出了一种客观快速的隧道裂缝识别算法。Huang等[17]提出了一种基于FCN提取特征的地铁盾构隧道裂缝和渗漏缺陷图像识别算法。Xue等[18]针对盾构隧道衬砌缺陷提出了一种基于区域的FCN方法。Cha等[19]提出了一种基于CNN的快速区域结构,用于检测多种损伤类型。Dong等[20]提出将SegNet与焦点损失函数相结合,降低分配给隧道衬砌损伤的良好分类样本的损失,来解决尺寸不平衡问题。Li等[21]提出了一种基于FCN结构的像素级多损伤检测方法。Doulamis-Anastasios等[22]将CNN和模糊谱聚类相结合,用于隧道中的实时裂缝检测。
综上所述,传统算法需要人类专家对于隧道图像特征进行精心设计,而且往往只能针对图像中的一种目标进行提取,比如裂缝或者渗漏水,虽然检测精度较高,但是算法设计时间长,计算耗时长,特征难选择。对于采用深度学习的方法来检测隧道图像,基于传统CNN相比于基于全卷积网络(FCN)的网络检测性能要较差,难以胜任像素级分割的任务。以上方法都没有提出一种合理的隧道检测方案,不能涵盖隧道表面的大部分情况。基于以上问题,提出一种全面且有效的隧道表面图像分类方案,建立语义分割标签的数据集,包含裂缝、渗漏水、附属设备、电缆管道等,提出一种基于UperNet结构的深度神经网络结构模型,通过对已建立的数据集进行训练,实现隧道海量图像的多目标智能识别[23]。
1.2 图像采集与多目标识别原理
隧道图像采集与多目标识别原理见图1。通过研制的隧道移动式图像采集系统,获取隧道表面图像;结合隧道现场手动拍摄的图像和原有的隧道图像,建立隧道表面图像数据集。
图1 地铁隧道多目标图像采集与识别算法流程
研究隧道多目标特征提取的深度学习算法,改造深度卷积网络,对隧道图像进行智能识别。由于不同目标的特征相差较大,故不对任何一种目标进行特征预提取,仅对隧道图像进行标注,并建立隧道多目标识别数据集。针对数据集改进深度卷积网络,进行图像智能识别算法和网络结构对比试验,验证算法和网络结构的有效性。
2 隧道表面图像处理与深度学习算法
2.1 图像纹理特性分析
隧道表面图像深度学习算法中,数据集的设计为一个重要的环节,需要对从隧道表面提取目标以及如何建立相关目标的数据集进行分析。
隧道正线采集图像过程中发现,隧道表面主要包含裂缝、渗漏水、衬砌脱落、盾构块螺栓孔、表面线缆和管道、配电箱、拼接缝、人工标记、检测设备、照明设备和逃生通道等情况。技术人员希望在检测裂缝、渗漏水等隧道病害过程中,能同时检测隧道表面固有纹理,如线缆管道、设备设施等,并进行辅助分析。根据以上分析,为使算法识别结果尽可能包含隧道表面情况以及实现实际检测需要,将隧道中包含的病害、固有纹理采取了以下分类检测方案:裂缝、渗漏水、盾构块螺栓孔、表面线缆和管道、配电箱、拼接缝,以及包含背景在内检测目标共7类。
不同检测目标纹理特征相差大。其中,裂缝、线缆管道和拼接缝属于细长型目标,经常能横跨整幅图像,但是三者又有区别。裂缝走向复杂,边缘不规则,经常被其他目标和背景噪声干扰,占图像面积小,检测最为困难;线缆管道基本是直线或者弯曲,边界明显,占图像大部分像素,检测相对容易;拼接缝形状、宽度相对固定,但不同隧道结构拼接缝有一定差别,边界检测难收敛。渗漏水形状不固定,区域边界难确定,给网络判别造成困难。其余固有纹理:盾构块螺栓孔和配电箱形状大小都固定,与其他目标差异较为明显,在样本充足的情况下,较容易检测。
根据隧道图像检测目标的纹理分析和实际检测需要,确定隧道图像标注方法为像素级的语义标注,并建立语义分割数据集。
2.2 图像数据集建立
通过对获得的隧道图像进行处理并标注,采集得到的原始分辨率为4 288×2 848,数量为552张。为提高标注精度,突出单个目标特征,减少网络计算压力,对图像进行了16等分,即网络输入分辨率为1 072×712,数据集样本总数为8 832张,标注示例见图2。
从图像空间转换到标签空间,标签空间通过三通道8位位图表示,RGB分别为红、绿、蓝三原色。以裂缝渗漏水和背景为例,裂缝区域映射为红色通道像素值为128, 绿色通道像素值为0, 蓝色通道像素值为0;渗漏水区域映射为红色通道像素值为0, 绿色通道像素值为128, 蓝色通道像素值为0;背景映射为红色通道像素值为0, 绿色通道像素值为0, 蓝色通道像素值为0;其余映射和数据集细节见表1。
图2 隧道多目标数据集示例
表1 数据集信息
2.3 卷积网络结构
隧道表面情况复杂,不同检测目标的大小、尺寸和纹理差异较大,对于区域跨度大的线缆管道、渗漏水和拼接缝,高层网络需要有足够的感受野获得目标的全部特征。然而,裂缝相对于其他目标,纹理信息少,特征稀疏,随机性和无规则性明显,需要网络在小尺度区域中实现高精度识别,同时兼顾全局信息,避免裂缝区域的割裂,所以在选择深度卷积网络结构时,需要有足够深的网络层提取高级语义特征,同时具备多尺度空间信息提取能力。设计改进的UperNet网络,针对隧道多目标特征,建立语义数据集,通过选取和设计特征提取器,多尺度空间信息提取器和特征融合模块,对隧道病害数据集进行训练和测试,网络结构见图3。
图3 改进的UperNet深度卷积网络结构图
图4 ResNet和ResNeSt基本结构
(2)空间金字塔池化模块[25]:为能在高级特征上高效的获取更多信息,将特征提取器获得的最高级特征池化成4个不同尺度,经过卷积、上采样后再将4个特征图拼接,模块结构见图5。
图5 空间金字塔池化模块
(3)特征融合模块:将特征提取器获得的不同尺度、层级的特征图进行融合,能有效利用多尺度的信息。隧道图像中包含大尺度的渗漏水、管道等,小尺度的裂缝、拼接缝等,通过多尺度特征融合能有效提升深度卷积网络的识别能力。其中不同层级的特征融合的权重不同于直接的线性相加,而是采取可学习参数方案,通过反向传播进行更新,这样网络能更好的选择不同层级特征之间的权重。
(1)
y=f[Concat(yconf)]
(2)
式中:{wii,wii+1}为第i层特征图Li与下一层特征图Li+1进行融合时的权值,权值是网络自学习的;f为卷积、BatchNorm和ReLU激活函数的集和;Concat为将多个特征图沿通道方向进行拼接。
3 试验与数据分析
3.1 隧道多目标识别试验
隧道多目标识别试验,数据集中1 072×712的训练图像,在网络输入时将尺寸修改为320×320以提高训练时的批数量;引入数据增强方法随机翻转和随机旋转。试验设置及超参数设置为:优化器采用SGD,总迭代轮数为500,采用Poly方法根据迭代次数对学习率进行更新,公式为
(3)
式中:base_lr为初始学习率0.01;iter为当前迭代的次数,max_iter为总迭代次数。学习率曲线的形状主要由参数power来控制,为了在学习初期保证大的学习率,后期进入收敛区域时有小的学习率,设置power为0.9。
引入L2正则值为1×10-5,损失函数FL计算式为[26]
FL(pt)=-(1-pt)γlog2(pt)
(4)
式中:pt为样本分类正确的概率,-log2(pt)为计算预测结果的交叉熵损失cross entropy loss,(1-pt)γ为调制系数,其中,γ为关注参数,γ≥0,当γ=0时focal loss即为交叉熵。当一个样本被错分时,此时pt很小,(1-pt)接近于1,-log2(pt)不被影响,而当一个样本pt接近1,属于易分样本时,(1-pt)接近于0,即-log2(pt)的权值降低,对总的loss贡献减小。通过设置关注参数γ,使得学习过程中能更好的关注难分样本,对于易分的样本关注较少,试验设置γ为2.5。
最后,在上述模型训练收敛后,再通过引入Lovasz-Softmaxloss[27]对模型进行微调,这是针对分割任务的评价指标IoU,又称Jaccard index用于模型优化,计算式为
(5)
实际隧道检测中,除了检测质量IoU的高低,技术人员还关心隧道病害的检测率,检测率公式为
(6)
式中:i为测试图像的序号,测试图像总共n张,i从0到n;ai为测试图像i中需要检测目标的个数;bi为测试图像i中实际检测出的目标个数。目标个数基于连通域计算,同属于一个连通域为一个目标。
隧道图像多目标分割试验的计算平台为RTX 2060SUPER的GPU卡、Windows系统与pytorch框架。训练好的模型在测试集上的试验结果见图6~图8,其中,图6和图7为典型病害裂缝和渗漏水,图8为隧道固有纹理(管道、拼接缝、配电箱、螺栓孔)的识别情况。
图6 测试集隧道图像裂缝识别结果
图7 测试集隧道图像渗漏水识别结果
图8 测试集隧道图像固有纹理识别结果
由图6可知,本文提出的深度卷积网络较好地完成了隧道裂缝检测这一重点任务,能够较为完整分割图中的裂缝目标,并且分割质量较好。由于在数据集的标注过程中,标注人员专业性不足,导致裂缝标签相比于真实情况还有一定差距,但是观察图6(c)裂缝分割结果,相比于标签更加合理,更加贴合真实裂缝,对噪声也有一定的抗干扰能力,说明提出的网络鲁棒性好,具有一定的自适应能力。
在渗漏水病害图像的试验中,本研究提出的算法识别结果也很好,见图7。渗漏水存在边界定义困难的问题,实际边界模糊,这一需求应该紧密贴合一线工
作人员的需求。通过询问相关工作人员进行渗漏水标注,选取较为合理的边界,并将渗漏水中伴随的裂缝一并标注出来。观察识别结果图,渗漏水基本能完整分割出来,并且与拼接缝、管道相互干扰时同样也能清晰的分割出边界。裂缝与渗漏水混合情况时分割难度大,干扰多,分割结果存在一些噪声。
在隧道图像固有纹理试验中,将固有纹理加入检测目标进行检测,这样可以更好地辅助隧道病害(裂缝、渗漏水)识别。固有纹理中管道样本数量最多,分割最为容易,绝大多数情况能理想的分割出管道目标,拼接缝、螺栓孔也广泛存在于隧道结构中,并且纹理、形状大小固定,分割也较为容易,配电箱由于样本较少,导致分割结果存在缺陷。
训练集和测试集是从同一采样空间中随机分化得到的。虽然测试集没参与训练,但是与训练集存在样本特征上的交集,为了检验模型的泛化能力,通过采集隧道表面图像,并利用提出的算法进行分割试验。其中,隧道原图未经任何增强处理,反应真实图像结果,并且试验图像尽量选取复杂背景和多目标混合情况,测试模型真实性能,结果见图9。尽管图像质量不高,纹理复杂,但是对隧道目标依旧有较好的识别能力。由于图像质量较差,导致较多噪声误识别为拼接缝和渗漏水,并且配电箱纹理特征与数据集中差异较大,导致识别率较低,后续需要进行改进。
图9 模型泛化性能检验结果
通过对测试集裂缝、渗漏水、固有纹理的分割结果分析可以得出,本文提出的深度卷积网络很好的完成了隧道检测的任务。面对管道、渗漏水、拼接缝和螺栓孔等样本个数较多或者纹理固定简单的目标,该网络的检测结果能接近标签。裂缝图像样本数量较少,分割困难,对于一些背景简单的裂缝图像,见图6,分割结果较好,部分结果比标签的收敛性更高,但是对于图7中的复杂隧道图像,多目标混合的情况,会对裂缝的分割造成较大干扰,导致分割出较多的噪声,而图8中的隧道固有纹理,分割准确率很高,分割质量好。经过泛化性检验(图9),验证了模型的泛化能力,确保模型可以在多种复杂隧道场景下完成多目标分割任务。
3.2 试验数据分析
通过试验,将本文提出的算法与UperNet和其他语义分割高性能网络进行对比,由于不同网络结构不同,所以不同网络试验设置不同,多次试验选取最佳结果。隧道图像多目标识别率见表2和表3,不同目标的IoU、mIoU见表4。检测识别率方面,对裂缝的识别率达到94.2%,渗漏水的识别率达到96.9%,管道为95.0%,配电箱为99.0%,拼接缝为95.7%,螺栓孔为99.0%;分割任务的评价指标方面裂缝识别IoU达到39.3%,渗漏水达到65.6%,管道为89.7%,配电箱为27.7%,拼接缝为57.7%,螺栓孔为79.8%,相比于UperNet和其他语义分割网络均有提升。
表2 隧道图像测试集病害识别结果
表3 隧道图像测试集固有纹理识别结果 %
表4 隧道图像测试集多目标识别IoU %
隧道检测中最关注的是目标的检测率,从表2、3可以得到,提出的算法对隧道病害以及固有纹理的平均检测率高于UperNet算法的1%,高于其他算法(PSPNet、DeeplabV3+、GCN)2%~4%,检测性能有明显提升,由于配电箱样本过少,检测结果不参与平均检测率的计算。典型病害裂缝和渗漏水的检测率分别为94.2%、96.9%,明显优于其他算法,且漏检率小,能够有效帮助隧道维护人员检测隧道病害,而固有纹理中普遍检测率较高,能有效辅助作业人员进行隧道检测。
从表4中可得,针对隧道病害改进的算法达到了性能最佳,从检测率来看,相比于其他网络检测率也更高,对于隧道典型病害裂缝和渗漏水病害漏检更少;从分割任务的评价指标来看,mIoU达到了65.3%,相比于UperNet增加了4%,相比于其他网络有明显提升。除了配电箱的IoU相比于UperNet略微下降了0.3%,其他目标的IoU均超过了其他网络,尤其裂缝和拼接缝的IoU分别增加了10.3%和9.3%,提升效果明显,说明针对隧道病害识别的改进作用明显。
隧道图像多目标样本比例与识别结果见图10。
图10 隧道图像多目标样本比例与识别结果
从图10可得,网络识别IoU与目标样本个数相关,管道识别IoU非常高,一方面是因为管道所占的样本比例最高,另一方面是因为管道纹理简单,与背景对比度大。由于渗漏水边界定义困难,尽管样本较多,但是识别IoU比管道低,而样本少、特征复杂,易受背景噪声干扰的裂缝样本识别率最低,受限于标注精度。其中,螺栓孔虽然样本比例非常小,但是识别IoU仅比管道低,原因在于螺栓孔的大小、纹理等特征简单,识别容易。
试验表明,隧道表面图像多目标识别中,通过引入分离注意力机制获取多层特征,并以自学习的方式融合多层特征,可以有效的提升网络对隧道目标的识别能力,尤其是裂缝的识别能力。从识别结果与样本比例间的关系可得,提升隧道目标总体的识别能力,需要考虑数据集不同样本间的比例问题,当样本不平衡情况严重时,会损害低样本数量的识别IoU。
3.3 裂缝识别结果分析
裂缝作为隧道结构的典型病害,一直是国内外的研究重点,而且隧道环境恶劣复杂,导致裂缝识别困难,所以需要对深度学习模型的裂缝分割性能进行针对性分析。裂缝的特征包含长度、宽度和走向等,而宽度最能反应裂缝检测质量,宽度算法流程[28]见图11,通过对裂缝图像的检测结果采取细化算法获取裂缝骨架,然后在骨架点获取局部邻域,最后在邻域内计算骨架点法线方向的像素个数为该骨架点的宽度,最后统计所有骨架点计算的宽度求出裂缝的最大宽度和最小宽度。
图11 裂缝宽度计算流程
根据表4可以看出,UperNet和改进的网络整体性能和裂缝检测性能优于其他网络。通过对比这两个网络裂缝图像分割结果,同样为了验证网络的裂缝识别泛化性能,裂缝图像为单独拍摄,不包含在数据集中。UperNet和改进网络裂缝图像分割结果见图12,为了更好对比检测结果与真实裂缝,将检测结果覆盖在裂缝图像上。
图12 裂缝图像检测与宽度计算
从图12和表4可以得到,改进算法对裂缝的检测性能要优于UperNet算法,不仅裂缝的IoU增加了10.3%,检测的宽度也要更小,最大宽度普遍要少10个像素左右,而实际裂缝宽度可能只占2~4个像素,所以检测宽度减少是有意义的。通过对裂缝图像的检测结果进行局部放大,进一步分析裂缝检测结果与真实裂缝之间的差距,局部放大图见图13。可以明显观察到改进网络裂缝检测结果更贴近于真实裂缝,边界收敛性更高,整体裂缝检测完整性较好,验证了算法的有效性。
图13 裂缝图像检测结果局部放大图
3.4 算法分析与适用性条件
综合分析,本文提出的基于深度卷积网络的隧道图像多目标识别算法,对于隧道中的大目标或标签数量丰富的目标识别IoU较高,如管道、渗漏水,但是对于特征复杂、语义标签获取困难的目标识别IoU还是较低,尤其是裂缝目标,虽然在简单背景下识别结果与真实裂缝贴近,但是容易受背景噪声的干扰,在测试集和泛化性能测试中背景复杂、多目标混合的隧道图像裂缝的分割性能表现一般。由于裂缝标注质量较低,部分识别的裂缝宽度大于实际宽度,但是裂缝检测率较高。后续将基于弱监督学习与全监督学习结合的方式,间接性扩展数据集和缓和样本不平衡的问题,并对复杂背景下裂缝目标的识别IoU和边界收敛性进行扩展性研究。
4 结论
本文针对隧道表面典型病害和特定目标自动检测的问题,提出了一套基于深度学习和语义分割的图像多目标智能识别理论模型,以及裂缝参数自动检测算法。通过采用ResNeSt结构中的分离注意力机制,与多层特征自学习融合方式相结合的方法,重点关注目标的同时充分利用多尺度多级语义信息,可明显提升隧道多目标特征的识别率。
本文在采集大量隧道图像的基础上,建立了一套隧道表面图像多目标数据集,并完成了7种隧道纹理的分类标注。通过算法对比试验,以及2种典型病害和5种固有纹理目标的识别试验,其中,对于隧道典型病害,裂缝的识别率达94.2%,渗漏水的识别率达96.9%,其他固有纹理检测识别率平均为96.6%,充分验证了算法的有效性。通过真实地铁隧道裂缝图像对模型的泛化性能和裂缝检测性能进行了分析,验证了识别算法的鲁棒性。未来,将继续针对恶劣环境,复杂纹理和大噪点干扰下的隧道病害图像智能识别理论,进行深入研究。