基于轻量级SSD 的电力设备锈蚀目标检测①

2020-03-23 06:06吴之昊熊卫华任嘉锋
计算机系统应用 2020年2期
关键词:电力设备卷积注意力

吴之昊, 熊卫华, 任嘉锋, 姜 明

1(浙江理工大学 机械与自动控制学院, 杭州 310018)

2(杭州电子科技大学 计算机学院, 杭州 310018)

1 前言

电力设备维护作为电力系统运行中非常重要的一部分, 对整个电网的安全运行起到关键的作用.其中,部分电力设备例如架空输电线路和箱式变压器一般架设在在室外, 受到风吹日晒的金属部件极有可能产生锈蚀, 而架设于输电隧道的输电电缆由于潮湿、多尘、密闭的环境也很有可能产生锈蚀, 从而威胁电力设备的正常运行, 危害整个电力系统的安全, 因此需要有效的对电力设备锈蚀故障进行识别和检测.

目前, 电力设备的维护检查一般通过人工巡检的方式完成, 由于架空线路和输电隧道架设的特殊性, 线路巡查通常会对工人的生命安全造成一定的威胁.随着无人机和监控摄像头的大量使用, 通过图像识别技术代替人工进行安全检查已经成为目前较为有效的线路巡检方案[1].文献[2,3]等针对锈蚀故障的颜色特征,分别通过HSI 空间和RGB 模型进行锈蚀区域的识别分割和检测.

随着深度学习的日益发展, 以基于卷积神经网络的目标检测方法在很多层面上都超越了传统数字图像处理方法.在锈蚀故障检测方面, 也有很多学者对基于深度学习的识别方法进行了研究.李辉等[4]将HIS 模型和深度学习进行了结合, 为电力输电线路锈蚀故障检测提出了新思路.Nash W 等[5]则进一步对锈蚀场景进行了分割和提取, 但检测结果未达到预期.周自强等[6]则引入了迁移学习来解决小数据样本的问题, 也提高了一定的检测效果.

目前的目标检测算法依赖于大型卷积神经网络,算法模型一般存在参数量过大、检测速度过慢等问题,不能满足电力设备故障检测的实时响应要求.因此本文在已取得较好目标检测效果的SSD[7]算法的基础上,结合MobileNet[8]系列网络结构提出一种轻量级的电力设备锈蚀目标检测算法.同时引入了基于注意力机制的上采样策略和多尺度特征融合方法在压缩模型的同时维持较高的检测精度.

2 理论基础

基于深度学习的目标检测方法从R-CNN[9]提出后就成为了目前主流的目标检测算法, 并发展出了Fast R-CNN[10], Faster R-CNN[11]等two-stage 算法和SSD,YOLO[12]等one-stage 算法.其中, one-stage 算法通过将分类与回归问题进行统一可以在只经过单次检测就能得到最终的检测结果, 拥有更快的检测速度, 因此更适合在工业现场和机器人系统中进行应用.

2.1 SSD 目标检测算法

SSD (Single Shot MultiBox Detector)目标检测算法是2016 年Liu W 等提出的一种one-stage 的深度学习的目标检测算法[7], 并添加了多尺度检测的方式提高不同尺度下的目标检测能力.SSD 目标识别算法采用VGG-16 作为特征提取网络, 去除了末端的2 个全连接层, 改用3 个卷积层进一步提取特征, 同时减小特征图的尺寸.为了提高对尺度变化较大的目标的泛化能力,SSD 使用了6 个不同尺度的特征图进行检测.而在预选框(prior box)生成策略上, SSD 借鉴了Faster R-CNN的anchor 策略, 在不同尺度的特征图上分别生成4 至6 个不同大小和不同长宽比的anchor 框作为边框回归的预选框, 非常好的适应了不同长宽比的目标物体, 有效的提高了检测的效果.图1 为标准SSD 的算法结构图.

图1 SSD 的算法结构

2.2 注意力机制

注意力机制(attention)的本质来自于人类只根据需求观察特定部分的视觉机制.2014 年Google DeepMind团队提出了循环注意力模型[13], 将Attention 机制引入RNN 用于图像分类并取得了良好的效果.2018 年, Hu J 等提出了SENet[14], 通过在通道间添加注意力机制来标定不同通道的重要程度, 然后依靠添加不同的权重去提升高效特征并抑制低效特征.

SENet 通过Squeeze 和Excitation 两个操作对每个同通道的相互依赖关系进行建模.其中Squeeze 操作是进行了一个全局池化, 相当于采用了全局感受野来令其具有全局信息特征.随后Excitation 操作通过全连接层和Sigmoid 函数来表征每个特征通道的相关性.最后通过Reweight 操作将输出的权重通过逐点相乘加权到先前的特征上, 令原始特征得以重标定.注意力机制的算法结构如图2 所示.

图2 注意力机制的算法结构

3 本文方法

本文提出的基于轻量级SSD 的电力设备锈蚀目标检测算法在标准SSD 的基础上结合MobileNet 的深度可分离卷积进行轻量化操作, 同时为保证检测精度不受影响, 利用注意力机制和concat 方式对多尺度特征进行融合.完整算法结构如图3 所示.

3.1 基于深度可分离卷积的特征提取网络

标准SSD 采用扩展的VGG-16 网络作为特征提取网络, VGG-16 采用的是密集连接的标准卷积方式.而深度可分离卷积是MobileNet 的基本组成块, 利用了分解卷积的方法对过参数化的标准卷积进行压缩.首先采用1×1 大小的卷积核先对每一个通道进行卷积操作, 再使用3×3 大小的卷积核进行通道间的信息交流.通过将标准卷积中的乘法分解为加法的方式在不损失精度的情况下有效的减少大量参数.同时将激活函数由ReLU 更换为性能更加优越的h-swish 函数.图4为标准卷积和深度可分离卷积的结构对比图.

图3 基于轻量级SSD 的电力设备锈蚀目标检测算法结构

图4 标准卷积和深度可分离卷积的结构对比

3.2 基于注意力机制的上采样策略

标准SSD 目标检测算法为了提升小目标的检测效果使用了多尺度的特征进行同时检测, 但是由于没有做到特征的融合, 导致小目标检测中并不能达到很好的预期效果.同时, 虽然使用深度可分离卷积可以大量的减少参数量, 但是由于失去了大部分可调参数, 在一定程度上牺牲了检测精度.因此本文采用了多尺度融合思想, 将标准SSD 中单独检测的多尺度特征进行上采样融合.在融合策略上, 由于FPN[15]使用的Elementwise add 特征融合方式对单通道特征图的特征相似度要求较高, 但是经过上采样的高层特征图未必可以做到内容匹配.而concat 特征组合方式则更加注重不同通道内的特征信息, 同时再利用一个注意力模型对组合特征进行相关性标定, 以此可以选择更具有价值的特征信息.但是由于采用concat 的方式, 所以通道数增加了一倍, 因此采用一个卷积层将其通道降为原先的一半,同时起到特征融合的作用.基于注意力机制的上采样策略结构如图5 所示.

图6(a)图为待检测的原图, 其锈蚀目标部分为的防火门控制箱的外壳, 图6(b)图为获得的原始特征图,图6(c)图为采用Elementwise add 方式进行融合后的特征图, 图6(d)图为本文特征融合方法进行融合后的特征图, 可以看到本文方法可以有效的抑制低能特征,提取高能特征, 从而提高检测效果.

图5 基于注意力机制的上采样策略

图6 Elementwise add 与本文方法产生的特征图

4 实验分析

4.1 实验数据集

由于利用目标检测技术对电力设备进行故障检测仍处于发展阶段, 目前暂无公开的数据集用于电力设备锈蚀的目标检测目, 因此本文就已有的电力设备锈蚀图像提出RustDetection 数据集, 该数据集图片由架空输电线路、电缆隧道、电表电箱等多种电力设备锈蚀故障图片组成, 通过实地采集、网络获取等多种方式, 结合数据增加方法最终采用了600 张锈蚀图片作为训练集, 200 张作为测试集, 并通过LabelImg 标注软件对锈蚀区域进行标定, 按照VOC2012 数据集的格式进行处理, 图7 为标签标定的效果.

图7 RustDetection 数据集

由于本文提出的锈蚀检测的数据集样本量不大,若直接使用该数据集进行训练会导致网络不能很快的收敛, 最终的检测效果也不好.因此本文先利用包含共21 类的17 125 张图片的VOC2012 通用公共数据集上进行预训练, 再采用迁移学习的方法, 对本文提出的RustDetection 数据集进行微调训练.

4.2 实验过程

在训练阶段, 输入的图像首先经过缩放将输入大小变为300×300×3 的RGB 图像, 并对其作归一化处理后进行训练, 训练阶段在NVIDIA GTX 1080Ti GPU 上进行.

网络训练采用迁移学习, 首先将搭建好的网络模型在VOC2012 数据集上进行300 轮训练, 并已经在该数据集上拥有较好的检测效果后移除多分类子网络部分结构, 添加二分类子网络, 该二分类子网络由6 个卷积层构成, 分别用于6 个尺度下的目标预测, 对该部分的参数采用Kaiming 初始化方法进行初始化, 相比较随机初始化而言, 该种参数初始化方法可以有效的避免激活函数的输出值趋向于0, 从而保证网络的训练可以顺利进行.随后将完整的算法模型在本文提出的RustDetection 数据集上同样采用阶段性学习率的方式进行训练, 即在训练初始阶段采用大学习率, 在后期调整为小学习率, 这样可以加速模型收敛, 加快训练速度.

在测试和验证阶段, 目标图像首先通过已经训练好的算法模型, 整个模型最后输出11 620 个候选框信息, 每个候选框包括2 个分类值(锈蚀、背景)和4 个坐标值(候选框的中心点坐标和长宽), 随后过滤掉所有被识别为背景的候选框, 对剩下的目标候选框进行非极大值抑制, 最后选出IOU 最大的候选框作为目标框, 完成锈蚀目标的识别.

4.3 实验结果分析

具体的检测结果如图8 所示, 其中图8(a)为电缆隧道内的防火门控制箱锈蚀目标检测结果, 图8(b)为检修电源箱的锈蚀目标检测结果, 图8(c)为输电线路的锈蚀目标检测结果, 图8(d)为电表箱的锈蚀目标检测结果.锈蚀区域由彩色框进行标注, 左上角为该区域的分类标签.

为了进一步的验证本文提出算法在模型体量、检测速度和检测精度上的优势, 本文将分别采用VGG-16 和ResNet-50 为主干网络的标准SSD 模型和本文提出基于注意力上采样策略的轻量级SSD 模型进行对比.本文的判别标准主要由准确率(Precision), 召回率(Recall)和AP 值(Average Precision)组成, 其中准确率和召回率的计算如式(1), 式(2)所示:

式中, TP 表示正样本判定正确的个数, FP 数值表示正样本判定错误的个数, FN 数值表示负样本判定错误的个数.而AP 值的计算采用VOC2007 的11-Point方法进行计算, 11-Point 方法是结合Recall 为 [0, 0.1, 0.2,0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0], 分别找到这11 个点下的最大精度值x, 随后按照式(3)计算平均精度:

表1 为不同的算法模型在本文RustDetection 数据集下的检测效果对比.

图8 锈蚀目标检测结果

表1 不同网络模型的检测效果对比(%)

由表1 可见, 若只采用轻量级的MobileNet 结构对SSD 模型进行轻量化处理, 其检测效果会因为参数损失而变差, 而本文方法由于添加了上采样和特征融合模块, 可以做到有效的提升检测效果, 甚至超越了原标准SSD 算法.不同算法结构的模型参数量、权重大小和在Intel Core i5-7200U CPU 上的检测时间对比如表2 所示.

表2 不同模型大小对比

综上所述, 本文方法相较于只采用轻量级的Mobile-Net 的SSD 模型在上采样网络上扩张了网络结构, 增加了53.4%的参数量, 但是相比较拥有庞大参数量的以VGG-16 为主干网络的标准SSD 模型在参数量减少63.6%, 速度提升46.7%的情况下提升10.47%的准确度和5.99%的平均精度, 相比较以ResNet-50 为主干网络的标准SSD 也可以做到在参数量减少66%的情况下, 提升2.98%的准确度和0.43%的平均精度.

5 结论与展望

本文提出了一种基于轻量级SSD 目标检测模型的电力设备锈蚀目标检测方法, 该方法针对目标检测模型参数量巨大, 设备计算能力要求高等特点, 提出了一种轻量级的SSD 目标检测模型, 并采用了一种基于注意力模型的上采样策略对轻量化后的网络结构进行优化, 弥补了由于减少参数带来的精度损失.本文提出的模型可以做到在大幅削减参数量的同时保证96.96%的检测准确度和71.35%的平均精度, 同时检测时间仅为980 ms, 若设备允许可以使用GPU 加速,检测时间仅需240 ms, 可以满足电力系统安全监控的现实需求.本文的进一步工作为将网络模型移植和加载进入终端设备, 做到工业现场的实时监测.

猜你喜欢
电力设备卷积注意力
基于全卷积神经网络的猪背膘厚快速准确测定
让注意力“飞”回来
电力设备带电清洗作业的研究与应用
电力设备预防性试验的重要性与方法
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
电力设备预防性试验的重要性与方法微探
高压电力设备试验方法及安全措施的研究
A Beautiful Way Of Looking At Things