一种基于多尺度和多层次的路面裂缝检测方法与流程

    专利2022-07-08  230


    本发明属于道路表面裂缝识别领域,涉及一种基于多尺度和多层次的路面裂缝检测方法。
    背景技术
    :伴随着公路的长期使用,一些于早期修建的公路逐渐进入了维护期。各种自然条件和人为因素等都会影响到道路的健康状况,导致道路出现了各种不同的道路病害。如果能在道路破损初期就能发现道路产生的病害情况,并提前对其进行养护,将能防患于未然并减少相应的工作量和维护费用。常见的各种道路病害中,最早期的病害一般是路面裂缝,如果没有及时对裂缝进行处理,裂缝可能衍生出其他更为严重的次生病害。人工检测是裂缝检测中的一种常用的方法,但检测过程通常是耗时费力的,而由于检测人员具有一定的主观性,可能会影响到检测结果的准确度,还有可能存在一定程度的漏检、误检。随着各类自动化工具和技术的发展,目前也出现了许多自动化的路面裂缝检测方法,最为常用的方法是基于数字图像处理的检测方法,此类方法虽然可以替代部分劳动力,但却对道路上的许多类型的噪声和障碍物都很敏感,导致检测结果和实际的路面情况有一定的差距,因此基于此类的方法无法完全适应所有的路面情况,算法的鲁棒性不强,在复杂环境下很难得到预期的结果。而基于一般卷积神经网络的裂缝检测方法又无法实现端到端的图像处理,只能判断一个像素块里是否包含裂缝,无法获取裂缝是位于图片中的位置信息,破坏了裂缝的完整性。明显的,当前道路裂缝检测技术还存在以下问题:(1)由于路面裂缝图像容易受到复杂多样的噪声影响,因此在现实情况下,基于数字图像处理技术的检测方法不能适应各种复杂的场景。(2)近年来多数基于深度学习的路面裂缝检测算法都是基于图像块的。这种做法不是真正意义上的逐像素预测,也没有考虑到裂缝的整体性,不能为预测提供足够的上下文信息,同时也增加了计算量和时间消耗。(3)主流的卷积神经网络只采用了最后一层的特征图作为输出,单使用高层的小特征图无法恢复识别物体的细节信息,这种做法会对裂缝这种细小的分割目标造成较大的影响。技术实现要素:有鉴于此,本发明的目的在于提供一种基于多尺度和多层次的路面裂缝检测方法,采用多尺度模块获取裂缝的上下文信息,恢复裂缝细节,采用多层次模块提升模型的整体性能。为达到上述目的,本发明提供如下技术方案:一种基于多尺度和多层次的路面裂缝检测方法,包括以下步骤:s1:获取待检测图像创建训练集和测试集;s2:创建包含编码器、解码器、多尺度模块和多层次模块的深度卷积神经网络;s3:训练和测试所述深度卷积神经网络模型,得到裂缝检测神经网络模型;s4:使用裂缝检测神经网络模型对待检测的图像进行像素级分类,输出裂缝的二值图像。进一步,步骤s1具体包括以下步骤:s11:使用数据增强对待检测的图像数据集进行扩充,对每个图像样本围绕着该样本本身进行几何变换操作,包括旋转、翻转、缩放等各类操作;s12:同时也对该图像样本的标注图像进行同样的操作,保证样例和标注一一对应;s13:将扩充后的图像数据按一定比例划分为训练集和测试集。进一步,所述步骤s2中,确定所述的深度神经网络的编码器结构,编码器的主干网络为vgg16网络去掉两个全连接层,把vgg16网络变成一个只由卷积层和池化层组成的五层次全卷积神经网络,由此网络来提取待检测图像的特征。进一步,所述步骤s2中,所述网络的多尺度模块为六个分路并行组成的一个模块,其中四个分路由不同感受野的卷积核输出的特征图组成,不同的感受野对应不同尺度的特征。本发明利用空洞卷积获得不同的感受野,从而获得不同尺度的特征。空洞卷积有一个参数空洞率r,具体含义就是在卷积核中每个点间隔填充r减1个0。对于k×k大小的卷积核,其实际的感受野尺寸为:kresult=k (k-1)×(r-1)(1)另外两个分路一个是主干网络输出的最后一层特征图,一个是该层特征图经过全局平均池化操作后的输出,以便获得图像的全局特征。最后将六个并行支路进行拼接,经过1x1卷积后,得到多尺度模块的输出。进一步,所述步骤s2中,所述解码器模块采用上采样方法逐步恢复特征图的分辨率。将主干网络五个层次的卷积中的最后一层卷积输出的特征图上采样到与第四层卷积输出的特征图同样的分辨率大小,将两个特征图进行拼接经过1x1卷积得到新的第四层次卷积输出。将新的第四层次卷积输出按照此方法与第三层次的卷积输出进行拼接得到新的第三层次卷积输出。以此类推,得到新的第二、第一层次的卷积输出。进一步,所述的多层次模块是让每个卷积层次都参与预测,让s23所述的每个卷积层次的输出与标签图直接进行深度监督学习,生成每个层次的侧输出,将五个侧输出进行融合得到所述方法最终的输出。假设网络的所有参数值为w,定义训练图像为x=(xj,j=1,...,|x|),标签图为y=(yj,j=1,...,|x|),yj∈{0,1};如果网络有m个卷积阶段输出(侧输出),定义侧输出的参数为w=(w(1),...,w(m)),则侧输出的目标函数定义为:其中αm表示每个侧输出的损失函数的权值,根据训练日志调整或都为1/5;是每个侧输出的损失函数,定义为:其中w0=|y-|/|y|,w1=|y |/|y|,|y-|和|y |分别表示裂缝像素个数和非裂缝像素个数,pr(·)表示预测图中某个像素的概率值;最后融合层的损失函数定义为:lfuse(w,w,h)=dist(y,yfuse)(4)yfuse为m个层次的激活值之和经过sigmod函数得到的值,融合权重h=(h(1),...,h(m)),dist(·,·)表示交叉熵损失函数;最后,网络需要最小化的训练目标函数l为:l=argmin(lside(w,w) lfuse(w,w,h))(5)。进一步,步骤s3中,根据所述步骤s21、s22、s23和s24,利用训练集训练深度卷积神经网络,通过反向传播算法不断优化神经网络的参数,降低损失函数的值使网络达到最优,实现端到端的训练,得到裂缝检测神经网络模型。本发明的有益效果在于:本发明能够实现完全依靠深度神经网络模型自动提取裂缝特征,实现路面裂缝的自动检测,具有检测过程简单、检测速度快和效率高等优点。(1)采用多尺度模块更好地获取了裂缝的上下文信息,对裂缝细节恢复起到了较好的作用。(2)采用多层次模块较好地提升了模型的整体性能。本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。附图说明为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:图1为本发明所述一种基于多尺度和多层次的路面裂缝检测方法的流程图;图2为本发明一实施例的多尺度模块图;图3为本发明一实施例的多层次模块图;图4为本发明一实施例的深度卷积神经网络模型流程图;图5为本发明一实施例的深度卷积神经网络模型输出样例图。具体实施方式以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。如图1所示,一种基于多尺度和多层次的路面裂缝检测方法,包括以下步骤:s1、获取待检测图像创建训练集和测试集。本发明实例中采用公共的数据集deepcrack,此公共的数据集中包括537张原始路面裂缝图像和对应的537张裂缝标签图像。为扩充图像数据量,对deepcrack数据集进行数据增强,本发明实施例中对每张裂缝数据图和对应的标签图进行旋转、剪切等操作,将最后得到的全部图像按照8:2的比例划分为训练集和测试集。s2、创建包含编码器、解码器、多尺度模块和多层次模块的深度卷积神经网络。本发明实例中所采用的深度卷积神经网络模型基础为fcn神经网络模型,具体就是vgg16网络去掉最后两个全连接层,加入了多尺度和多层次模块,并添加了解码器模块。具体细节参照图2多尺度模块和图3多层次模块。本发明通过编码器阶段的主干网络来提取裂缝图像特征,主干网络共有五个卷积层次,卷积过程中采用了零填充,同时卷积步长设为1,保证在进行卷积操作后特征图的尺寸不会发生变化,最后得到的裂缝二值图像也不会受到影响。前四个卷积层次后都跟着一个池化层来降低特征图的分辨率,特征图的尺寸分别降为原来的1/2、1/4、1/8、1/16,以此降低参数来减少计算量。多尺度模块由六个并行支路组成,其中四个分路由不同感受野的卷积层组成,另外两个分路一个是主干网络输出的最后一层特征图,一个是该层特征图经过全局平均池化操作后的输出,以便获得图像的全局特征。最后将六个并行支路进行拼接,经过1x1卷积后,得到多尺度模块的输出。其中四个不同感受野的卷积层是由空洞卷积实现的,本实例设置四个空洞卷积的空洞率分别为1、2、3和4。解码器模块采用上采样方法逐步恢复特征图的分辨率,具体的操作方式如图2所示,通过此方法构建出新的特征网络,使用此特征网络生成每个层次的侧输出,并直接与标签图进行深度监督学习,让每个卷积层次都参与预测,将五个侧输出进行融合得到所述方法最终的输出,总体的网络模型结果参照图4。s3、使用创建好的训练集和测试集来训练和测试深度卷积神经网络模型;本发明选择的深度神经网络的训练策略为:所述神经网络中代价函数的选择为交叉熵函数,激活函数使用非线性的relu。同时在训练中加入了batchnormalization批标准化层,通过规范化手段把每层神经网络任意神经元的输入值的分布拉回到均值为0方差为1的标准正态分布,避免训练过程中产生梯度消失问题,加快学习收敛速度和训练速度。所述神经网络的优化方法采用随机梯度下降sgd,采用的深度学习框架为pytorch,通过训练不断降低目标函数的函数值来学习和确定深度神经网络的参数。网络的目标函数为五个侧输出的损失函数和最后融合层的损失函数之和组成。假设网络的所有参数值为w,定义训练图像为x=(xj,j=1,...,|x|),标签图为y=(yj,j=1,...,|x|),yj∈{0,1}。如果网络有m个卷积阶段输出(侧输出),定义侧输出的参数为w=(w(1),...,w(m)),则侧输出的目标函数可以定义为:其中αm表示每个侧输出的损失函数的权值,根据训练日志调整或都为1/5。是每个侧输出的损失函数,定义为:其中w0=|y-|/|y|,w1=|y |/|y|,|y-|和|y |分别表示裂缝像素个数和非裂缝像素个数。pr(·)表示预测图中某个像素的概率值。最后融合层的损失函数可以定义为:lfuse(w,w,h)=dist(y,yfuse)(4)yfuse为m个层次的激活值之和经过sigmod函数得到的值,融合权重h=(h(1),...,h(m)),dist(·,·)表示交叉熵损失函数。最后,网络需要最小化的训练目标函数l为:l=argmin(lside(w,w) lfuse(w,w,h))(5)s4、用训练好的裂缝检测神经网络模型对待检测的图像进行像素级分类,输出裂缝的二值图像,输出样例如图5所示。对输出结果进行评估,本发明选取的评价指标分别为:精准率(precision)=tp/(tp fp)召回率(recall)=tp/(tp fn)f值=2*(precision*recall)/(precision recall)其中k为分类总数,iou是每类输出结果与标签图相交的像素数比上相并的像素数。本发明在deepcrack数据集上的实验情况如表1所示:表1模型指标precisionrecallf1measuremioufcn0.59450.69120.63900.7002fcn 多尺度模块0.79770.72930.76190.7852fcn 多层次模块0.81300.83750.82520.8233ours0.85030.85750.85390.8647与未改进的fcn基线模型相比,本发明的各项指标都有了改好的提升,证明了:(1)采用多尺度模块能更好的获取裂缝的上下文信息,对裂缝细节恢复起到了较好的作用。(2)采用多层次模块能较好的提升模型的整体性能。最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。当前第1页1 2 3 
    技术特征:

    1.一种基于多尺度和多层次的路面裂缝检测方法,其特征在于:包括以下步骤:

    s1:获取待检测图像创建训练集和测试集;

    s2:创建包含编码器、解码器、多尺度模块和多层次模块的深度卷积神经网络;

    s3:训练和测试所述深度卷积神经网络模型,得到裂缝检测神经网络模型;

    s4:使用裂缝检测神经网络模型对待检测的图像进行像素级分类,输出裂缝的二值图像。

    2.根据权利要求1所述的基于多尺度和多层次的路面裂缝检测方法,其特征在于:步骤s1具体包括以下步骤:

    s11:使用数据增强对待检测的图像数据集进行扩充,对每个图像样本围绕着其本身进行几何变换操作,包括旋转、翻转、缩放;

    s12:同时也对所述图像样本的标注图像进行同样的几何变换操作,保证图像样本和标注图像一一对应;

    s13:将扩充后的图像数据按一定比例划分为训练集和测试集。

    3.根据权利要求1所述的基于多尺度和多层次的路面裂缝检测方法,其特征在于:所述步骤s2中,所述编码器的主干网络为vgg16网络去掉两个全连接层,只由卷积层和池化层组成五层次全卷积神经网络,用于提取待检测图像的特征。

    4.根据权利要求3所述的基于多尺度和多层次的路面裂缝检测方法,其特征在于:所述步骤s2中,所述多尺度模块由六个分路并行组成,其中四个分路由不同感受野的卷积核输出的特征图组成,不同的感受野对应不同尺度的特征;利用空洞卷积获得不同的感受野,从而获得不同尺度的特征;所述空洞卷积包括参数空洞率r,意为在卷积核中每个点间隔填充r减1个0;对于k×k大小的卷积核,其实际的感受野尺寸为:

    kresult=k (k-1)×(r-1)(1)

    另外两个分路为主干网络输出的最后一层特征图,以及该层特征图经过全局平均池化操作后的输出,用于获得图像的全局特征;最后将六个并行分路进行拼接,经过1x1卷积后,得到多尺度模块的输出。

    5.根据权利要求4所述的基于多尺度和多层次的路面裂缝检测方法,其特征在于:所述步骤s2中,所述解码器采用上采样方法逐步恢复特征图的分辨率;将主干网络五个层次的卷积中的最后一层卷积输出的特征图上采样到与第四层卷积输出的特征图同样的分辨率大小,将两个特征图进行拼接经过1x1卷积得到新的第四层次卷积输出;将新的第四层次卷积输出按照此方法与第三层次的卷积输出进行拼接得到新的第三层次卷积输出;以此类推,得到新的第二、第一层次的卷积输出。

    6.根据权利要求5所述的基于多尺度和多层次的路面裂缝检测方法,其特征在于:所述步骤s2中,所述多层次模块让每个卷积层次都参与预测,让所述的每个卷积层次的输出与标签图直接进行深度监督学习,生成每个层次的侧输出,将五个侧输出进行融合得到所述方法最终的输出;

    网络的所有参数值为w,训练图像为x=(xj,j=1,...,|x|),标签图为y=(yj,j=1,...,|x|),yj∈{0,1};如果网络有m个卷积阶段输出(侧输出),定义侧输出的参数为w=(w(1),...,w(m)),则侧输出的目标函数定义为:

    其中αm表示每个侧输出的损失函数的权值,根据训练日志调整或都为1/5;

    是每个侧输出的损失函数,定义为:

    其中w0=|y-|/|y|,w1=|y |/|y|,|y-|和|y |分别表示裂缝像素个数和非裂缝像素个数,pr(·)表示预测图中某个像素的概率值;

    最后融合层的损失函数定义为:

    lfuse(w,w,h)=dist(y,yfuse)(4)

    yfuse为m个层次的激活值之和经过sigmod函数得到的值,融合权重h=(h(1),...,h(m)),dist(·,·)表示交叉熵损失函数;最后,网络需要最小化的训练目标函数l为:

    l=argmin(lside(w,w) lfuse(w,w,h))(5)。

    7.根据权利要求1所述的基于多尺度和多层次的路面裂缝检测方法,其特征在于:步骤s3中,利用训练集训练深度卷积神经网络,通过反向传播算法不断优化神经网络的参数,降低损失函数的值使网络达到最优,实现端到端的训练,得到裂缝检测神经网络模型。

    技术总结
    本发明涉及一种基于多尺度和多层次的路面裂缝检测方法,属于道路表面裂缝识别领域,包括以下步骤:获取待检测图像创建训练集和测试集;创建包含编码器、解码器、多尺度模块和多层次模块的深度卷积神经网络;训练和测试所述深度卷积神经网络模型,得到裂缝检测神经网络模型;使用裂缝检测神经网络模型对待检测的图像进行像素级分类,输出裂缝的二值图像。本发明,能够实现完全依靠深度神经网络模型自动提取裂缝特征,实现路面裂缝的自动检测,具有检测过程简单、检测速度快和效率高等优点。

    技术研发人员:程文科;周应华
    受保护的技术使用者:重庆邮电大学
    技术研发日:2020.12.02
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-16469.html

    最新回复(0)