基于Dropblock卷积神经网络的分纤箱智能质检
2022-06-22朱辉陈坚袁建行
朱辉, 陈坚, 袁建行
1.中国移动通信集团四川有限公司,成都 610000;2.西南大学 计算机与信息科学学院,重庆 400715;3.网思科技股份有限公司,成都 610000
传输网络是通信网络中的重要组成部分,在接入侧的传输网络中包含大量的分纤箱,分纤箱主要位于楼道或弱电井内,做好对分纤箱的维护,对于保证传输网络正常稳定的运行及传输网络的质量具有极其重要的作用.
在现有的传输网络维护模式中,主要由前端维护人员到现场对分纤箱开展巡检、优化等维护工作,并将现场维护的情况通过照片传回到后端,再由后端质检人员对传回来的照片进行质检,质检的内容包括分纤箱是否有保护线、是否有包含必要信息的标签等,如图1.这种模式效率低、效果差,面对海量的图片数据,后端人工质检远远不能检查全部图片,只能抽检部分图片,而且不同质检人员对验收标准的把握不一致,检验的结果也不尽相同,检验质量得不到控制.因此,如能通过AI图像识别技术对分纤箱图片进行智能质检,识别出分纤箱是否有保护线、是否有包含必要信息的标签等,则既可以全量检测图片,又能节省大量人力物力,还能提高效率和对检验质量的控制.
图1 分纤箱上的保护线和标签
1 基于Dropblock卷积神经网络的分纤箱智能质检方法
为了准确识别出需质检的图片中是否有保护线和标签,如果有则进一步定位出保护线和标签所在的位置,我们采用基于Dropblock卷积神经网络的智能质检方法,图2是该方法的流程图.将待质检的图片作为输入,对图片做初次数据预处理,用Resnet进行初次识别,识别是否有分纤箱存在,初次识别结果如果无分纤箱,则输出结果为“无目标”,如果有分纤箱,则进行二次数据预处理,将预处理后的图片输入基于Dropblock的卷积神经网络进行二次识别,识别分纤箱上是否有保护线和标签并定位,输出结果即是否有保护线或标签及相应位置.
图2 基于Dropblock卷积神经网络的分纤箱智能质检流程
1.1 初次数据预处理
深度学习模型结果的好坏与数据集的好坏直接相关,好的数据集应该尽可能多地包含所应用的场景,但实际生产过程中所获得的数据往往不能完全包含所有的应用场景,为了获得更好的数据,往往采用数据增强技术[1].在初次数据预处理阶段,采用了旋转、缩放、色彩空间变化、平移、拼接的增强方式,增强了样本的多样性,还增强了初次检测模型的泛化能力,让数据集尽可能多地包含应用场景.
1.2 基于Resnet的初次识别
本文使用Resnet[2]分类网络进行初次识别,识别流程如图3所示,输入为(1,3,224,224)类型的图片,其中1表示每次输入图片的数量,3表示图片RGB通道数,224,224分别表示图片的长度和宽度.卷积过程选用的是3×3的卷积核,卷积参数选择的是输出通道为64、步长为2、填充为1.激活用的是leakly-rule[3]激活函数.池化过程选用的是3×3的池化核,池化参数选择的步长为2、填充为1.接着经过残差块运算和全连接运算,对是否有分纤箱进行识别,输出初次分类结果.
图3 基于Resnet的初次识别
1.3 二次数据预处理
本文采用mosaics[4]进行数据增强处理,如图4(a)所示,把图中的4张图片通过随机缩放、随机裁剪、随机排布[5]的方式进行处理,将处理后的4张图拼接成一张图,如图4(b)所示.该增强方式大大丰富了检测数据集,由于缩放、拼接方式的组合,丰富了样本中的小目标,让模型的鲁棒性更好.其次,直接计算增强后的图片数据,使得最小批次参数不需要太大,一个GPU(图形处理器)就可以达到很好的效果.
图4 数据增强
1.4 基于Dropblock卷积神经网络的二次识别
过拟合是神经网络训练过程中常见的问题,主要表现为模型未充分学习到最重要的特征,原因主要是待处理问题的复杂度低于所选用模型的复杂度;训练数据集和测试数据集的特征分布不一致;样本的噪声数据过大;模型在一些不重要的特征上分配了较大的权重.针对过拟合问题,常见的解决方法是通过基于Dropout[6-7]正则化的方式,使网络模型稀疏化,从而降低模型的复杂度,防止过拟合.
1.4.1 Dropout的不足
Dropout在全连接中通常会有很好的效果,因为全连接中每一个神经元都带有上一层所有神经元的信息,所以Dropout随机丢失神经元对本层的全连接影响不大,反而会使全连接有稀疏效果,防止了过拟合.但是使用Dropout的卷积神经网络,虽然特征图区域有元素被丢弃,但因为特征元素之间存在空间上的语义信息相关性,这种操作并不能有效激励网络学习剩下的特征图区域的语义特征,从而影响识别效果.
1.4.2 引入Dropblock 的卷积神经网络
针对Dropout的不足,本文引入了Dropblock[8-10]的正则化方法防止模型的过拟合,提升模型的验证精度.Dropout与Dropblock对特征元素的丢失方式如图5所示,图5(a)代表Dropout,图5(b)代表Dropblock.从图中可以看出Dropout丢失特征元素的方式为随机丢失.Dropblock与Dropout相比,在丢失相同个数的特征元素情况下,Dropblock表现为在某一有效区域按块的方式丢失元素,这种丢失方式,能够有效地分离特征元素之间存在的语义信息相关性,对Dropout在卷积中应用的缺点进行了有效的改进.
图5 特征元素丢失对比图
1.4.3 Dropblock算法
Dropblock模块有2个主要参数,block_size和γ,其中block_size表示Droblock块大小,当block_size=1,Dropblock退化为传统的Dropout,block_size可以取3,5,7.γ表示Dropblock丢失每一个像素的概率,也就是伯努利函数的概率,根据文献[8],γ表达式如下,其中keep_prob为Dropout中保留每一个像素的概率,feat_size为特征图的尺寸.
1) 该算法的约束条件是Dropblock和Dropout丢失的元素相等.
3) Dropblock丢失元素的个数与Dropout丢失元素的个数一致,只是丢失方法有所改变.
4) 为了保证丢失的block块不超出原始图像,需要先设置一个丢失的有效区域,如图6中绿色的区域,也就是原始图减去block块并加1,即(feat_size-block_size+1),取特征图的中间部分.
5) 图6中红色的“×”表示根据伯努利函数的概率,在有效区域内选择出的丢失中心点,并根据block_size大小确定丢失区域.
8) 化简得到上面γ表达式.
1.4.4 Dropblock法实现流程
该算法实现流程如下:
1) 输入激活后的特征图及block_size,γ和mode 3个参数,mode代表两种模式,一种是训练模式,一种是推理模式.
2) 如果是训练模式就进入第3步,如果是推理模式就直接返回特征图,不执行Dropblock操作.
3) 对给定的γ,使用伯努利函数对生成的随机数mask矩阵进行丢失,得到初始的mask.
4) 对上一步得到的mask进行最大池化操作,得到最终需要使用的mask,如图7.
5) 输入矩阵和mask矩阵相乘,得到输出矩阵.
6) 将上一步的输出矩阵进行归一化操作.
图6 Dropblock掩码采样
图7 基于Dropblock的mask特征图
1.4.5 基于Dropbock卷积神经网络二次识别的网络结构
本文使用的整体网络结构如图8所示,分为三部分,第一部分为主干网络,第二部分为连接网络,第三部分为预测网络.主干网络主要作用是提取图片的特征,我们采用cspdarknet53[11-12]主干网络并在每个卷积过程中引入Dropblock正则化模块,残差结构为1,2,8,8,4,往后采用了SPP[13](空间金字塔池化)使特征层更具多样性.连接网络主要作用是使通道融合和像素融合更加充分,此过程中,本文还引入PAN[14]结构,通过自底向上的特征融合,传达强定位信息,让信息更加充分融合,在连接网络中,同样每个卷积加入Dropblock模块.最后是预测网络,主要作用是获得网络之前提取的特征,推理出最后的预测结果,这里使用的是FPN[15-16](特征金字塔网络)进行多尺度输出.
图8 基于Dropbock卷积神经网络二次识别的网络结构
2 实验设计
2.1 实验设置
2.1.1 实验环境
本文所有的实验均在同一实验环境下进行.本文所采用的硬件和软件配置如下:Ubuntu 18.04操作系统,Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz处理器,NVIDIA Tesla V100显卡,以及PyTorch 1.7,Cuda 11.0通用并行计算架构.
2.1.2 参数设置
本文的参数设置主要分为两部分,第一部分是基于Resnet初次识别的参数设置,第二部分是基于Dropblock神经网络二次识别的参数设置.
第一部分,本文将分类类别class设置为2(对应有无箱体两种类型).在训练过程中,将一次训练所选用的样本数量Batch设置为128,迭代次数epoch设置为1000,学习率设为0.0015,优化器选用adam.
第二部分,将配置文件中的类别数量class设为2(对应保护线和标签两种类型),输入图片的形状为(3,608,608),其中3代表RGB通道数,后两位分别代表图片的长和宽.输出图片的形状分别为(3,76,76),(3,38,38),(3,19,19),同理,3代表RGB通道数,后两位分别代表特征图的长和宽.在训练过程中,将一次训练所选用的样本数量Batch设置为32,迭代次数设置为300,初始学习率设置为0.003 2,动量设置为0.843,权重衰减率为0.000 36,训练数据集和测试数据集的比例划分为8∶2.此外,在此项目中使用了迁移学习,训练的时候,冻结了主干网络的权重,以便快速提取到网络的有用特征,加快网络的收敛速度.
2.2 评价指标
本文选取的评价指标有准确率(Precision)和召回率(Recall),分别用Precision和Recall表示,准确率和召回率的定义如下:
TP是分类器认为是正样本而且确实是正样本的例子,FP是分类器认为是正样本但实际上不是正样本的例子,Precision的意义就是分类器认为是正类并且确实是正类的部分占所有分类器认为是正类的比例.
同样,TP是分类器认为是正样本而且确实是正样本的例子,FN是分类器认为是负样本但实际上不是负样本的例子,Recall的意义就是分类器认为是正类并且确实是正类的部分占所有确实是正类的比例.
3 结果分析
3.1 评价指标对比分析
本文用了6 000张测试图片,在IOU(重叠度)值为0.5的情况下,用了3种方法进行比较,结果如表1所示.
表1 实验数据集(IOU=0.5)
从上表可以看出,在准确率方面,使用原始卷积的准确率为89.3%,使用Dropout法的准确率为90.1%,使用Dropblock法的准确率为94.5%,较原始卷积和Dropout方法分别提高了5.2%和4.4%;在召回率方面,使用原始卷积的召回率为88.6%,使用Dropout法的召回率为89.2%,使用Dropblock方法的召回率为94.3%,较原始卷积和dropout方法分别提高了5.7%和5.1%.从整体上看,Dropblock法比Dropout法和原始卷积在这两项评价指标上都有较好的提升.
3.2 典型结果展示
本文选取了具有代表性的两张较复杂场景图片的识别结果进行对比,这两张图片都是实际生产过程中从前端传回后端进行质检的照片.图9中被识别的目标有两条保护线,通过3种模型识别的结果来看,采用原始卷积法和Dropout法未能检测出保护线,如图9(a)和图9(b)所示,采用Dropblock法的模型则检测出了保护线,如图9(c)中的红框所示.图10的特点是成像拍摄距离较远,目标在图片中表现为小目标,同时此图片具有两种类型的待检测目标.通过3种模型检测的结果来看,原始卷积法不能检测出目标,如图10(a)所示,Dropout法只能检测出标签类型的目标,如图10(b)中黄框所示,而采用Dropblock法则将保护线和标签两个不同类型的目标都识别出来,如图10(c)中的红框和黄框所示.
图9 3种模型识别目标结果
图10 3种模型识别不同类型目标结果
4 结束语
本文提出了一种基于Dropblock卷积神经网络的分纤箱智能质检方法,对分纤箱上的保护线和标签进行智能质检.实验结果表明,该方法能有效识别出分纤箱上的保护线和标签,并准确定位出目标位置,与原始卷积法和Dropout法相比,识别率均有较大提升.