一种基于图像处理的裂缝检测方法和存储介质与流程

未命名 09-01 阅读:166 评论:0

transformer在裂缝检测这种小目标检测上表现效果一般。


技术实现要素:

6.为此,本发明所要解决的技术问题在于克服现有技术中mask rcnn在小目标检测上却表现一般以及swin transformer滑窗操作可能导致细小目标被分割成多个窗口,影响特征提取和定位精度,而且层级结构可能导致细小目标在高层特征图中丢失或模糊,影响分类和分割质量。此外,位置编码是默认设置,针对裂缝这类小目标检测并不敏感。这也使得swin transformer在裂缝检测这种小目标检测上表现效果一般的问题。
7.为解决上述技术问题,本发明提供了一种基于图像处理的裂缝检测方法,包括:s101:获取待检测的裂缝图像;s102:利用构建的经过改进的swin transformer网络作为骨干网络提取所述待检测的裂缝图像的特征,生成一系列的候选区,包括:s201:利用构建的多头自注意力机制模块对所述待检测的裂缝图像进行计算并输出特征图,包括:将所述待检测的裂缝图像按同样的窗口大小划分为n*n的多个小窗格得到第一次划分后的特征图,并利用构建的shift window attention机制模块对第一次划分后的特征图中的小窗格进行窗口滑动得到第二次划分后的特征图,将第一次划分后的特征图以及第二次划分后的特征图输入构建的多层窗口融合模块,所述多层窗口融合模块将第一次划分后的特征图以及第二次划分后的特征图进行归一化处理,并且将归一化处理后的第一次划分后的特征图每个小窗格以及第二次划分后的特征图中的每个小窗格进行特征映射并计算相似矩阵,所述第一次划分后的特征图中的小窗格与第二次划分后的特征图中的小窗格具有重合部分,根据得到的相似矩阵判断是否需要将所述具有重合部分的小窗格进行融合,若相似矩阵表明存在连接的裂缝信息,则将两个小窗格融合生成一个融合窗口输出,若相似矩阵表明不存在连接的裂缝信息,则不对两个小窗格进行融合,作为两个独立窗口分别输出,得到所述多层窗口融合模块输出的多个融合窗口和多个独立窗口;利用构建的变换矩阵对所述多层窗口融合模块输出的每个窗口进行计算得到每个窗口的自注意力机制中的查询值q,键值k,值v,并对所述每个窗口内首先通过一个卷积层对每个窗口内的像素进行线性变换提取像素数据,并根据得到每个窗口的查询值q,键值k,值v提取特征,具体为:
8.其中,是q,k矩阵的列数,即向量维度,b表示每个窗口的位置偏量,b的值由设定的相对位置偏置参数表给出;利用多头自注意力机制模块中构建的相对位置索引来调取相对位置编码表中的参数并将每个窗口的特征计算融合输出多头自注意力计算输出的特征图;s202:利用构建的特征金字塔网络对经过多头自注意力计算输出的特征图进行处理,提取所述多头自注意力计算输出的特征图中的不同尺度的特征并进行融合,输出融合后的特征图;s203:利用构建的region proposal network网络对融合后的特征图进行预测,得
到一系列的候选区域,每一个候选区域包含了一个得分和一个位置偏移量,根据得分对每一个候选区域进行排序和筛选,保留部分高得分候选区域;s103: 对得到的每个高得分候选区域进行分类和回归,并根据每个高得分候选区域的位置偏移量得到最终的检测框,并预测每个检测框内的像素级掩码,输出带有目标检测框和图像分割的检测结果。
9.进一步地,所述利用构建的shift window attention机制模块对第一次划分后的特征图中的小窗格进行窗口滑动得到第二次划分后的特征图中小窗格进行窗口滑动时,当所述第一次划分后的特征图中小窗格沿水平或者垂直方向进行窗口滑动时,所述窗口滑动的距离小于小窗格的边长,当所述第一次划分后的特征图中小窗格沿小窗格对角线进行窗口滑动时,所述窗口滑动的距离小于小窗格的对角线距离。
10.进一步地,所述利用构建的特征金字塔网络对经过多头自注意力计算输出的特征图进行处理包括:对输入的特征图进行卷积操作,得到多个不同层次的特征图;构建一个自顶向下的路径和横向连接来构建一个特征金字塔,每个金字塔层都包含一个上采样操作和一个1x1卷积操作,用于将上一层的特征图与当前层的特征图相加并进行特征融合;使用一个3x3卷积操作对每个金字塔层进行平滑处理,将每个金字塔层平滑处理后的特征图输出。
11.进一步地,所述多个不同层次的特征图中每个特征图的尺寸和通道数都不同。
12.进一步地,所述对每个候选区域进行分类和回归,并根据每个候选区域位置偏移量得到最终的检测框,并预测每个检测框内的像素级掩码,输出带有目标检测框和图像分割的检测结果包括:利用构建的roialign层将候选区域池化到相同大小;输出候选区域的一个固定大小的特征向量,表示每个候选区域的特征;对每个候选区域的特征向量进行分类和回归,输出一个类别标签和一个位置偏移量,表示每个 roi的最终检测框;对每个 roi的最终检测框内的特征向量进行掩码操作来预测每个检测框内的像素级掩码,输出一个二值矩阵表示每个检测框内的前景和背景像素,并与原图像结合输出一个带有目标检测框和图像分割的检测结果。
13.进一步地,所述roialign层利用双线性内插的方法对候选区域进行池化。
14.进一步地,所述对每个候选区域的特征向量进行分类和回归具体为:利用一个全连接层将每个候选区域的特征进行整合回归,利用一个softmax层将每个候选区域的特征进行分类。
15.进一步地,所述对每个候选区域的最终检测框内的特征向量进行掩码操作来预测每个检测框内的像素级掩码具体为,使用一个卷积层对检测框内的特征图进行特征提取,并使用一个sigmoid激活函数将提取到的特征二值化,输出一个二值矩阵。
16.进一步地,所述使用一个卷积层对检测框内的特征图进行特征提取中的卷积层包括构建的横向边缘卷积核和纵向边缘卷积核。
17.本发明还提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机
程序被处理器执行时实现上述所述的一种基于图像处理的裂缝检测方法的步骤。
18.本发明的上述技术方案相比现有技术具有以下优点:本发明所述的一种基于图像处理的裂缝检测方法和存储介质创新性地将swin mask rcnn模型应用到裂缝检测领域中,并对swin mask rcnn模型参数以及模型结构进行了优化。为了更好地提取出裂缝,我们在swin transformer网络滑窗操作之后构建了多层窗口融合模块,使具有裂缝特征的小窗格相互进行融合,保留了完整的裂缝信息。在模型特征提取环节,我们构建了横向边缘卷积核和纵向边缘卷积核,能够更好的提取细长形状的裂缝信息;在提升位置检测精度的同时降低计算量。
附图说明
19.为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中图1是本发明实施例一一种基于图像处理的裂缝检测方法的流程图;图2是本发明构建的一种基于图像处理的裂缝检测方法的算法工作流程图;图3为swin transformer网络中滑窗操作的示意图;图4为多层窗口融合模块的工作示意图;图5为多层窗口融合模块的工作原理图;图6是自注意力机制self-attention的结构图;图7为本发明构建的相对位置编码表的示意图;图8为两头自注意力机制的工作示意图;图9是特征金字塔的网络示意图;图10是特征金字塔的网络结构图;图11是swin transformer网络的结构图;图12为第一种裂缝原图以及分别经过maskrcnn网络、本发明所提供的一种基于图像处理的裂缝检测方法处理后的裂缝检测结果的对比图;图13为第二种裂缝原图以及分别经过maskrcnn网络、本发明所提供的一种基于图像处理的裂缝检测方法处理后的裂缝检测结果的对比图;图14为第三种裂缝原图以及分别经过maskrcnn网络、本发明所提供的一种基于图像处理的裂缝检测方法处理后的裂缝检测结果的对比图;图15为第四种裂缝原图以及分别经过maskrcnn网络、本发明所提供的一种基于图像处理的裂缝检测方法处理后的裂缝检测结果的对比图。
具体实施方式
20.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
实施例一
21.参照图1所示,本发明的实施例一的步骤包括:s101:获取待检测的裂缝图像;
s102:利用构建的经过改进的swin transformer网络作为骨干网络提取所述待检测的裂缝图像的特征,生成一系列的候选区,包括:s201:利用构建的多头自注意力机制模块对所述待检测的裂缝图像进行计算并输出特征图,包括:将所述待检测的裂缝图像按同样的窗口大小划分为n*n的多个小窗格得到第一次划分后的特征图,并利用构建的shift window attention机制模块对第一次划分后的特征图中的小窗格进行窗口滑动得到第二次划分后的特征图,将第一次划分后的特征图以及第二次划分后的特征图输入构建的多层窗口融合模块,所述多层窗口融合模块将第一次划分后的特征图以及第二次划分后的特征图进行归一化处理,并且将归一化处理后的第一次划分后的特征图每个小窗格以及第二次划分后的特征图中的每个小窗格进行特征映射并计算相似矩阵,所述第一次划分后的特征图中的小窗格与第二次划分后的特征图中的小窗格具有重合部分,根据得到的相似矩阵判断是否需要将所述具有重合部分的小窗格进行融合,若相似矩阵表明存在连接的裂缝信息,则将两个小窗格融合生成一个融合窗口输出,若相似矩阵表明不存在连接的裂缝信息,则不对两个小窗格进行融合,作为两个独立窗口分别输出,得到所述多层窗口融合模块输出的多个融合窗口和多个独立窗口;利用构建的变换矩阵对所述多层窗口融合模块输出的每个窗口进行计算得到每个窗口的自注意力机制中的查询值q,键值k,值v,并对所述每个窗口内首先通过一个卷积层对每个窗口内的像素进行线性变换提取像素数据,并根据得到每个窗口的查询值q,键值k,值v提取特征,具体为:,其中,是q,k矩阵的列数,即向量维度,b表示每个窗口的位置偏量,b的值由设定的相对位置偏置参数表给出;利用多头自注意力机制模块中构建的相对位置索引来调取相对位置编码表中的参数并将每个窗口的特征计算融合输出多头自注意力计算输出的特征图;s202:利用构建的特征金字塔网络对经过多头自注意力计算输出的特征图进行处理,提取所述多头自注意力计算输出的特征图中的不同尺度的特征并进行融合,输出融合后的特征图;s203:利用构建的region proposal network网络对融合后的特征图进行预测,得到一系列的候选区域,每一个候选区域包含了一个得分和一个位置偏移量,根据得分对每一个候选区域进行排序和筛选,保留部分高得分候选区域;s103: 对得到的每个高得分候选区域进行分类和回归,并根据每个高得分候选区域的位置偏移量得到最终的检测框,并预测每个检测框内的像素级掩码,输出带有目标检测框和图像分割的检测结果。
22.本发明提出的一种基于图像处理的裂缝检测方法在裂缝检测中采用swin mask rcnn算法,使用了swin transformer作为其骨干网络。相比于以往的目标检测模型,swin transformer具有更好的特征提取能力和更高的表达能力,使得特征更加丰富,有助于提高裂缝检测的准确度。为了更好地提取出裂缝,我们在swin transformer网络滑窗操作之后构建了多层窗口融合模块,使具有裂缝特征的小窗格相互进行融合,进一步使小窗格之间
的信息进行传递,保留了完整的裂缝信息。
实施例二
23.本发明实施例二的算法工作流程图如图2所示,针对采集的道路裂缝、隧道裂缝和桥梁裂缝数据,基于swin mask rcnn深度学习网络结构进行训练。输入图片为缩放后进行人工标注后的裂缝,预测主要分为两阶段,包括:第一阶段:使用 swin transformer 作为骨干网络,提取图像的特征,并生成一系列的候选区。首先,将输入图像分成多个小块,称为 patches,并将每个 patch 转换为一个特征向量;第二步,对每个 patch 进行自注意力计算,这一步中使用了滑动窗口和分层结构,并且,在注意力计算过程中,本实施例改进了位置编码矩阵,来提高模型对裂缝的检测效率和准确性;之后,输出多个尺度的特征图,每个特征图包含了不同大小和分辨率的 patches。
24.候选区域生成:在最后一个尺度的特征图上,使用了一个 region proposal network (rpn),来预测一系列的候选区域,称为 regions of interest (roi);每个 roi 包含了一个得分和一个位置偏移量,表示该区域的置信度和位置。根据得分对 roi进行排序和筛选,保留一定数量的高得分 roi,作为第二阶段的输入。
25.第二阶段:对每个候选区域进行分类和回归,得到最终的检测框,并预测每个检测框内的像素级掩码。首先,进行候选区域对齐,对每个 roi 在不同尺度的特征图上进行对齐操作,使用了一个 roi align 层,来保持特征图的分辨率和位置精度;然后输出一个固定大小的特征向量,表示每个 roi 的特征。下一步进行检测框预测。对每个 roi 的特征向量进行分类和回归操作,使用了一个全连接层和一个 softmax 层,来预测每个 roi 的类别和位置偏移量。然后输出一个类别标签和一个位置偏移量,表示每个 roi 的最终检测框。最后进行掩码预测。对每个 roi 的特征向量进行掩码操作,使用了针对裂缝改进后的卷积层和一个 sigmoid 层,来预测每个检测框内的像素级掩码,之后输出一个二值矩阵,表示每个检测框内的前景和背景像素,最后输出。
26.本发明实施例二所提供的基于图像处理的裂缝检测方法的具体步骤包括:s31:获取待检测的裂缝图像以及经过标注的裂缝图像;s32:使用 swin transformer 作为骨干网络,提取图像的特征,并生成一系列的候选区,包括:s321:将整张图片进行裁剪,嵌入向量,设置裁剪大小为4*4像素,裁剪后设定输出通道来确定嵌入向量的大小,最后将 h,w 维度展开,并移动到第一维度;输入图片是(960,960,3)(rgb三通道),经过裁剪后为(240,240,96),96为模型规定通道输出,240来自于960/4=240,窗口为设定为7*7,得到分割后的特征图,即第一次划分后的特征图;利用构建的shift window attention机制模块对第一次划分后的特征图中的小窗格进行窗口滑动,窗口位置向下、向右移动各两个单位,得到第二次划分后的特征图;在步骤s321中滑窗操作(shifted window attention):如图3所示,标准的 transformer 架构及其对图像分类的适应版本都执行 全局自注意力,其计算了每个 token 与其他所有 tokens 之间的关系 (attention map)。但swin transformer不同,它采用了滑窗(shift window attention)设计。
27.s322:如图4所示,将第一次划分后的特征图以及第二次划分后的特征图输入多层窗口融合模块(multi-window confluence,简称mwc)。多层窗口融合模块是在原本滑窗模块之后添加的一个纯数学计算模块,没有加入网络参数进行训练,并不会增加网络计算量,其基本原理如下:如图5所示:mwc将w-msa和sw-msa的输出fw(第一次划分后的特征图)和fsw(第二次划分后的特征图)作为输入。首先,通过softmax将特征映射沿通道方向归一化,确保向量模长度等于1,具体操作:先进行softmax操作,公式如下,e表示自然对数的底数,即常数2.71828, 为第i个节点的输出值,c为输出节点的个数。得到归一化的特征向量,然后再将其除以其模长,确保向量模长度等于1。
28.然后,将归一化处理后的第一次划分后的特征图每个小窗格以及第二次划分后的特征图中的每个小窗格进行处理,以patch为向量,对两个特征映射的相同位置进行点乘,两者输入都为(240,240,96),对应位置进行点乘,最终得到一个与原始特征映射尺寸相同的特征映射,相加得到fw和fsw的相似矩阵。所述相似矩阵为小窗格的特征矩阵, w-msa和sw-msa中的小窗格存在重合的部分,若矩阵中两个小窗格的重合部分中的元素存在一些裂缝特征参数则这两个具有重合部分的小窗格中间存在可能的裂缝信息,则将这两个小窗格进行融合,若矩阵中两个小窗格的重合部分中的元素没有裂缝的一些特征参数则不进行融合。
29.最后,所述第一次划分后的特征图中的小窗格与第二次划分后的特征图中的小窗格进行融合时,将fw、fsw经过软池化以及数学相加变换得到的特征图与相似矩阵相乘,得到具有上下文信息的特征窗口fc。这样就可以将多个窗口结合起来,防止丢失裂缝这种细长目标的信息。小窗格经过软池化以及数学相加变换得到的特征图与相似矩阵相乘,软池化操作是使用了softmax函数来计算每个池化区域内的权重,从而对输入特征进行加权平均 ,由于实际图片较大,具体操作如下举例说明:假设有一个输入特征图大小为4x4,通道数为1的特征映射。使用2x2的池化窗口进行软池化操作。 输入为矩阵(1 2 3 4,5 6 7 8,9 10 11 12,13 14 15 16),对于每个2x2的池化区域,计算softmax操作得到的权重,然后对池化区域内的特征进行加权平均。对于第一个池化区域:( 1 2,5 6),通过softmax操作,计算得到的权重为:(0.0474 0.0474,0.9526 0.9526 ),对池化区域内的特征进行加权平均: (1*0.0474 + 2*0.0474 + 5*0.9526 + 6*0.9526) = 5.9992,对于其他池化区域,同样进行softmax操作和加权平均。最终得到的池化特征图为:(5.9992 7.9992,13.9992 15.9992),在这个例子中,原始特征图的大小为4x4,经过2x2的软池化操作后,得到了一个2x2的池化特征图。数学相加变换是将fw和fsw对应位置相加。
30.s323:利用构建的变换矩阵对所述多层窗口融合模块输出的每个窗口进行计算得到每个窗口的自注意力机制中的查询值q,键值k,值v,并根据得到每个窗口的查询值q,键值k,值v提取特征,利用多头自注意力机制模块中构建的相对位置索引来调取相对位置编码表中的参数并将每个窗口的特征计算融合输出多头自注意力计算输出的特征图;本发明构建的多头注意力机制由多个自注意力机制(self-attention)构成,图6为单个自注意力机制的结构图:
在计算的时候需要用到矩阵q(查询),k(键值),v(值)。在实际中,self-attention 接收的是输入(单词的表示向量x组成的矩阵x) 或者上一个编码模块的输出。而q,k,v正是通过 self-attention 的输入进行线性变换得到的。self-attention 的输入用矩阵x进行表示,则可以使用线性变阵矩阵wq,wk,wv计算得到q,k,v。其中,是q,k矩阵的列数,即向量维度,具体公式为:;得到矩阵 q, k, v之后就可以根据上述公式计算出 self-attention 的输出,具体计算流程如下:得到之后,使用 softmax 计算每一个向量对于其他向量的 attention系数,公式中的 softmax 是对矩阵的每一行进行 softmax,即每一行的和都变为1. 得到 softmax 矩阵之后可以和v相乘,得到最终的输出。
31.如图7所示,本发明的相对位置编码表示例包含两部分:相对位置索引,以及相对位置编码表,相对位置编码表的构建方式为:建立相对位置编码表,并将表中的数据初始化,以经过标注的裂缝图像为样本数据,将样本数据的检测准确率为标准,利用机器学习的方法训练相对位置编码表中的参数,得到相对位置编码表,计算公式如下:;其中sign(x)函数用于返回x的符号。如果x为正数,则sign(x)返回1;如果x为负数,则sign(x)返回-1;如果x等于0,则sign(x)返回0,y同理。、表示x、y偏离值。
32.如图8所示:以两头注意力为例,第一个自注意力部分计算出b(i,1),同理可得b(i,2),计算出输出bi,为变换矩阵。图中ei为位置编码。
33.s324:利用构建的特征金字塔网络对经过自注意力计算输出的特征图进行处理,提取特征图中的不同尺度的特征并进行融合,输出融合后的特征图;本发明实施例构建的特征金字塔的网络示意图如图9所示:特征金字塔网络(feature pyramid network,简称fpn)是一种用于多尺度目标检测的通用网络结构。fpn最初是在2017年由facebook ai research提出的,它的目标是利用不同尺度下的特征图来检测不同大小的目标。
34.fpn利用了两种不同层次的特征:一种是底层浅层次的,这类特征分辨率高但语义少;另一种是高层深层次的,这类特征分辨率低但语义多。它们结合起来形成了多尺度的特征图,可以检测不同尺度的目标。fpn有两个核心步骤:第一步是自下而上地构建一个类似金字塔的结构,生成不同分辨率的初始特征图;第二步是自上而下地对初始特征图进行上采样、融合和调整,得到更好的特征表示。具体来说,fpn通过上采样将底部特征图变换到与上层特征图相同的分辨率,然后对它们进行加权求和,以得到更丰富的特征表达。
35.特征金字塔的具体网络结构图如图10所示:使用一个骨干网络对输入图像进行卷积操作,输入有3个通道,同时有多个卷积核。对于每个卷积核,先在输入3个通道分别作卷积,再将3个通道结果加起来得到卷积输出,得到多个不同层次的特征图,每个特征图的尺寸和通道数都不同。
36.然后,使用一个自顶向下的路径和横向连接来构建一个特征金字塔,每个金字塔
层都包含一个上采样操作和一个1x1卷积操作,用于将上一层的特征图与当前层的特征图相加,从而融合高层次和低层次的信息。这里上采样操作使用双线性插值,它是一种基于两个方向上的线性插值来计算高分辨率图像中每个像素值的方法。假设有一个低分辨率图像,大小为m x n,需要将其上采样为高分辨率图像,大小为m x n。对于高分辨率图像中的每个像素位置,需要计算其对应的值。首先,计算出在低分辨率图像中的对应位置。具体计算方法如下:。
37.然后,找到低分辨率图像中与(x, y)最近的四个像素点,分别是)。其中,和是不大于x和y的最大整数,和是不小于x和y的最小整数。接下来,通过以下公式计算高分辨率图像中位置的像素值:
38.其中,,表示低分辨率图像中位置的像素值。通过上述计算,可以使用线性插值方法将低分辨率图像上采样为高分辨率图像。
39.最后,使用一个3x3卷积操作对每个金字塔层进行平滑处理,使得每个金字塔层都具有相同的通道数,并且消除了上采样带来的混叠效应。使用fpn的目标检测模型可以获得更好的多尺度特征图来检测不同尺寸的目标,能够有效提高目标检测准确率。
40.s325:利用构建的region proposal network (rpn)层来对融合后的特征图进行预测,得到一系列的候选区域。
41.s33:对每个候选区域进行分类和回归,得到最终的检测框,并预测每个检测框内的像素级掩码,包括:s331:利用构建的roialign层对候选区域进行池化,roialign层采用双线性内插的方法,将候选区域池化到相同大小,这里使用平均池化,具体操作如下:在输入特征图上滑动一个固定大小3*3的池化窗口;对于每个池化窗口,计算窗口内所有值的平均值;将平均值作为输出特征图中对应位置的值;并保持特征图的分辨率和位置精度,输出的rol即为补齐后的候选区域,输出一个固定大小的特征向量,表示rol的特征。
42.所述步骤s331中在特征图上利用roialign准确地对齐roi的特征;roialign层将roi区域划分为固定大小的小格子,并使用双线性插值的方法,在特征图上计算每个小格子的像素值;得到了与roi对应的特征图。
43.s332:对每个 roi的特征向量进行分类和回归操作,使用了一个全连接层和一个 softmax层,全连接层将每个候选区域的特征进行整合回归,softmax层将每个候选区域的特征进行分类,来预测每个rol的类别和位置偏移量。然后输出一个类别标签和一个位置偏移量,表示每个rol的最终检测框;s333:进行掩码预测。对每个rol的特征向量进行掩码操作,使用了针对裂缝改进后的卷积层和一个 sigmoid 层,卷积层对检测框内的特征图进行特征提取,卷积层中设有
构建的横向边缘卷积核和纵向边缘卷积核来针对裂缝图像的细节部分进行更进一步的的提取,sigmoid激活函数将提取到的特征二值化,输出一个0和1组成的二值矩阵,其中0和1分别表示矩阵中的两种状态或类别,来预测每个检测框内的像素级掩码,二值矩阵表示每个检测框内的前景和背景像素。最后与原图像结合输出一个带有目标检测框和的图像分割的检测结果。
44.本发明构建的swin transformer网络结构如图11所示:swin transformer网络采用了基于窗口平移的方法,对视觉数据进行建模和处理。整体由多头自注意力(w-msa)、移位窗口多头自注意力(sw-msa)和多层感知器(mlp)组成。在中间插入layernorm(ln)层可以使训练更加稳定,并在每个模块之后使用残差连接。具体公式为:
[0045][0046][0047][0048]
swin transformer的核心思想是使用分层的窗口机制对图像建模,每个窗口处理一部分图像,然后通过基于transformer的方法来整合窗口处理的结果。swin transformer将图像划分成多个大的窗口,每个窗口都被视为一个特征图,不同大小的图像在分配给不同数量的窗口后产生一组多分辨率特征图,从而减少了时间复杂度,并增强了模型的特征提取能力。同时,swin transformer使用跨窗口局部卷积,从非局部视野提取特征,并在窗口内引入了绝对位置编码和相对位置编码,使得模型在处理具有空间信息的图像时能够在坐标系统中建立位置相关的关系。
[0049]
本发明使用基于python的“pytorch”框架,搭建基于swin mask rcnn的网络算法模型,选择cuda 以及和mmcv兼容版本的mmdetection、coco相关工具包等搭建合适该模型训练的虚拟环境,根据图像数量和大小选取合适的权重文件,将2000张图片以6:2:2的比例划分为训练集、测试集、验证集。经过人工标注出裂缝位置、具体轮廓、标签信息等。根据图像大小、检测类别数目、图片训练及数量修改模型参数后,将训练集投入预训练模型中进行训练,训练700轮之后得到训练后的权重文件,利用python编写程序调用训练后的权重文件使用测试集进行测试,即输入一张图片,给出一个测试结果,模型map在41%左右,本发明提出的一种基于图像处理的裂缝检测方法与mask rcnn网络提取的对比结果如图12、图13、图14、图15所示,图12至图15分别为四种不同裂缝原图以及分别经过maskrcnn网络、本发明所提供的一种基于图像处理的裂缝检测方法处理后的裂缝检测结果的对比图;左边图像为每种裂缝原图,中间的图像为经过mask rcnn网络提取的裂缝检测结果图像,右边图像为本发明一种基于图像处理的裂缝检测方法处理的裂缝检测结果图像,经过对比可以看出,本发明提出的方法在检测的准确度以及在对图像的细节检测方面具有更明显的优势。
[0050]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0051]
本技术是参照根据本技术实施例的方法和计算机程序产品的流程图和来描述的。应理解可由计算机程序指令实现流程图中的每一流程。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程中指定的功能的装置。
[0052]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程中指定的功能。
[0053]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程中指定的功能的步骤。

技术特征:
1.一种基于图像处理的裂缝检测方法,其特征在于:包括:s101:获取待检测的裂缝图像;s102:利用构建的经过改进的swin transformer网络作为骨干网络提取所述待检测的裂缝图像的特征,生成一系列的候选区,包括:s201:利用构建的多头自注意力机制模块对所述待检测的裂缝图像进行计算并输出特征图,包括:将所述待检测的裂缝图像按同样的窗口大小划分为n*n的多个小窗格得到第一次划分后的特征图,并利用构建的shift window attention机制模块对第一次划分后的特征图中的小窗格进行窗口滑动得到第二次划分后的特征图,将第一次划分后的特征图以及第二次划分后的特征图输入构建的多层窗口融合模块,所述多层窗口融合模块将第一次划分后的特征图以及第二次划分后的特征图进行归一化处理,并且将归一化处理后的第一次划分后的特征图每个小窗格以及第二次划分后的特征图中的每个小窗格进行特征映射并计算相似矩阵,所述第一次划分后的特征图中的小窗格与第二次划分后的特征图中的小窗格具有重合部分,根据得到的相似矩阵判断是否需要将所述具有重合部分的小窗格进行融合,若相似矩阵表明存在连接的裂缝信息,则将两个小窗格融合生成一个融合窗口输出,若相似矩阵表明不存在连接的裂缝信息,则不对两个小窗格进行融合,作为两个独立窗口分别输出,得到所述多层窗口融合模块输出的多个融合窗口和多个独立窗口;利用构建的变换矩阵对所述多层窗口融合模块输出的每个窗口进行计算得到每个窗口的自注意力机制中的查询值q,键值k,值v,并对所述每个窗口内首先通过一个卷积层对每个窗口内的像素进行线性变换提取像素数据,并根据得到每个窗口的查询值q,键值k,值v提取特征,具体为:,其中,是q,k矩阵的列数,即向量维度,b表示每个窗口的位置偏量,b的值由设定的相对位置偏置参数表给出;利用多头自注意力机制模块中构建的相对位置索引来调取相对位置编码表中的参数并将每个窗口的特征计算融合输出多头自注意力计算输出的特征图;s202:利用构建的特征金字塔网络对经过多头自注意力计算输出的特征图进行处理,提取所述多头自注意力计算输出的特征图中的不同尺度的特征并进行融合,输出融合后的特征图;s203:利用构建的region proposal network网络对融合后的特征图进行预测,得到一系列的候选区域,每一个候选区域包含了一个得分和一个位置偏移量,根据得分对每一个候选区域进行排序和筛选,保留部分高得分候选区域;s103: 对得到的每个高得分候选区域进行分类和回归,并根据每个高得分候选区域的位置偏移量得到最终的检测框,并预测每个检测框内的像素级掩码,输出带有目标检测框和图像分割的检测结果。2.根据权利要求1所述的一种基于图像处理的裂缝检测方法,其特征在于:所述利用构建的shift window attention机制模块对第一次划分后的特征图中的小窗格进行窗口滑
动得到第二次划分后的特征图中小窗格进行窗口滑动时,当所述第一次划分后的特征图中小窗格沿水平或者垂直方向进行窗口滑动时,所述窗口滑动的距离小于小窗格的边长,当所述第一次划分后的特征图中小窗格沿小窗格对角线进行窗口滑动时,所述窗口滑动的距离小于小窗格的对角线距离。3.根据权利要求1所述的一种基于图像处理的裂缝检测方法,其特征在于:所述利用构建的特征金字塔网络对经过多头自注意力计算输出的特征图进行处理包括:对输入的特征图进行卷积操作,得到多个不同层次的特征图;构建一个自顶向下的路径和横向连接来构建一个特征金字塔,每个金字塔层都包含一个上采样操作和一个1x1卷积操作,用于将上一层的特征图与当前层的特征图相加并进行特征融合;使用一个3x3卷积操作对每个金字塔层进行平滑处理,将每个金字塔层平滑处理后的特征图输出。4.根据权利要求3所述的一种基于图像处理的裂缝检测方法,其特征在于: 所述多个不同层次的特征图中每个特征图的尺寸和通道数都不同。5.根据权利要求1所述的一种基于图像处理的裂缝检测方法,其特征在于:所述对每个候选区域进行分类和回归,并根据每个候选区域位置偏移量得到最终的检测框,并预测每个检测框内的像素级掩码,输出带有目标检测框和图像分割的检测结果包括:利用构建的roialign层将候选区域池化到相同大小;输出候选区域的一个固定大小的特征向量,表示每个候选区域的特征;对每个候选区域的特征向量进行分类和回归,输出一个类别标签和一个位置偏移量,表示每个 roi的最终检测框;对每个 roi的最终检测框内的特征向量进行掩码操作来预测每个检测框内的像素级掩码,输出一个二值矩阵表示每个检测框内的前景和背景像素,并与原图像结合输出一个带有目标检测框和图像分割的检测结果。6.根据权利要求5所述的一种基于图像处理的裂缝检测方法,其特征在于:所述roialign层利用双线性内插的方法对候选区域进行池化。7.根据权利要求5所述的一种基于图像处理的裂缝检测方法,其特征在于:所述对每个候选区域的特征向量进行分类和回归具体为:利用一个全连接层将每个候选区域的特征进行整合回归,利用一个softmax层将每个候选区域的特征进行分类。8.根据权利要求5所述的一种基于图像处理的裂缝检测方法,其特征在于:所述对每个候选区域的最终检测框内的特征向量进行掩码操作来预测每个检测框内的像素级掩码具体为,使用一个卷积层对检测框内的特征图进行特征提取,并使用一个sigmoid激活函数将提取到的特征二值化,输出一个二值矩阵。9.根据权利要求5所述的一种基于图像处理的裂缝检测方法,其特征在于:所述使用一个卷积层对检测框内的特征图进行特征提取中的卷积层包括构建的横向边缘卷积核和纵向边缘卷积核。10.一种存储介质,其特征在于:所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述的一种基于图像处理的裂缝检测方法的步骤。

技术总结
本发明涉及图像处理领域。本发明提出的一种基于深度学习的裂缝检测方法在裂缝检测中采用Swin Mask RCNN算法,它使用了Swin Transformer作为其骨干网络。相比于以往的目标检测模型,Swin Transformer具有更好的特征提取能力和更高的表达能力,使得特征更加丰富,有助于提高裂缝检测的准确度,本发明构建的网络在Swin Transformer网络的滑窗操作之后构建了多层窗口融合模块,使具有裂缝信息的窗口能进行融合,防止裂缝的信息丢失,使其能更好的定位图像中的裂缝信息,在提升位置检测精度的同时降低计算量。精度的同时降低计算量。精度的同时降低计算量。


技术研发人员:牛伟龙 吴澄 盛洁 叶陆琴 吕景珑 钱曙杰 夏从东 吕志荣
受保护的技术使用者:苏州市轨道交通集团有限公司
技术研发日:2023.07.25
技术公布日:2023/8/28
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐