一种基于语义分割的桥梁裂缝图像分割模型的制作方法

文档序号:16214198发布日期:2018-12-08 08:08阅读:343来源:国知局
一种基于语义分割的桥梁裂缝图像分割模型的制作方法

本发明属于计算机视觉深度学习技术领域,具体涉及一种基于语义分割的桥梁裂缝图像分割模型。

背景技术

图像语义分割作为人工智能领域的重要分支,是计算机视觉中关于图像理解的重要一环。众所周知,在一定条件下,网络的深度越深,提取到的特征越精确,检测效果也随之越好,但是在实际应用中发现网络越深时越容易出现梯度扩散的问题。在2016年,由gaohuang等人提出的密度卷积网络denseconvolutionalnetwork解决了这个问题。

denseconvolutionalnetwork(densenet)是一种具有密集连接的卷积神经网络(huangg,liuz,maatenlvd,etal.denselyconnectedconvolutionalnetworks[j].2016.)。在该网络中,任何两层之间都有直接的连接,也就是说,网络每一层的输入都是前面所有层输出的并集,而该层所学习的特征图也会被直接传给其后面所有层作为输入。densenet不仅可以高效利用特征图,并且可以在网络很深时有效解决梯度消失问题。可表示为

xl=hl([x0x1,...,xl-1])

式中l表示层数,xl代表l层的输出,[x0,x1,...,xl-1]表示将0到l-1层的输出特征图按深度链接,即filterconcatenation,使用filterconcatenation的好处在于防止了由于层数增多带来的计算资源的爆炸性需求,从而使网络的宽度和深度均可扩大。hl(.)由batchnormalization,relu激活函数和卷积操作组成。由于filterconcatenation要求特征图x0,x1,...,xl-1的尺寸相同,而池化操作会改变特征图尺寸且不可或缺,因此,提出denseblock,使得denseblock内的特征图尺寸相同,每经过denseblock的一层,特征图数量增加k,通过k可以控制网络的宽度。如图1所示为包括4层的denseblock。

文献jegous,drozdzalm,vazquezd,etal.theonehundredlayerstiramisu:fullyconvolutionaldensenetsforsemanticsegmentation[j].2016:1175-1183.提出用于语义分割的fc-densenet103模型,并在camvid数据集中取得了满意的效果,但是当应用于复杂背景下的桥梁路面裂缝提取时效果不佳,且参数众多、训练模型时间较长。



技术实现要素:

为了解决现有技术中存在的上述问题,本发明提供了一种基于语义分割的桥梁裂缝图像分割模型。本发明要解决的技术问题通过以下技术方案实现:一种基于语义分割的桥梁裂缝图像分割模型,依次包括卷积核为5x5的第一卷积层、由denseblock和transitiondown组成的下采样路径、由denseblock和transitionup组成的上采样路径,卷积核为1x1的第二卷积层以及softmax函数;

所述下采样路径包括5个denseblock层和4个transitiondown;所述上采样路径包括4个denseblock层和4个transitionup层

所述9个denseblock层的层数量依次为4层、5层、7层、10层、12层、10层、7层、5层和4层;

所述每个transitiondown包含一个卷积,每个transitionup包含一个转置卷积。

进一步的,所述每个layers层包括batchnormalization、relu激活函数、3x3卷积和dropout。

进一步的,所述transitiondown由batchnormalization、relu激活函数、1x1卷积与2x2池化操作组成。

进一步的,所述batchnormalization具体算法如下:

batchnormalization算法在每一次迭代中的每一层输入都进行了归一化,将输入数据的分布归一化为均值为0,方差为1的分布,具体如公式(2):

其中,xk表示输入数据的第k维,e[xk]表示k维的平均值,表示标准差;

batchnormalization算法的两个可学习的变量γ和β的如公式(3),

γ和β用于还原上一层学到的数据分布。

进一步的,所述relu激活函数为连续的非线性激活函数,具体计算如公式(4)所示:

relu(x)=max(0,x)(4)。

与现有技术相比,本发明的有益效果:本发明与传统裂缝检测算法、现有深度学习算法相比,该算法不受路面噪声与障碍物的影响,裂缝分割结果无噪声且裂缝清晰完整;本发明的算法更适用于复杂背景下的桥梁路面裂缝检测和分割,且具有更强的识别效果与更好的泛化能力。

本发明适用于复杂背景下的桥梁路面裂缝检测简化了模型结构,减少了参数,减少了计算时间。

附图说明

图1是denseconvolutionalnetwork的包括4层的denseblock结构示意图。

图2是基于语义分割的桥梁裂缝图像分割模型结构示意图。

图3是基于语义分割的桥梁裂缝图像分割模型layers层结构示意图。

图4是基于语义分割的桥梁裂缝图像分割模型transitiondown的结构示意图。

图5是基于语义分割的桥梁裂缝图像分割模型transitionup的结构示意图。

具体实施方式

下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。

在本发明创造的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明创造和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明创造的限制。

此外,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明创造的描述中,除非另有说明,“多个”的含义是两个或两个以上。

术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明创造中的具体含义。

本发明针对fc-densenet103模型进行改进,提出了适用于复杂背景的基于语义分割的桥梁裂缝图像分割模型(bridge-crack-image-segmentation-model),简称bcism。

bcism一共由74个卷积层构成,包括由denseblock和transitiondown组成的下采样路径,以及由denseblock和transitionup组成的上采样路径,以及softmax函数。其中,denseblock依次由4、5、7、10、12、10、7、5、4个层构成,每个层由batchnormalization、relu激活函数、3x3卷积和dropout构成,dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃,以使每一个batch都在训练不同的网络,网络中dropout=0.2。

transitiondown的作用是减少特征图的空间维度,由batchnormalization、relu激活函数、1x1卷积与2x2池化操作组成,其中1x1的卷积用于保存特征图的数量,2x2的池化操作用于降低特征图的分辨率,以此来补偿由于网络层数大幅增加造成的特征图数量的线性增长。

transitionup由一个转置卷积构成,作用是恢复输入图像的空间分辨率,转置卷积仅对最后一个denseblock的特征图使用,原因是由于最后一个denseblock综合了所有之前denseblock的信息。softmax函数的作用是输出裂缝与非裂缝的概率。bcism的网络结构参数如表1所示:

表1bcism的网络结构参数

具体的,本实施例提供一种基于语义分割的桥梁裂缝图像分割模型,依次包括卷积核为5x5的第一卷积层、由denseblock和transitiondown组成的下采样路径、由denseblock和transitionup组成的上采样路径,卷积核为1*1的第二卷积层以及softmax函数;

下采样路径包括5个denseblock层和4个transitiondown;

上采样路径包括4个denseblock层和4个transitionup层

9个denseblock层的layers层数量依次为4层、5层、7层、10层、12层、10层、7层、5层和4层;每个layers层包括batchnormalization、relu激活函数、3x3卷积和dropout。

transitiondown和transitionup均为4个,每个transitiondown包含一个卷积,每个transitionup包含一个转置卷积。transitiondown由batchnormalization、relu激活函数、1x1卷积与2x2池化操作组成。

进一步的,batchnormalization具体算法如下:

batchnormalization算法在每一次迭代中的每一层输入都进行了归一化,将输入数据的分布归一化为均值为0,方差为1的分布,具体如公式(2):

其中,xk表示输入数据的第k维,e[xk]表示k维的平均值,表示标准差;

batchnormalization算法的两个可学习的变量γ和β的如公式(3),

γ和β用于还原上一层学到的数据分布。

进一步的,relu激活函数为连续的非线性激活函数activationfunction,具体计算如公式(4)所示:

relu(x)=max(0,x)(4)。

本发明的桥梁裂缝图像分割模型的裂缝提取方法如下:

步骤一:数据集采集,通过无人机沿路面裂缝方向飞行,并连续拍照,得到裂缝图像;对裂缝图像进行语义分割,需要对数据集中的样本人工的制作相应的标签;在具体的标注过程中,对裂缝图像中裂缝标注为一种单一颜色,裂缝图像中裂缝之外的所有干扰物以及背景全部设置为另一种统一的单一颜色;基于语义分割的桥梁路面裂缝检测和分割方法的实现,需要大量的、带语义类别的标签的路面裂缝图像作为训练集和测试集;但是,到目前为止,全球还没有公开的、带类别标签的、用于桥梁路面裂缝图像语义分割的数据集合;因此,必须自己创建用于桥梁路面裂缝图像检测和分割的数据集合;由于手动制作图像标签也有相当大的工作量,因此我们应采用效率最高、计算量最小的数据集扩增方法;具体采用的数据增强的方法为:

a.从256×256的图像中提取随机的224×224的碎片;

b.对随机裁取的碎片进行水平反射与垂直反射;

并将扩增后数据集随机分类为训练集与测试集;

步骤二:将训练集中裂缝图像分次输入分割模型进行训练,具体方法如下:

步骤1:将训练集中裂缝图像进行一次5x5的卷积;

步骤2:并将卷积结果输入包含4个layers层的denseblock;

步骤3:将步骤2结果进行transitiondown操作,降低裂缝图像分辨率;

步骤4:将denseblock模块layers层数量依次设置为5层、7层、10层,依次重复4次步骤2与步骤3;

步骤5:将步骤4的结果输入由12个layers组成的bottleneck,完成全部下采样,并进行多个特征的连接操作;

步骤6:将上层输出结果输入由transitionup和denseblock组成的上采样通道,denseblock对应下采样中的layers层数为10层;

步骤7:将步骤6中denseblock的layers层数依次设为7、5、4,重复4次步骤6;

步骤8:对步骤7的输出结果进行1*1卷积操作;

步骤9:将步骤8结果输入softmax层进行判断,输出裂缝与非裂缝的概率;

步骤三:步骤二训练完成后,通过训练好的分割模型对测试集中裂缝图像进行测试,得到测试结果。

如图2、图3、图4、图5所示,步骤二中分割模型包括由denseblock以及transitiondown组成的下采样路径,和由denseblock与transitionup组成的上采样路径,以及softmax函数,denseblock与transitionup组成的的上采样路径用于恢复输入图像空间分辨率,其中m代表特征图的个数,c代表最后分类个数。

分割模型共由74个卷积层构成:第一个卷积直接作用于输入图像、由denseblock组成的下采样路径中有26个卷积层、瓶颈bottleneck中有12个卷积层、由denseblock组成的上采样路径中有26个卷积层,还包含4个transitiondown,每个transitiondown包含一个卷积,以及4个transitionup,每个transitionup包含一个转置卷积,以及网络中最后一层的1x1卷积。

下采样路径的最后一层被称为bottleneck;bottlenek实际是由12个layers层构成的denseblock,其优点是可以缓解梯度消失,并且大大减少了计算量。

denseconvolutionalnetwork(densenet)是一种具有密集连接的卷积神经网络。在该网络中,任何两层之间都有直接的连接,也就是说,网络每一层的输入都是前面所有层输出的并集,而该层所学习的特征图也会被直接传给其后面所有层作为输入。在传统的卷积神经网络中,如果你有l层,那么就会有l个连接,但是在densenet中,会有l(l+1)/2个连接,具体表示为如下公式(1):

xl=hl([x0x1,...,xl-1])(1)

式中l表示层数,xl表示l层的输出,[x0x1...xl-1]表示将0到l-1层的输出特征图连接;hl(.)表示batchnormalization、relu和3*3的卷积的组合。

众所周知,在一定程度上网络模型越深,取得的效果越好,然而网络越深往往越难以训练;因为卷积网络在训练的过程中,前一层的参数变化影响着后面层的变化,而且这种影响会随着网络深度的增加而不断放大。卷积网络进行训练时,绝大多数都采用批梯度下降法,那么随着输入数据的不断变化以及网络中参数不断调整,网络的各层输入数据的分布则会不断变化,那么各层在训练的过程中就需要不断的改变以适应这种新的数据分布,从而造成网络训练困难并且难以拟合的问题;针对这种问题,本文在训练过程中引入batchnormalization层;

batchnormalization算法在每一次迭代中的每一层输入都进行了归一化,将输入数据的分布归一化为均值为0,方差为1的分布,具体如公式(2):

其中,xk表示输入数据的第k维,e[xk]表示k维的平均值,表示标准差;

batchnormalization算法设置了两个可学习的变量γ和β,具体如公式(3),

γ和β用于还原上一层应该学到的数据分布,y表示数据输出值。

为了增强网络的表达能力,深度学习引入了连续的非线性激活函数activationfunction,relu(rectifiedlinearunit)函数具体计算如公式(4)所示:

relu(x)=max(0,x)(4)。

由于激活函数relu一般被认为有生物上的解释,并且relu已经被证明拟合效果更好;因此,模型中的激活函数选择使用relu。

根据(1)式可知我们需要对多个输出特征图进行连接操作,而进行连接操作的必要条件是特征图的大小一致;在卷积网络中下采样层是必不可少的,它的作用是通过改变特征图的大小来进行降维;因此,为了便于在我们的体系结构中能进行下采样并且顺利完成连接操作,我们将网络划分为多个密集连接的密集块denseblock,每个denseblock中的特征图的大小相同。

步骤2中包含4个layers层的denseblock模块,其layer层由batchnormalization、relu、3x3卷积和dropout构成,dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃,以使每一个mini-batch都在训练不同的网络,其中dropout=0.2,采用dropout层可以有效防止过拟合,提高实验准确率。

transitiondown操作用来减少特征图的空间维度,这样的转换由batchnormalization、relu、1x1卷积和2x2池化操作组成;其中使用1x1的卷积用于保存特征图的数量,使用2x2的池化操作用于降低特征图的分辨率。随着层数的增加导致特征数量线性增长,然而,池化操作可以有效降低特征图的分辨率,因此通过池化操作来降低空间分辨率,以此来补偿由层数增加造成的特征图数量的增长。

transitionup操作的作用是恢复输入图像的空间分辨率,这样的转换由一个转置卷积构成,转置卷积仅对最后一个denseblock的特征图使用,因为最后一个denseblock综合了所有之前denseblock的信息。

本实施例的分割模型采用filterconcatenation把特征图按深度链接起来。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1