刘业鹏,吴童桐,贾雪健,翟永杰
(华北电力大学 自动化系,河北 保定 071003)
随着智能电网和电力系统自动化的发展,计算机视觉技术越来越多地应用在电力设备的智能巡检和在线监测中,目标设备的识别和定位成为检测技术的关键。输电线路基本部件包括导线和防震锤、绝缘子、均压环、杆塔等。据国家电力公司统计,因为绝缘子断裂引起的事故目前已成为电力系统故障率的第一位[1]。
目前在输电线路部件的故障诊断领域,目标如何精确定位成为了学者们研究的热门问题[2],以其中研究最多的绝缘子的目标定位问题为例,可以分为以下3类方法:
1)基于轮廓提取的方法。文献[2]基于非下采样轮廓波变换提取绝缘子轮廓;文献[8,9]通过检测图像中的圆形轮廓来对应绝缘子片的圆形结构;文献[3]采用主动轮廓模型算法检测绝缘子轮廓。以上方法在拍摄视角固定的情况下能得到理想的定位结果,但巡检图像的拍摄角度和拍摄距离的多变性导致了绝缘子轮廓的不确定性,使得轮廓提取算法的准确度降低。
2)基于图像匹配的方法。文献[4,5]采用角点匹配方法,通过检测图像中Harris角点进行绝缘子匹配定位,该算法在纯净背景下的准确性高,但存在杆塔这类具备相似角点特征的伪目标时容易误检。
3)采用深度学习的方法。文献[6,7]采用的faster R-CNN的方法[8]对输电线路部件进行检测。该方法较传统的图像处理方法而言在目标检测方面有了很好地提高,但是不适用多尺度下的巡检图像检测。
目前的各种研究可以发现,传统的轮廓提取、图像匹配方法不适用于复杂背景下的电力小部件检测。在2016年刘伟博士提出了基于SSD[9]的目标检测的方法,该方法具有检测速度快、识别精度高等优点,SSD在公开数据集VOC上的检测精度已经高于其他几类深度学习方法[3]。但是直接利用SSD来检测电力巡检图像效果并不是很好,主要是由于巡检图像中目标尺度变化比较大,SSD对小目标检测精度不高,导致最终效果不是很理想。
因此,本文针对以上问题,提出了FP-SSD模型,该模型加强了深度学习网络中上下层结构的联系,增强了对于浅层信息的利用,从而提高了网络对于多尺度图片的目标检测能力。
在深度学习的各种方法中往往会对训练样本进行样本扩充以得到更好的训练效果。Faster R-CNN[2]对训练样本扩充的方法是按照50%的概率对图片进行水平翻转。SSD[1]中作者除了使用水平翻转外,还按照50%的概率对训练图片进行随机裁剪,论文中提到这样的操作可以更好地提高训练的效果。
本文参考了SSD的样本扩充中对样本进行裁剪的思路,提出了一种自适应裁剪算法。该算法会根据训练样本中目标框占画幅的大小将小尺度的目标裁剪出来,这样扩充后的训练样本库能够提升检测的精度。
在制作训练样本集时,首先会根据目标占画幅的大小将样本分成3类:含大目标的样本、含中目标的样本、含小目标的样本。目标的大小定义为3个等级,小目标指的是占画幅5%以下,中目标指的是占画幅5%~12%,大目标指的是12%以上。本文将中目标以及小目标通过自适应裁剪算法处理以后得到新的增广样本,与原始图片一起进行水平翻转和亮度扭曲,最后的输出结果作为训练样本。
本文采用的巡检图片是有DJl的FC550拍摄采集的,图片尺寸为6000×4800,本文提出的自适应裁剪算法主要针对大图像中小目标数目较多的情况,将图片裁剪成一张或者两张小图片。裁剪后的图片作为扩充样本添加到训练样本库里面,这样的操作可以增强训练样本所包含的有效信息。
该算法的流程如表1所示,首先在图片中设置两个初始聚类中心K1,K2(图片的左下角和右上角),然后计算各个目标框Objecti的中心离两个初始聚类中心的距离distance1和distance2,通过比较这两个距离确定这些目标框离哪一个初始点更近,从而将所有目标框分成两类C1和C2。新的聚类中心由每一类的目标框的中心坐标的求均值所得。最后,通过衡量系数K是否大于设置的阈值来确定将原始图片划分成一张小图或者两张小图。
系数K的计算公式如下:
其中,distance是类C1和C2的距离,计算得到的系数如果小于所设的阈值就意味着目标分布的较为稀疏,需要分别以C1和C2的中心为裁剪小图的中心,将原图切分成2张小图;如果系数K大于阈值,则意味着目标框分布较为密集。因此,将原图切分成1张小图。
SSD算法框架[2]采用VGG-16模型作为基础网络结构,本文在保留原有的SSD300[2]的目标检测基础网络上,特征提取网络换成了resnet-101。针对原有的SSD模型在小目标识别上精度不够高的问题,本文参考了FPN特征金字塔的形式,对上下文的信息进行了一个融合。其中,将conv2、conv3、conv4进行了特征融合,融合后的特征层是FP_Conv_1,然后该层和SSD添加的Conv5_X、Conv6_X、Conv7_X、Conv8_X、Conv9_X作为预测的特征层,分别再通过3×3卷积核来进行偏移和类别的预测,FP-SSD结构如图1所示。
本文选择融合Conv2_X、Conv3_X以及Conv4_X组成特征金字塔,是为了改善原有结构在低层信息上利用不足的缺点。本文融合了这3个特征层进行实验,其中特征图的最大尺度为75,最小尺度为20。考虑到电力部件中大部件的数量也有很多,后面高层的默认框比较大,有利于大目标的检测。因此,未对后面高层的特征图进行信息融合处理。这样的一个多尺度的特征融合能够有利于多尺度目标的检测。
FP_Conv_1特征层由Conv2_X、Conv3_X、Conv4_X三层的特征图融合而成,其中高层Conv4_X的特征图通过反卷积的操作扩大了特征图的尺度[5],反卷积的计算如公式(1)所示,输入尺寸是Finput,输出尺寸是Foutput,步长为s,卷积核大小为k。本文中使用卷积核大小为2×2、步长为2进行上采样。低层Conv2_X是通过3×3的扩张卷积计算而来,之所以选择扩张卷积是因为扩张卷积可以保存较大的感受野,遗失较少的信息。
本文在实验的过程中选取的dilation值为2,步长为2,pad为2。因此,将特征图的尺寸缩小到和中间层一样大小。
图1 FP-SSD结构图Fig.1 FP-SSD Structure diagram
表1 阈值Q对检测精度的影响Table 1 Effect of threshold Q on detection accuracy
网络训练时的损失函数还是依据SSD的结构由两部分组成,第一部分是回归位置的损失,一部分是分类损失,总的损失函数可以表示为:
其中,N为默认框与真实框相匹配的个数,是权重因子,一般设置为1;c为每一类的置信度;l和g分别为默认框和真实框的参数,包括中心位置坐标和宽高。为分类置信度损失,使用多类别Softmax损失,用来回归bounding boxes的中心位置以及宽高,使用的Smooth L1计算。
本文的样本集有训练图片18000张,测试图片10000张。检测输电线路中的5类目标,包括绝缘子(insulator)、杆塔(Tower)、防震锤(damper)、均压环(ring)、间隔棒(spacer)。
表2 不同方法的检测精度Table 2 Detection accuracy of different methods
检测在型号为GTX1080的GPU上进行,使用的深度学习框架是Caffe,批处理大小设置为8。训练过程中判断正负样本的IOU阈值为0.5。采用目标检测精度mAP作为评价指标。
本文在图像预处理阶段加入自裁剪算法,对训练样本进行相应的裁剪操作,根据标注后的图像中目标的分布情况将训练样本裁剪成一张或者多张图。
其中,需要比较系数K与阈值Q的大小,确定裁剪成几张小图。因此,Q值的大小对检测精度有一定的影响,实验采取的基础网络是resnet101+SSD,实验结果如表1所示。
通过表1可以发现检测精度随Q的增大先增后减,原因是当Q增大时会裁剪出更多的小图,但是由于目标中存在各种尺度的物体都存在。因此,不是Q越大检测精度越高。最终实验结果显示阈值Q取0.24时结果较优。
为了验证FP-SSD模型的特征金字塔结构对检测效果的影响,本文分别测试了5类部件的mAP值,实验结果如表2所示。
实验结果可以看出,对于均压环这类偏小的部件,FP的结构能够有效提升检测精度大约6%;对于绝缘子、杆塔这类尺度比较多的目标检测精度大概可以提升3%;但是对于防震锤、间隔棒检测精度提升不高,因为这两类物体体积最小,在巡检图像中主要以小尺度存在较多。实验结果证明,该方法对于多尺度的目标提升效果较为明显,对于尺度比较单一的目标提升效果一般。
实验结果表明,样本扩充的办法对于模型精度提升有效,当采用FP-Resnet+SSD结构时,扩充样本前后精度能提高0.7%;将特征提取网络由VGG16替换成Resnet后,精度能提升3.2%,这也说明网络深度的增加对于特征的提取效果非常明显;采用FP结构可以有效结合上下文语义信息,能够提升0.9%的精度。
本文针对实际航拍图像中多尺度目标检测方法进行研究,提出了FP-SSD算法,在原始SSD目标检测算法上进行了两个方面的改进:
1)对训练样本进行处理,采用自适应裁剪算法裁剪训练样本,以适应单张图片中不同尺度的目标,同时扩充训练样本数量。
2)在整体网络结构中加入特征金字塔网络,实现了上下文的特征融合。
针对实际巡检图像的应用研究表明,本文所提出的目标检测方法,较原始SSD算法而言,基于自裁剪算法的扩充样本方法提升精度0.6%,加入FP网络能够提升0.9%。在小尺度目标检测方面精度有了明显的提高,总体提升6.1%;同时,对大尺度目标保持着良好的检测效果,说明本方法对于多尺度目标检测有着更好的适用性。