基于轻量级卷积网络的复杂背景下接触网绝缘子识别
2022-07-04赵大贺姚晓通
赵大贺, 姚晓通
(兰州交通大学电子与信息工程学院, 兰州 730070)
0 引言
接触网绝缘子是指部署在铁路两边的电线杆上的绝缘子,该类绝缘子所连接的输电线路是负责为铁路所通过的列车提供必要电力的。其状态的好坏影响着铁路供电系统能否安全稳定运行。然而,由于接触网铺设高度相对较低,常年暴露在大气环境中,更易受到各类因素影响,形成污垢,造成绝缘性能下降[1]。
随着计算机视觉技术的突飞猛进,利用其进行绝缘子检测成为了新的发展趋势。何洪英等提出了使用直方图波谷分割方法,对不同湿度下绝缘子红外图像进行了分割提取[2];吴文海等提出了基于近义词分配的绝缘子识别与分类[3];仝卫国提出多特征相结合的信息融合方法对绝缘子进行识别[4]。以上传统算法在识别绝缘子时没有考虑复杂背景,而接触网绝缘子由于铺设较低其背景往往非常复杂。姚建刚等利用神经网络与温度特征对绝缘子进行识别[5];陈春玲等利用Faster R-CNN对绝缘子进行识别[6];朱有产等提出了改进Mask R-CNN的绝缘子目标识别方法[7];苏超等利用SSD算法对绝缘子进行识别定位[8];邹汉凌等提出基于Residual-FPN优化的航拍绝缘子目标识别[9];翟永杰等提出了改进区域候选网络对绝缘子识别进行了研究[10]。以上深度学习方法的传统卷积神经网络虽然有良好的特征提取能力,但是网络模型复杂、参数较多、计算量较大、检测耗时较长,无法较好地适用于性能有限小型移动端嵌入式等平台[11],很难通过视觉对绝缘子清洗机器人进行实时牵引控制。
最近几年,关于神经网络的技术日渐成熟,大量新的技术方法被提出。GoogLeNet网络通过增大网络规模(包括深度和宽度)来提高网络性能[12]。VGG通过使用小尺寸的卷积核应用于计算机视觉[13]。SqueezeNet采用1×1卷积核,有效减少输出特征图的通道数[14]。Google 推出轻量级卷积网络MobileNet[15],大幅度减少网络参数和计算量,精度几乎不下降,可应用在ios和Android等移动平台[16]。Inception v3方法将一个二维卷积拆分为两个相对较小的卷积,从而可以有效降低参数量,提升计算速度[17]。
本研究针对当前接触网绝缘子识别面临的难题与当前深度学习发展的科技前沿新成果,提出了一种用SSD-MobileNet模型对复杂背景下接触网绝缘子进行识别的方法。该模型以MobileNet-v1为网络主干对复杂背景下的接触网绝缘子进行特征提取,并以SSD目标检测器对其进行识别。其相较于传统网络模型参数较少,计算量较小,在轻量化和实时性方面有较大优势。
1 模型的构建
1.1 SSD模型简介
SSD(Single-Shot Multibox Detector)算法利用不同卷积层的feature map进行综合,SSD网络主要的设计思想是对目标特征分层提取,并依此进行边框回归和分类。
SSD的网络分为6个stage,每个stage都能学习到一个特征图,然后在每个特征图上进行边框回归和分类。SSD使用VGG-16[18]作为基础主干网络(conv4_3, fc_7),并在VGG-16基础网络上添加了特征提取层。
传统的很多目标识别算法对小目标的检测能力差,为了保证神经网络对小目标有很好检测效果,SSD模型除了在最终的特征图上做目标检测之外,还在之前选取的5个特征图上进行预测。SSD网络结构的第一个stage是VGG16的前5层网络,再将VGG16中两个全连接层fc6和fc7转化成两个卷积层并且将fc_7作为第2个stage,在以VGG16为主干网络的基础上,SSD网络继续增加了Conv8、Conv9、Conv10和Conv11 4个网络层,用它们来提取更高层次的语义信息同时作为第3、4、5、6个stage。
default box数量是SSD算法计算复杂度的关键。具体来说conv4_3、conv8_2、conv9_2卷积层每个feature map cell产生4个default box, 而fc7、conv6_2、conv7_2卷积层产生6个,一共产生38×38×4+19×19×6+10×10×6+5×5×6+3×3×4+1×1×4=8 732个default box。default box是目标检测的候选区域, default box的数量越多,计算所需要的时间越长,即计算时间与default box的数量近似成正比。
1.2 MobileNet网络模型简介
MobileNet为Google推出的一款高效的移动端轻量化神经网络模型,其核心是深度可分离卷积(Depthwise Separable Convolution, DSC)[19]。DSC是将传统的标准卷积分解为一个深度卷积(depthwise convolution)和一个1×1的卷积(pointwise convolution)。图1中,(a)表示传统的标准卷积,(b)表示DSC的深度卷积部分,(c)表示DSC的1×1的卷积部分。
图1 标准卷积与深度可分离卷积原理图Fig.1 Schematic diagram of standard convolution and depth separable convolution
假设输入特征图大小为DF×DF×M,输出特征图大小为DF×DF×N,卷积核大小为DK×DK。传统卷积操作过程如公式(1)所示:
(1)
传统卷积的计算量:DK×DK×M×N×DF×DF。
DSC的深度卷积操作过程见公式(2):
(2)
其中深度卷积计算量为:DK×DK×M×DF×DF,1×1逐点卷积的计算量为:M×N×DF×DF,DSC的计算量为二者之和:DK×DK×M×DF×DF+M×N×DF×DF。
DSC的计算量与标准卷积的比为
(3)
MobileNet主要使用的卷积核尺寸为3×3,即DK等于3,通过公式(3)的结果可以看出采用深度可分离卷积可以将计算量减少8到9倍,大幅度提高了计算的效率。
由于大量使用1×1的卷积,用这些少数的乘加运算来定义简单的网络是不够的,确保这些操作有效是非常重要的。实例化非结构稀疏矩阵操作除非有一个非常高的稀疏度,否则不一定比稠密矩阵操作更加快速。该模型将计算量集中在1×1卷积中。通常卷积由GEMM来实现,但是要求一个im2col即在内存中初始化重新排序来映射到GEMM。而1×1卷积则不需要内存的重新排序,并且能直接用GEMM方法实现,大幅度提升了计算效率,因此是最优化的数值线性代数算法之一。MobileNet中有大约95%的乘加运算来自于1×1的逐点卷积上,并且同时也占总参数量的75%左右,见表1。
表1 每种层的计算量和参数占比Table 1 The amount of calculation and the proportion of parameters for each layer
图2是传统卷积(a)与MobileNet中DSC(b)的结构对比。Depth-wise卷积和1×1卷积后都增加了BN层和ReLU的激活层。
图2 传统卷积(a)与深度可分离卷积(b)结构图Fig.2 Traditional convolution (a) and depth separable convolution (b) structure diagram
MobileNet整体见表2,将深度卷积、逐点卷积各算一层,一共含有28层。
表2 MobileNet的整体结构Table 2 MobileNet body architecture
MobileNet提出了宽度因子α(控制通道数)和分辨率因子ρ(控制分辨率)两个超参数。加入这两个超参数后的DSC的计算量为
DK×DK×αM×ρDF×ρDF+αM×αN×ρDF×ρDF
(4)
表3 宽度因子对模型的影响图Table 3 The influence graph of the width factor on the model
如表4所示,在imageNet数据集上使用DSC相较于标准卷积准确率仅下降1%,但在计算量和参数量上大幅度减少。
表4 深度可分离与完全标准卷积对比Table 4 Depthwise separable vs full convolution mobileNet
1.3 网络模型改进
SSD算法中将VGG16作为神经网络的主干,VGG16为常规卷积网络。为了使模型轻量化高效率,本研究采用MobileNet-v1网络结构的conv1~conv13来替换VGG16成为主干网络,其余部分仍采用SSD的结构。将两个部分各自的优势整合到一起,构成SSD-MobileNet-v1模型,见图3。
图3 SSD-MobileNet网络结构图Fig.3 SSD-MobileNet network structure diagram
SSD损失函数分为两个部分,整体损失函数公式如下:
(5)
其中,Lconf(x,c)为类别置信度损失函数,Lloc(x,l,g)为位置损失函数。
绝缘子的对应搜索框的位置损失函数为
(6)
绝缘子的类别置信度损失函数为
(7)
1.4 系统设计改进
SSD-MobileNet识别精度优异,参数较少,计算量相对少了很多,为轻量级模型。因此其计算对硬件要求很低。有了以上方面的技术支撑,我们可以将SSD-MobileNet安装到树莓派等移动端嵌入式平台,这些平台体积小功耗低。然后采集数据并对其进行预处理,将数据加载到SSD-MobileNet模型中训练出性能达到要求的权重模型。进而将训练好的权重模型移植到树莓派等移动端嵌入式平台,使其具备相应的识别功能。其过程见图4。其中模型训练模块在性能较好的PC端完成。
图4 程序设计流程图Fig.4 Programming flowchart
小型无人机价格低廉,但其体积、电量都有限,很难安装体积较大或功耗较高的计算机设备。我们可以将安装有SSD-MobileNet的移动端嵌入式平台应用在小型无人机上,通过无人机对复杂背景下的接触网绝缘子进行高效识别。
由于该模型具有很快的计算速度,具有实时性,因此可以将其应用在工业接触网绝缘子清洗机器人中,进行实时视觉引导,引导具有清洗功能机械臂对接触网绝缘子进行清理。在一定程度上提升了工作效率。
相较于传统模型计算速度慢,难以进行实时性的操作,将SSD-MobileNet模型应用到接触网绝缘子识别使这一问题得到一定程度的解决。同时在一定程度上解决了接触网绝缘子处理工程上效率和成本的部分难题。
2 实验及结果分析
2.1 实验环境及搭建
本设计的实验环境采用Windows10操作系统,Python3.6开发语言,CPU为core i7 6820HK,GPU显卡为NVIDIA GTX 980m,内存为16GB,并且进行了对CUDA 10和CUDNN进行了成功配置,即可用GPU加速运算该算法。本研究采用Facebook推出的PyTorch深度学习框架、MobileNet-v1深度可分离卷积的轻量级卷积神经网络结构以及SSD目标检测器。
2.2 数据预处理
在复杂背景下对接触网绝缘子的图片采集了2 000张左右,本文考虑到像素会影响训练,因此对采集到的像素为1 400×2 100的图片进行像素缩减,缩减至原来的1/2。本实验采用labelImg工具对图片进行标注制成数据集。通过数据集扩充程序将带有标签的数据集进行小样本数据集增广处理得到6 000张左右复杂背景下的接触网绝缘子图片。本实验将数据集的约80%作为训练集,剩余部分作为测试集。
2.3 实验设置
深度学习依赖于高效率的计算能力和大规模的数据集,由于实验数据集是有限的,为了提高网络识别性能需要对MobileNet-v1进行特征提取训练。所以本实验在官方给出的预训练模型的基础上训练自己的数据集,大幅缩短训练时间。
实验采用分段训练,在整个模型训练过程中,在多个训练节点调整学习率的大小,减少模型训练过程中的损失。学习率的设置采用了warm up预热学习率的方法[20],因为在训练刚开始的时候,模型的权重是随机进行初始化的,此时若使用一个较大的学习率,有可能会带来模型的不稳定,使用warm up的方式,使开始训练的几个批次内学习率较小(如0.001)。模型在较小学习率的预热训练下,可以趋于稳定,等模型相对稳定之后,再选择预先要使用的学习率(如,0.005)进行训练,加快其收敛速度,让训练效果更好。其中动量参数momentum设置为0.9,整体训练过程采用随机梯度下降算法(SGD)优化整个网络模型。
2.4 实验结果
经过大约50 000步的训练,损失函数已经收敛,见图5。当训练进行到40 000步左右时,损失函数值已经趋于平稳,此时模型的性能趋于稳定。使用测试集对训练好的模型进行测试,其在测试集上的精度达到了90.59%,并且其在测试集上的平均耗时仅为0.039 9 s,见图6。
图5 损失函数图Fig.5 Loss function graph
图6 测试集测试结果图Fig.6 Test results of the test set
2.5 模型对比
本实验结果评价指标采用平均精确度AP(Average Precision)和平均检测耗时Mean Time。其中检测时间即为图像加载到模型后经卷积神经网络和检测器到输出结果所消耗的时间。平均精确率可以反映出一个模型的基本性能,而检测耗时能反映出其实时性,也可侧面反映其计算量。
将常规卷积的SSD模型与SSD-MobileNet模型的实验结果进行对比,SSD模型与SSD-MobileNet模型均有较高的精确度,但检测耗时方面,后者具有明显优势,见表5。
表5 模型对比图Table 5 Model comparison chart
其中,SSD-MobileNet模型相较于SSD模型精确度仅下降了1.6%左右,但其识别耗时为SSD模型的约4/5,速度显著提升。检测耗时仅为40 ms左右,对于绝缘子识别设备能够较好地对其他设备进行实时牵引控制。SSD-MobileNet模型相对于传统模型其模型更轻量,速度更快,能更好地用于硬件有限的小型设备,因此其在复杂背景下接触网绝缘子识别技术中降低成本,解决实时性视觉引导问题有着重要的意义。
2.6 测试效果
本研究根据工程作业的实际情况,除复杂背景外光线和遮挡也会对识别绝缘子产生一定的影响。所以研究对3种常见情况下的接触网绝缘子进行效果测试,这3种情况下的绝缘子均在错综复杂的背景中,测试效果见图7。其中图(a)和(b)为在较暗光线下的测试效果,图(c)和(d)为在较强的阳光下的测试效果,图(e)和(f)为绝缘子在障碍物部分遮挡下的测试效果。
图7 测试效果图Fig.7 Test effect chart
根据本实验的测试效果来看,在不同难度的条件下绝缘子均能在复杂背景中被识别出来。反映了SSD-MobileNet模型应用于复杂背景下接触网绝缘子识别具有可行性。
3 结语
针对传接触网绝缘子识别算法识别效率低,使设备难以在工程中进行实时性视觉引导,致使工程效率难以提升。本研究结合当前接触网绝缘子识别效率面临的难题与当前深度学习发展的科技前沿新成果,提出了将SSD-MobileNet轻量级模型应用于复杂背景下接触网绝缘子识别。相对于传统卷积模型,在精度几乎不变的情况下,大大地提升了系统处理数据速度,进而大幅度降低了识别时间,使之能广泛应用在计算能力有限的嵌入式系统中,这非常顺应现如今的工程和工业的实际情况。该模型使设备的使用能够灵活多变,以应对各种复杂多变的使用环境。初步解决了当前识别效率的难题。但是根据实验结果,其精度相较于SSD模型略有下降,网络结构部分仍有较大的提升空间,因此在今后的实验会对该部分进行进一步的研究。