一种基于知识蒸馏的管道裂缝细粒度分类方法

文档序号:30784085发布日期:2022-07-16 07:14阅读:128来源:国知局
一种基于知识蒸馏的管道裂缝细粒度分类方法

1.本发明涉及计算机视觉和土木工程的技术领域,具体是涉及一种基于知识蒸馏的管道裂缝细粒度分类方法。


背景技术:

2.下水管道在工作过程中,在工作环境与所载原料影响下,容易在管道内部发生腐蚀、堵塞、裂缝等各种潜在缺陷从而引起泄露事故。管道闭路电视检测系统(cctv)是专门应用于地下管道检测的工具,然而对闭路电视的检查耗时、费力、易出错;由于长时间的检查,操作人员可能会感到疲劳,从而导致对下水道状况的错误评估。这就带来了判断的主观性、操作人员疲劳和长时间使用寿命周期成本的问题。虽然这些问题可以通过对操作人员进行适当的培训和认证,并采用标准的条件评级协议来缓解,例如pacp,但这些局限性并不能完全消除。因此,需要可靠的自动缺陷检测和分类系统来弥补对埋地污水管道实际情况主观解释的不足。
3.近年来,基于深度学习的方法在管道缺陷检测领域获得了广泛的关注。深度学习算法,如卷积神经网络(cnn)提供了解决办法,以克服现有技术检测管道缺陷时的困难。然而深层cnn需要训练的参数较多。因此需要花费更多的计算资源和时间进行训练和预测,当部署在gpu较弱的嵌入式或边缘设备上时,权重参数较多的深度cnn会受到计算和存储资源的限制。因此,在这些情况下,cnn的简单性显得尤为重要。小网络速度快,占用内存少,但在真值上直接训练很难得到精确的结果。因此,模型压缩技术变得势在必行。而“模型蒸馏”属于模型压缩的一种方法。


技术实现要素:

4.发明目的:针对以上缺点,本发明公开了一种基于知识蒸馏的管道裂缝细粒度分类方法,通过引入知识蒸馏技术对能够完成管道裂缝细粒度分类任务的卷积神经网络进行压缩,获得轻量级神经网络,最终快速获得管道裂缝细粒度的分类。
5.技术方案:为解决上述问题,本发明采用一种基于知识蒸馏的管道裂缝细粒度分类方法,包括以下步骤:
6.(1)采集管道图像并进行预处理,获取管道裂缝数据集;所述管道裂缝数据集中具有人工标注的管道裂缝细粒度的类别信息;
7.(2)将步骤(1)获取的管道裂缝数据集输入教师模型进行模型训练,通过调整教师模型的学习率,获得准确率最高的教师模型作为训练好的教师模型;所述教师模型采用resnet50;
8.(3)基于轻量级神经网络设计一学生模型;学生模型的结构为:先经过具有4个bottleneck的mobilenetv2网络,再经过inception网络;
9.(4)在温度t下,蒸馏训练好的教师模型的知识转移至学生模型,学生模型依据知识进行模型训练,获取最终损失最小的学生模型作为训练好的学生模型;所述知识为教师
模型输出的管道裂缝细粒度属于某一类别的概率和人工标注的管道裂缝细粒度的类别;
10.(5)将待分类的图像输入训练好的学生模型,得到最终裂缝细粒度分类结果。
11.进一步的,(4.1)采用logits蒸馏形式,提取训练好的教师模型输出的管道裂缝细粒度属于某一类别的概率;具体包括:定义教师模型最后一个全连接层的输入的logits向量为z,输出属于第i个类别的概率pi通过softmax函数计算获得为:
[0012][0013]
式中,zi表示第i个类别的logit;j表示遍历整个类别,自第一个类别至第c个类别,c为总类别数;
[0014]
(4.2)引入温度t,将步骤(41)的概率转移至学生模型,则学生模型中管道缝隙细粒度属于第i个类别的概率p
′i为:
[0015][0016]
(4.3)学生模型中的最终损失为:
[0017][0018]
式中,l为最终损失;α为超参数,α∈(0.1,0.5,0.9);t表示温度,t∈(5,10,20,50);;kldiv(
·
)表示kullback-leibler散度;表示学生模型中管道裂缝细粒度属于某一类别的概率分布;表示教师模型中管道裂缝细粒度属于某一类别的概率分布;qs表示t=1时学生模型中管道裂缝属于某一类别的概率;y
true
为真值;
[0019]
(4.4)利用教师模型输出的管道裂缝细粒度属于某一类别的概率以及人工标注的管道裂缝细粒度的类别对学生模型进行融合训练,通过调节超参数和温度,获得最终损失最小的学生模型作为训练好的学生模型。
[0020]
进一步的,所述的bottleneck具体为:先经过1
×
1的逐点卷积进行升维,再经过depthwise卷积,最后经过1
×
1卷积降维。
[0021]
进一步的,所述inception网络为三层结构,第一层包括三个分支,第一个分支进行3
×
3的basicconv2d操作,第二个分支先进行1
×
1的basicconv2d操作,然后进行两次3
×
3的basicconv2d操作,第三个分支进行平均池化操作,将三个分支进行concat操作后输入第二层,第二层为dropout层,第三层为全连接层。
[0022]
进一步的,步骤(2)中准确率计算公式为:
[0023][0024]
式中,acc为准确率;tp是真正类;tn是真负类;fp是假正类;fn是假负类。
[0025]
进一步的,步骤(1)中预处理包括:每30帧进行一次帧提取,选取图像进行人工标注,标注的同时模糊视频帧上的信息标签框;对图像进行数据增强操作扩大样本量,即对图像进行水平翻转,缩放,随机旋转β度,β∈(0-180)。。
[0026]
进一步的,步骤(1)中所述类别信息包括4个类别,分别为:纵向裂缝、周向裂缝、多裂缝和正常。
[0027]
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质包括存
储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述的方法。一种调试设备,存储器、处理器及在所述存储器上存储并可运行的程序,所述程序被处理器执行时实现如上述方法的步骤。
[0028]
有益效果:本发明所述的一种基于知识蒸馏的管道裂缝细粒度分类方法相对于现有技术,其显著优点是:采用复杂模型resnet50作为教师模型,设计面向裂缝检测的轻量级网络cmi作为学生模型;通过知识蒸馏技术提取大型教师模型获取先验暗知识转移至学生模型,再结合ground truth(gt)训练小型学生模型进行分类,通过学习一个繁琐的模型来提高一个浅层快速的模型的性能。
附图说明
[0029]
图1所示为本发明所述方法流程图;
[0030]
图2所示为本发明所述方法种设计的学生模型的结构图;
[0031]
图3所示为学生模型中的bottleneck的结构;
[0032]
图4所示为本发明所述方法实际应用流程图;
[0033]
图5所示为本发明所述方法中管道裂缝细粒度分类的四种类别的图示;图5(a)所示为横向裂缝,图5(b)所示为纵向裂缝,图5(c)所示为多裂缝,图5(d)所示为正常类。
具体实施方式
[0034]
下面结合附图对本发明的技术方案进一步说明。
[0035]
如图1所示,本发明所述的一种基于知识蒸馏的管道裂缝细粒度分类方法,具体包括以下步骤:
[0036]
步骤一、获取管道裂缝数据集;
[0037]
具体的,通过管道机器人采集图像,得到闭路电视视频文件,对cctv视频文件进行预处理:每30帧进行一次帧提取,选取图像并对图像中管道裂缝进行人工标注,标注出管道裂缝细粒度真实的类别,形成管道裂缝数据集;模糊视频帧上的信息标签框,避免标签框对裂缝检测的影响;对图像进行数据增强操作,进行水平翻转,缩放,随机旋转(0-180)度,扩大样本量。其中,标注的类4个类别分别为:纵向裂缝、周向裂缝、多裂缝和正常。
[0038]
步骤二、蒸馏准备阶段,准备训练好的教师模型并设计学生模型;
[0039]
(1)选取复杂网络resnet50作为教师模型,采用步骤一种获取的管道裂缝数据集对教师模型进行模型训练,在训练过程中通过调节网络学习率等超参数得到预测类别的准确率最高的教师模型。其中,准确率计算公式为:
[0040][0041]
式中,acc为准确率;tp是真正类;tn是真负类;fp是假正类;fn是假负类。
[0042]
(2)本发明基于轻量级网络cmi(combined mobilenetv2&inception)设计学生模型,该cmi结合了mobilenetv2网络和inception网络。如图2和图3所示所示,学生模型的结构具体为:先使用了4个倒残差块(bottleneck),然后进行了反卷积操作,对输出特征图进行放大,使裂缝纹理更明显。具体的,bottleneck结构为:首先经过1
×
1的逐点卷积进行升维,再经过depthwise卷积,最后经过1
×
1卷积降维;其中,当stride=1且输入特征矩阵与
输出特征矩阵的shape相同时进行shortcut连接。再使用了inceptionb的结构,即经过三个分支,第一个分支进行3
×
3的basicconv2d(结构为经过卷积层和bn层),第二个分支先进行1
×
1的basicconv2d,然后进行两次3
×
3的basicconv2d,第三个分支进行平均池化操作,最后将三个分支进行concat操作。在网络的最后添加了dropout层和一个全连接层。cmi总参数尺寸为35.96mb。
[0043]
步骤三、知识蒸馏阶段
[0044]
(1)针对步骤二中训练好的教师模型采用logits蒸馏形式提取预测的先验暗知识。具体的,定义教师模型最后一个全连接层的输入的logits向量为z,令zi表示第i个类别的logit,那么输出属于第i个类别的概率pi由softmax计算得:
[0045][0046]
式中,zi表示第i个类别的logit;j表示遍历整个类别,自第一个类别至第c个类别,c为总类别数;
[0047]
(2)通过上述教师模型可以获取软目标预测的暗知识,即预测的管道裂缝细粒度属于某一类别的概率,将其转移至学生模型中;同时,引入温度t来控制每个软目标,最终学生模型中管道缝隙细粒度属于第i个类别的概率p
′i,公式为:
[0048][0049]
(3)学生模型中的最终的损失为教师模型的软目标作为蒸馏损失和真实标签的硬目标作为分类损失的联合,具体公式为:
[0050][0051]
式中,l为最终损失;α为超参数,取值范围为(0.1,0.5,0.9);t表示温度,取值范围为(5,10,20,50);kldiv(
·
)表示kullback-leibler散度;表示学生模型中管道裂缝细粒度属于某一类别的概率分布;表示教师模型中管道裂缝细粒度属于某一类别的概率分布;qs表示t=1时学生模型中管道裂缝细粒度属于某一类别的概率;y
true
为真值,即管道裂缝细粒度类别标签的数值;
[0052]
其中,kldiv(
·
)方程为:
[0053][0054]
式中,p(x)和q(x)是离散随机变量的两个概率分布;
[0055]
e(
·
)是交叉熵,方程如下:
[0056][0057]
其中c代表类别数,p为真值,q为预测值。
[0058]
(4)根据上述(1)-(3)中获取的教师模型输出的管道裂缝细粒度属于某一类别的概率以及人工标注的真实管道裂缝细粒度的类别对学生模型进行融合训练,通过调节超参数和温度,获得最终损失最小l
min
的学生模型作为训练好的学生模型。
[0059]
步骤五、将待分类的图像输入到训练完成的学生模型,得到最终分类结果。为了进
一步的评价学生模型的分类效果,可以结合最终的分类结果与真实标类别信息进行对比,计算准确率。
[0060]
步骤六、如图4所示,将上述训练好的学生模型直接搭载于nle-ai800嵌入式开发平台,实现对管道裂缝细粒度的分类。如图5所示,利用nle-ai800嵌入式开发平台直接获取的管道内不同缝隙类别的图示,图5(a)-图5(d)依次为横向裂缝,纵向裂缝,多裂缝,正常类。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1