基于深度学习的智能绝缘子识别技术

2020-10-28 11:30罗浩天严智敏宋晓雪
科海故事博览 2020年4期
关键词:候选框绝缘子卷积

罗浩天 罗 锦 严智敏 宋晓雪

(1.西华大学 计算机与软件工程学院,四川 成都 610039;2.西华大学 电气与电子信息学院,四川 成都 610039)

1 基于深度学习的智能绝缘子识别技术

1.1 研究背景及意义

在输电系统中,输电塔和高压线是其中主要的部分。在输电塔上,绝缘子是维修的关键部位。绝缘体通常由陶瓷或玻璃制成,以支撑导体并防止电流返回地面。然而,由于野外环境的多变,绝缘子极易损坏,常见的原因有污秽,高温,湿润,尘土等。若发生故障则不能保证电力系统的正常运转。

通过深度学习技术的应用,可以实现在复杂背景下针对绝缘子串的识别分割及绝缘子自爆故障的检测,有利于保证电力系统的安全稳定的运转。

1.2 研究内容和技术路线

1.2.1 研究内容

电力系统中的传输链路主要由架空输电线路实现。输电塔由若干部件组成:杆塔、电线、绝缘子、避雷针、开关、电缆、及其连接装置。内容繁多,过程复杂。为了有效完成对电力系统的检查,采用无人机设备对其进行全方位的拍摄。以完成绝缘子自爆的检测。利用深度学习技术对无人机采集到的图像进行分析处理,完成相应的任务要求。

1.2.2 技术路线

本文通过无人机拍摄到的绝缘子图片,依据现有国内外对绝缘子的检测和自爆缺陷的识别发展现状,基于深度学习技术对获得的图片进行预处理、分割和识别,并检测出自爆绝缘子的位置。其中分为:

a) 数据集的生成。本文使用官方的测试数据和Github公开的数据集作为绝缘子图像数据集。

b) 绝缘子图像预处理。为增加数据集的图片量,采用旋转的方式将现有图片进行变形。为保证图片的大小一致,通过缩放方式将图片统一大小,为之后的深度学习提供数据集。

c) 绝缘子的分割。利用FCN算法,利用制作好的数据集,训练网络。用测试数据生成的测试集进行测试,最后通过调参提高分割的成功率。

d) 绝缘子连通域检测。

e) 绝缘子自爆的识别。通过Yolov3对绝缘子的自爆故障进行定位,流程图如下:(如图1)

2 绝缘子图像数据的采集和预处理

2.1 采集数据

因为电路中的绝缘子通常建立在环境恶劣的地方,没有工具很难到达。大部分由无人机捕获和存储。无人机的任务包括自主设定计划、执行任务、对地面的监控,并且要对无人机的图像进行处理。无人机自动总要目标的检查、飞行控制、图像捕获和存储等一系列操作,最终获得较好的绝缘子状况。

2.2 图像预处理

对图像进行一定的提取准备,可以减少噪声,使图像特征更明显,使得图像蕴含的信息得到较好的保存,从而提高后续处理的准确度。[1]

2.2.1 图像切分

现有原始图片分辨率大致为7360×4912-3632×2624,每张图片大小大约都在7MB上。这些数据保存会耗费一定的储存空间,并且现有分辨率对进行图像处理和深度学习都过大,会大大增加计算的时间。因此本文采取先将采集到的750张图片切分为640×480大小,并打乱顺序,随机分布,减少原图过大带来的存储空间和后期计算耗时问题。

2.2.2 基于Keras的图像变换

Keras封装了很多高层的神经网络模块,例如全连接层(Dense),卷积层(Conv2D),长短时记忆模型(LSTM)等等。利用Keras框架进行数据增强,进行上下,镜像翻转,以及随机修剪、色彩抖动、平移变换、尺寸变换,新增样本图片,将这些图片作为后续语义分割的训练集。

图1 总流程图

图2 RCN结构流程图

3 基于语义分割的图像处理

3.1 神经网络算法介绍

3.1.1 R-CNN算法

CNN是Region-CNN的缩写。AlexNet 是卷积神经网络的一种,主要包含8层,其中前五层为卷积层,后三层为全连接层。虽然R-CNN有着较高的准确度,但是它的识别效率较低,主要原因是它要提取说以的特征,计算的冗余量很大。所以将采用Fast-RCNN模型。Fast-RCNN在原来的基础上新增了回归性,将融合的地方化成一个模型。

下方为Faster RCNN结构流程图:(如图2)

3.1.2 FCN算法

FCN是SHELHAMER等在现有用于分类的CNN结构基础上改造而成的,即将CNN原有的全 连接层改成卷积层。FCN是由卷积和反卷积组成,通过卷积和反卷积的过程,基于端到端学习,完成了对图像每个像素的分类,从而实现对整个输入图片的分割。卷积层(convolution layers)在FCN中主要承担着特征提取的功能。卷积输出的图像大小为其中,W为输入图片的维度;F为卷积核的维度;S为步长;p为padding 填充的像素数。使用激活函数来使得模型摆脱线性化。运算为:

3.1.3 BoxSup算法

BoxSup算法是指基于Box Supervision的弱监督图像语义分割。

3.1.4 模型建立

RCNN基本步骤为:

(1)通过对显著性进行校验获得2000个较为重要的位置ROI;

(2)将图片变化为合适的大小让它上面小,下面大,再使用卷积层获得特征;

(3)对于金字塔每个尺度的每个ROI,求图像在特征图中的映射,并且统一到相同的尺度;

(4)将结果输入到并行的两个全连接层,第一个层针对每个ROI区域的分类进行概率预测,第二个层针对每个ROI区域进行位置的偏移优化。经过Fast-RCNN对RCNN的优化,将分类和窗口放在了统一的框架里面,极大的较少了模型训练和图片测试的时间。

FCN的建立:

(1)在上文预处理中分好训练集和验证集后,对形成学习机进行如下步骤;

(2)构建FCN-8s模型:根据全卷积神经网络原理,在VGG-19(Visual Geometry Group,VGG)网络模型的基础上构建FCN-8s模型;

(3)训练FCN-8s模型:同时将训练集和验证集放入构建好的模型进行训练及验证,通过参数对比调优,完成模型的训练;

(4)FCN-8s模型预识别:将测试集输入训练好的模型,经计算后输出FCN-8s梯田影像预识别结果;

(5)DenseCRF模型:输入梯田预识别结果,构造Dense CRF模型二阶势函数,计算后输出本文方法的最终识别结果;

流程图如下图所示:(如图3)

BoxSup的训练流程:

图3 FCN模型建立流程图

(1)对图片的bounding box ground-truth使用,Multiscale Combinatorial Grouping (MCG)生成分割mask的候选,并优化label选一个与bounding box平均交集最大的mask作为监督信息。

(2)利用上述标签信息更新分割网络(FCN)的参数。

(3)基于训练出的语义分割网络对物体框中的前景区域进行预测,提升前景mask 的准确度,再循环训练FCN。

3.2 结论分析

FCN是由模型RCN改进而得到,用卷积替换了全连接,相比于R-CNN提高了10%左右;BoxSup的核心就在不断迭代,迭代次数越多越准确,但是耗时过长。所以最后选定使用FCN算法。下面为由FCN算法得到部分掩模图结果如下:

图4 掩模图一

图5 掩模图二

图6 掩模图三

4 基于连通域的绝缘子位置检测

4.1 算法介绍

4.1.1 基于Tow-Pass算法位置识别

Two-pass就是两边扫描,通过将图片进行两次扫描,就可以查找得到连通域并且标记它。在第一次扫描的时候,赋予每一个像素位置一个标签,扫描途中同一个连通区域的像素可能被赋予一个或者多个标签,因此需要将这些属于同一个连通区域但具有不同的标签的像素进行合并,记录其中相等的关系。在第二遍扫描中,将相等关系的标记像素归为一个连通区域并赋予相同的标签。

4.1.2 基于Seed-Filling算法位置识别

结合京港澳高速公路涿州(京冀界)—石家庄段改扩建工程,分析了地基处理前后,新老路堤表面工后沉降和横坡度的变化规律,研究了工后沉降作用下的路面结构层附加应力响应,计算了路面结构层的强度发挥率,并确定了应力控制层,制定了合理的差异沉降控制标准和经济有效的地基处理措施。主要结论如下:

种子填充法来源于计算机图形学,对于某个图形进行填充。选取一个前景像素作为种子,根据连通区域的两个基本条件将和种子相邻的前景像素合并到同一个像素集合中,最后得到该像素集合就是一个连通区域。

4.2 模型建立

本文利用的是二值图像的连通域标记法。二值图像是指只有黑和白两个状态的图像,由于其简单的模式,像素可以在空间上有很强的表现力。所以利用二值图像来分析连通域标记是非常方便的。根据现有的算法思路,对图片进行逐行的扫描,把每一行中连续的白色像素组成一个序列并进行标记,记下其中的起始点和终止点以及所在的行号。对于除了第一行中连续的标记以外,如果其他行的标记都没有于其之前的标记重合就标定为一个新的标号,如果仅与上一行中的一个标记有重合,则将上一行的标记赋予给它,如果与上一行的2个以上的标记区域有重叠的部分,则给当前的标记标上最小的标号,并将上一行这几个标记写入等价的对,说明是属于一个类型。将等价对转换为等价序列,每一个序列需要给一个相同的标号。将每个标号填入标记的图像中。

4.3 结论分析

通过对连通域进行标定,就可以得到不同的区域,并将其标定出来。通过程序将不同的颜色填充到不同的连通区域。可以将图像进行快速的标定。

5 绝缘子自爆位置识别

5.1 绝缘子自爆特征简介

玻璃绝缘子自爆的原因可分为产品自身质量原因与外部运行环境原因两类。其发生自爆的特征为:放射状,鱼鳞状,混合状。

5.2 算法

5.2.1 基于YOLO算法

Yolo V3作为最优秀的目标检测框架之一,与之前的RCNN、SPP-Net、Fast-RCNN、Faster-RCNN相比有了很大的进步。[3]Yolo的核心思想是使用整个画面作为输出,直接返回输出层中边界框的位置和类别。首先将一幅图像划分为7×7个网格单元,然后检测目标。如果目标中心落在网格中,网格负责预测目标。预测的候选框还需要预测一个置信度值,以确定目标是否存在。

如果有目标落在一个网格里,那么Pr(Object)值取1,否则取0。是预测的 bounding box 和实际的groundtruth之间的交并比。

在预测时,每个候选框的分类置信分数为预测目标的类别概率和bounding box预测的 confidence 信息相乘。

得到每个分类置信分数之后,设置阈值将得分低的boxes筛除掉,就得到最终的检测结果。

5.2.2 基于YOLO算法的改进

目前,大多数神经网络的改进趋势是向更大、更深层次的网络发展。一般来说,层次性更强的神经网络倾向于在现实世界中学习更多的细节以获得更好的结果。YOLO v2没有专注于加深神经网络的层次,而是采用了批量归一化、高分辨率分类器、多尺度训练等方法,在保持原有速度的同时提高了精度。整个网络采用Darknet-19网络结构,包括19个卷积层和5个最大池层,与YOLO相比,卷积运算量大大减少。YOLO v3采用 Darknet-53的基础网络结构,确保了速度并再次大大提高了精确度。

5.2.3 改进SSD算法

经典 SSD 算法的模型参数运算繁多,运行时占用内存大,为了在有限的计算资源平台上完成图像识别任务并做出及时的反应,对 SSD 算法进行“减重”势在必行。提出改进的深度可分离卷积网络作为 SSD 前端特征提取的基础网络,避免卷积运算过程所带来的过大消耗,降低算法运算复杂度,适应未来实时识别车型的应用需求。[4]

(1)深度可分离卷积。深度可分离卷积(depthwise sep arable convolution,DSC)公式如式(5)所示

式(5)中,G为输出特征图;K为卷积核;F为输入特征图;i,j为特征图像素位置;k,l为输出特征图分辨率;m为通道数.

深度可分离卷积把卷积分为深度卷积DW和点卷积PW两个阶段。DW是深度可分离卷积的滤波阶段,每个通道对应卷积核进行卷积操作;PW是深度可分离卷积的组合阶段,整合多个特征图信息,串联输出。

模型训练中,输入M通道大小为DF×DF的图像,经过DK×DK大小的卷积核进行卷积操作后,输出大小为DI×DI的N通道特征图。

对于一般卷积来说,滤波器大小为DK×DK,输入大小DF×DF为的M通道图像,参数运算量为DF×DF×DK×DK×M×N。而深度可分离卷积中特征提取只用了一个大小为DK×DK×1卷积核,运算量为DF×DF×M×DK×DK,组合阶段用了N个点卷积,运算量为DF×DF×M×N,因此总计算量为DF×DF×M×N×DF×DF×M×DK×DK。

式(6)中,深度可分离卷积使用3×3的卷积核,即DK取值为3。深度可分离卷积在准确率较小下降的情况下运算量减少近8到9倍。在对模型轻量化过程中,引入了宽度参数α压缩输入输出通道为计算量为:

(2)反残差模块。宽度参数通过压缩通道数进一步减少模型参数量,但是也造成了特征压缩的问题。而修正线性单元(ReLU)对于负输入,全部输出为零,会导致更多的特征信息丢失,深度卷积DW无法改变输入通道,这种情况下,特征提取效果不理想会导致目标检测准确率降低。

研究在 DW 之前引入反残差(inverted residuals,IR)模块,输入为h×w的k维特征图,将 ReLU 改为 ReLU6 以限制输出范围,输出h/s×w/s的k’维特征图。s 是步长,t 为扩张系数。首先用一个大小为1×1的扩展核把输入的低维特征图扩展到高维,在高维空间进行深度卷积,最后使用点卷积将特征提取结果降维映射到低维空间并用线性激活函数(linear)进行输出。对通道数扩增之后再收缩,提高了模型特征提取的能力,有效防止由于通道数较小时因非线性激活导致特征信息丢失的情况,可以提高目标检测准确率。结合反残差模块的深度可分离卷积SSD结构.

特征提取部分除第一层之外全部为结合反残差模块的深度可分离卷积,扩张系数t为6,并且在conv1,conv3,conv6,conv11中采用步长s为2的卷积,在 conv2,conv4,conv5,conv7,conv8,conv9,conv10 中步长 s 为 1,进行残差信息传递。

(3)区域候选框重构。对候选框与真实框做匹配来进行位置损失的计算。区域候选框与目标真实位置交并比大小是区分正负样本的条件,训练效果是由区域候选框决定的。

区域候选框参数公式如式(8)所示。

式(8)中,SK是第k个特征图的minsize参数,Smin是设计好的最小归一化尺寸,取值为0.2;Smax为设计好的最大归一化尺寸,取值为0.9;m是特征图的总数。

SSD区域候选框有不同的宽高比ar(aspect ratio),候选框的宽和高分别为对于宽高比为 1 的情况添加一个缩放为的候选框,使得每个特征图有6个。候选框,设定默认框中心为为第k个正方形特征图大小。SSD采用6个特征层来生成不同尺寸大小的候选框,假设特征图大小为n×n,在每单元点设置k个候选框,则单层特征图生成候选框的个数为n×n×k。本研究在SSD 中使用反残差模块的深度可分离卷积进行特征提取,并且删除了宽高比例为2和3的框。由上述可以看出,经典SSD选取6个特征图的k值分别为4,6,6,6,4和4,计算可以得到8732个候选框;改进后的SSD选取6个特征图的k值均为4,计算可以得到候选框2000个,与原SSD的区域候选框生成总数相比减少了约3/4。

5.2.4 GMM模型

(1)GMM 是一种预测概率密度的方法,利用多个高斯模型来表征图像的特点,尤其是像素点的特点。通过对特征进行及时的矫正,使其适应环境的变化。图片中的像素X=(x0,y0)不断的变为一个于像素相关的变化,那么假定t时间图像的像素为Xt,那么像素概率密度就是多个高斯模型概率密度乘以权重之后的和P(Xt):

将t时刻每一个新的像素值Xt与多个高斯分布根据式(1)配对:

若满足式(11),即值在高斯分布的2.5个标准差范围内,就是匹配,将其认定为背景,同时已经匹配的高斯分布更具公式(10)进行刷新。若不满足公式(11)则判定为不匹配,并且认定为前景中的目标,那么便更新权值

如果像素与多个分布都不满足条件的话,再对期望、方差和权进行更新,将多个高斯分布中最小的模型参数更新为:

式中:α作为学习效率;若t时刻Xt与分布进行配对,否则为0.

(2)GMM模型的改进:

i.GMM模型的自适应改进

在对运动的物体进行检测时,以往的GMM里K值是不发生变化的,这样就约束了算法在不同环境中的鲁棒性。如果环境中没有移动的物品时,那么不需要以往那么多的资源,只要观察一个最为重要的分布就可以观测到全局的分布。当环境中出现目标物体后,考虑的值会明显增多,这便需要利用较多的高斯分布来计算。在此基础上,改进出了不断适应环境的高斯算法。过程如下:

(1)先加入稳定数ρ来修改权和协方差的分布,并且0<ρ<1。当新得到的权很大、方差很小时,分布会变的更加重要,变得容易成为用于背景构造的元素之一,造成整个模型的质量下降,可能会影响对结果的准确率。为了让分布更加符合实际情况,所以添加了一个稳定系数ρ,如果检测图像的像素点与多个分布都不同时,则按以下规则重新产生下一个分布:

(2)当像素变得平稳时,说明没有运动物体,那么就不需要多的分布,因此可以于重要级较低的分布进行合并。在得到新的数据后,如果同一像素点的2分布i和j的均值之差小于阈值T时,说明此时2个分布重要性较低,产生了多余,可以把这2个分布融合,并且再次进行参数更新:

将重要性低的分布进行融合,达到提升运算速度,并且不降低准确率。

ii.GMM模型学习率的改进

当图像有变化时,模型进行更新的速度α对背景的更新有着较大的影响,表达了模型对当环境的适应度。通常根据学习的经验来调整学习率α,当α太大时,背景模型的变化速度比较快,结果会出现许多异常点;当α太小时,则图像中匹配的点很少,背景变化的速度会变慢。以往GMM设置单个学习率,无法使背景得到较快的跟新,所以提出在原来GMM的格式增加一个来达到控制效果。

依据学习率对结果的影响,设置了2级学习率。在图背景变化明显的位置设定一个较高的学习率,让模型加快收敛,并消除残留,就是对特点的区域设置学习率。在变化较慢的地方设定较低的学习率,就是对背景设置学习率,则背景更新率可分段设置为:

5.3 结果比对

对于SSD模型来说,它的速度一般,准确度较高,但需人为预设默认边框的最小值,最大值和纵横比例值。模型中最初的默认边框基础的大小和形状都不能直接通过模型学习得到也无特定的初始值,必须要人为手工设置。且卷积神经网络每个卷积层的特征图使用的默认边框各类参数不一,以至于调试参数过程需要长期积累经验。

即使pyramdial feature hierarchy这样的思路,对较小的特征RECALL效果还是不好,并没有达可以完全替代Faster RCNN。这是由于SSD使用conv4_3低级特征去检测小目标,而它的卷积层数少,特征提取也不完整。所以它的使用复杂,不适合在讲求效率的工程领域使用。

GMM和K-means还是有很大的相同点的。GMM中数据对高斯分量的响应度就相当于K-means中的距离计算,GMM中的根据响应度计算高斯分量参数就相当于K-means中计算分类点的位置。然后它们都通过不断迭代达到最优。不同的是:GMM模型给出的是每一个观测点由哪个高斯分量生成的概率,而K-means直接给出一个观测点属于哪一类。所以GMM的模型的迭代次数多效率低。同样不适合使用工程领域,同时它的准确度也不具有稳定性,在几次实验中忽高忽低,使它的数据充满可疑性。

对比以上三个模型,经过各项技术参数的比对,在对YOLOv3 进行 channel pruning 之后,模型的参数量、模型大小减少 80%,FLOPs 降低 70%,前向推断的速度可以达到原来的 200%,同时可以保持 mAP 基本不变(这个效果只是针对该数据集的,不一定能保证在其他数据集上也有同样的效果)。到此为止,YOLO算法的准确度已经达到70%远高于其他两个模型。YOLO3借鉴了残差网络结构,形成更深的网络层次,以及多尺度检测,提升了mAP及小物体检测效果。如果采用COCO mAP50做评估指标(不是太介意预测框的准确性的话),YOLO3的表现相当惊人,如下图所示,在精确度相当的情况下,YOLOv3的速度是其它模型的3、4倍。

6 总结与展望

6.1 总结

本文主要基于绝缘子图像数据研究不同的方法实现绝缘子“自爆”缺陷的检测。本文基于国家电网查找给出的图像,主要以无人机航拍的绝缘子图像数据为研究基本对象,将检测绝缘子“自爆”作为目标,对其中图像处理深度学习进行建立模型,结果比对,得出实验结果。对本文的研究内容和取得成果总结如下:

本文通过使用官方给出的数据以及在GitHub公开的数据集作为了图像的基础数据集,最早通过图像的预处理,将图片旋转几个角度以此来提高识别的准确度,在已有的基础上扩展数据集。

本文使用深度学习,利用FCN算法分割绝缘子,并用已有的数据集进行训练。然后在对连通区域进行检查得到较为客观的掩模图。最后通过基于Python平台的YoloV3算法对得到的自爆故障进行定位。在得到的结果中可以发现模型已经具有较好的效果,可以准确的识别出已经自爆的绝缘子。

本文值得注意的是,本文每一个步骤都选用了多个方法进行比较,保证了结果的准确性,并且同时也带来的更多的解决方案,以此来适应不同的环境。

6.2 展望

本文从图像处理和深度学习两个角度出发研究了航拍中绝缘子串的识别和绝缘子“自爆”点的位置识别。由于深度学习继续迅速,研究不断深入,新的模型和算法的提出,在今后的时间针对本文不足进行完善,可完善的地方主要有以下方面:

(1)数据的不充足性。由于电力图像获取难度大,本文所使用航拍图像有限。基本供于原图应是2000张左右,但是由于获取数据有限,在处理后才刚刚达到深度自主学习所需训练集,后期可以通过无人机拍摄更多图像进行加强。

(2)基于深度学习的检测算法在未来探索更合适的网络模型,降低网络复杂度。以期实现绝缘子检测的智能化和自动化。

另外在从当下时期来看我国电网面临着严峻挑战,主要包括:西电东送距离遥远和线路走廊的限制,要实现大规模的输电面临着诸多技术难题:大区电网强互联的格局尚未形成,因而全局的电力资源优化配置,优化调度还难以实施,南北互供的电量还很少,电网建设滞后,电网中输电瓶颈增多,其中,电网绝缘子安全可靠性成为电网安全的重要因素。因为,电力网输配电线路大多建设在野外,长期在恶劣气候条件下工作,强化输配电绝缘子安全可靠性,对于线路安全起到重要的作用,输电网安全运行强调输电网绝缘子的重要性。更应该加快速度,将商业化的无人机识别技术投入到电网中。

可以预见在将来本文的技术可以被应用在各个多个领域,并且也具有较大的提升空间,和较好的可塑性。以本文的YoloV3模型为例,本次由于训练数据较少的原因,使识别的精度差强人意,如果可以收集更多的数据,多模型进行更多的训练,那么准确度会有一个质的飞跃。

猜你喜欢
候选框绝缘子卷积
基于Two-Stage的目标检测算法综述
基于Mask RCNN的绝缘子自爆缺陷检测
基于3D-Winograd的快速卷积算法设计及FPGA实现
零值绝缘子带电检测方法探讨
基于深度学习的重叠人脸检测
卷积神经网络的分析与设计
从滤波器理解卷积
基于单帧标注的弱监督动作定位
浅析输电线路绝缘子防污闪技术
基于傅里叶域卷积表示的目标跟踪算法