面向巡检机器人的电力设备状态检测算法研究
2021-04-06杨学杰李思毛李建业李宋林
杨学杰,李思毛,李建业,李宋林,张 旭
(1.国网淄博供电公司,山东 淄博 255000;2.国网智能科技股份有限公司,山东 济南 250101)
0 引 言
目前,变电站巡检机器人已在国内变电站推广应用,利用携带的红外、可见光传感器实现设备温度自动测量、设备状态自动识别,自动代替人工完成变电站设备的巡检任务,可根据设备综合状态综合诊断设备故障[1]。经过多年的机器人巡检技术和巡检模式研究,“机器人巡检+数据后台分析”模式已经成为变电站智能运维的重要趋势。
利用巡检机器人采集图像可实现电力设备状态自动识别(表计读数、刀闸开合状态、断路器开关等)与设备缺陷自动诊断(鸟巢、绝缘子破损等),以上任务可以利用人工智能领域的目标检测技术完成[2-3]。目前常用的目标检测算法主要包括RCNN系列网络[4-6]、SSD网络[7]、RFCN网络[8]与YOLO系列网络模型[9-11]等。YOLOv3与其他目标检测算法相比,在检测准确率和速度上,均取得了较好的效果,并在电力领域得到了广泛应用[12-13]。
尽管变电站巡检机器人及人工智能技术的应用提升了电力巡检的自动化和智能化水平,但基于图像的设备状态分析算法有效性、可靠性仍需进一步提高,其高存储、实时性差的问题仍然制约着机器人智能巡检的推广应用。随着深度神经网络模型日益深度化、复杂化,以上问题制约着人工智能技术在计算资源有限的机器人应用环境中的推广,如何在保证算法精度的前提下,实现深度模型的小型化和前置化是亟待解决的一个问题。
为了提升变电站巡检机器人智能分析能力和设备状态诊断效率,该文对电力设备状态检测前端化算法进行研究,以YOLOv3模型为基础网络,对模型结构进行剪枝压缩及整体结构轻量化改进,实现变电站设备定位及异物悬挂等典型缺陷检测的边缘计算,加强巡检机器人的图像分析、判别和智能决策能力,进一步提升电力巡检的效率及智能化水平。
1 设备状态自动检测算法前置化研究
实现电力设备状态检测算法在机器人前端部署,选择合适的嵌入式硬件平台进行检测算法的移植是首要前提。另外,为了满足模型部署需求,选择精度高、耗时少的目标检测算法,实现设备状态实时检测。
1.1 算法模型的嵌入式部署
目前深度学习网络的使用基本上在GPU平台下进行,其在嵌入式移动设备下的应用主要依靠FPGA硬件,同时专用于DNN的芯片研究也正在开展。在现有机器人设备的基础上,根据目前众多的深度网络部署硬件芯片应用情况与性能对比,主要考虑两种嵌入式硬件设备:英伟达Jetson TX2与海思Hi3559A。
英伟达Jetson TX2是由英伟达公司研发的Jetson系列GPU嵌入式平台,主要用于深度学习模型的研究,其核心嵌入式组件体积与信用卡一般大小,可以嵌入到移动设备中使用,算法移植方便,但其属于进口芯片,价格较高,不适合机器人产品小型化、批量化生产。海思Hi3559A芯片属于国产硬件平台,包含了深度学习的NNIE内核,定制平台算力可达4TOPS(Tera operations per second),是目前同等算力下性价比最好的平台之一。两款嵌入式平台的性能与硬件参数对比如表1所示。
表1 Jetson TX2与Hi3559A芯片对比
综合考虑两种嵌入式AI平台的计算能力与生产成本,海思Hi3559A硬件平台在成本及算力上均优于TX2,因此选用海思Hi3559A作为嵌入式平台进行深度学习检测算法在机器人前端部署。
1.2 设备状态自动检测算法
面向机器人的设备状态自动检测算法实现主要分成三个部分:(1)各类设备及缺陷的图像样本采集与标注,建立图像样本库;(2)利用目标检测模型对样本进行训练,得到设备状态自动检测判别模型;(3)将训练好的模型部署在机器人嵌入式硬件上,根据输入的巡检实时图像输出判别结果。
综合考虑当前硬件平台计算能力与巡检图像分析任务,巡检机器人采用前端检测与后台分析相结合的方式实现变电站设备状态的自动检测,将一些识别率高、需要现场确认的缺陷检测功能放在机器人前端实现,主要包含仪表读数、刀闸状态、绝缘子缺陷、鸟巢及异物四类目标的检测。
当前的目标检测算法根据设计差异总体上分为两种:基于候选区域的目标检测算法(RCNN系列算法)和基于回归的目标检测算法(SSD、YOLO系列等)。与以Faster RCNN[6]为代表的基于区域的目标检测算法相比,YOLOv3算法可以实现端到端的训练,减少了模型训练的复杂度,并且图像的检测速度大幅度提高。与SSD算法[7]相比,YOLOv3拥有更高的检测精度以及更快的处理速度,部署在嵌入式平台上更接近设备状态检测实时处理的需求,因此选用YOLOv3算法作为电力设备状态检测的深度模型,不同算法的检测结果如表2所示。
表2 YOLOv3与其他网络性能对比
YOLOv3采用Darknet53的网络结构,共包含53个卷积层,训练时最大训练迭代次数设置为100 000,学习率为0.001,训练得到的参数量约为60 M,模型体积在300 M左右,单张图像检测时间大于100 ms,目标检测速度和模型体积不适合往机器人的前端移植,因此需要研究深度模型的轻量化算法,在保证检测精度的基础上,减少判别网络的计算量与模型体积。
2 深度模型的轻量化算法
由于机器人搭载的硬件计算能力与后台服务器的计算能力无法比拟,为了实现设备检测算法的前置化,部署模型需要少量的算法参数,较少的内存及运算时间,因此这里将原始YOLOv3模型进行轻量化改进。一种方法是对网络模型进行轻量化设计,精简模型结构,减少模型参数;另一种方法是进行模型压缩,去除模型卷积层中不必要的通道。
2.1 小型YOLOv3模型
小型YOLOv3模型(Tiny YOLOv3,T-YOLOv3)[11]是YOLOv3模型的简化,保留了原始模型两个独立预测分支,该网络模型主要是由卷积层和池化层构成,结构更简单,但精度有所下降。
T-YOLOv3模型引入了多尺度特征提取模块,输出2个尺度的特征图来保证对不同大小目标的检测性能。虽然这种模型结构可以减少卷积特征层的参数,提高模型运算速度,但在环境复杂的变电站场景下,这种网络结构容易造成浅层卷积特征图信息丢失,并且对小目标及局部特征的目标输出不敏感,很容易对远处的小目标设备或存在遮挡的设备造成漏检和误检,影响了目标的召回。
为了提高模型上下层的语义信息及小目标的检测能力,对T-YOLOv3的网络模型进行改进,增加两个卷积层和池化层,提高网络提取特征对变电站目标的表征,并在原有网络结构的基础上增加一层上采样层,为了避免训练中的梯度消失并增强特征的复用,在网络的分类回归之前引入残差模块,改进后的网络记为E-T-YOLOv3,其网络结构如图1所示。
图1 E-T-YOLOv3模型结构
2.2 基于通道剪枝与层剪枝的模型压缩算法
为了实现YOLOv3模型的压缩,Zhang等人提出了一种基于通道剪枝的YOLOv3模型压缩算法[14],并将压缩后的模型部署在无人机上,取得了理想的效果。首先,该算法在原始模型的基础上添加了三个空间金字塔池化(spatial pyramid pooling,SPP)模块,SPP模块可以提取不同尺度的特征信息,并将不同尺度的特征图以串联的方式进行特征融合,提高原始网络的检测精度,构成模型修剪的基本模型。接着,为了删除模型不重要的通道,提出了SlimYOLOv3-SPP3-50/90/95三种型号的修剪模型,此种模型修剪可以极大改善模型在机器人上的部署,但具有一定的精度损失。具体剪枝步骤为:
(1)对模型进行稀疏训练,YOLOv3获得每个信道的比例因子,评估模型中每个信道的重要性,然后去除那些具有小比例因子的信道。
(2)通过修剪得到的模型SlimYOLOv3在数据集上进一步微调获得检测结果,对剪枝后的模型进行效果评估,然后进入下一轮稀疏训练。
(3)迭代重复前两步通道剪枝过程,直到满足设定的模型剪枝比或检测速度要求。
此类通道自动剪枝策略对于YOLOv3残差块中的卷积网络具有很好的压缩效果,减少了整体网络的宽度,但是当冗余的参数主要分布在网络的深层次时,即使达到模型剪枝比停止训练,实际的加速往往达不到理想的效果,并带来一定的精度损失。为了进一步提高模型的压缩质量,在通道剪枝的基础上,引入了层剪枝策略,在保持模型精度的前提下,使得模型在宽度和深度上得到有效剪枝。层剪枝的策略主要针对YOLOv3模型的直连(shortcut)层进行剪枝,具体步骤为:
(1)对于每个直连层前一个基础模块进行重要性评价,基础模块包括一个1×1与3×3的卷积核,层重要性评价系数选用Liu等人提出的缩放因子γ系数[15]。
(2)由于每裁剪一个shortcut层,会同时减掉与其相连的两个卷积层,为保证YOLOv3的结构完整,设置层剪枝shortcut剪枝数量阈值为12,即剪枝层数不超过36层,精度保持阈值为7%,即剪枝后模型的平均精确度(average precision,AP)下降不超过原模型AP值的7%。
(3)根据计算的γ系数对各直连层进行排序,在满足阈值的前提下取最小的层进行剪枝。
这里将SlimYOLOv3-SPP3-50通道剪枝策略与层剪枝策略结合使用,整体过程如图2所示。待剪枝完成后,对得到的轻量模型再进行参数的微调。以剪枝后的模型进行训练参数的初始化,然后对模型进行重训练,训练中将最大训练迭代次数减小到50 000,并在迭代30 000次后将学习率降低为原学习率1/5。通过微调,最终得到压缩后的深度判别模型。
图2 通道剪枝与层剪枝模型压缩过程
3 实验结果与分析
为了验证轻量化模型的设备状态检测性能,首先对该文提出的算法训练模型与原始YOLOv3及其他轻量化算法进行对比实验。不同算法验证实验环境:CPU为E5-1607,内存为16 GB,GPU为NVIDIA GeForce 1080TI,操作系统为Ubuntu16.04。
该文利用变电站巡检图像作为数据集,图像分辨率为1 920×1 080,数据集共有4类对象,包含仪表、刀闸、绝缘子、鸟巢及悬挂物。每类图像包含样本1 000张,其中800张图像作为训练验证集,200张图像作为测试集。分别利用不同的模型算法对4类目标进行训练及测试,验证指标采用AP值及平均交并比(Intersection over union,Iou),AP值越高表示模型在全部类别找那个目标的综合性能最高,Iou值越高代表检测到的目标位置越精确。除此之外,对训练模型的大小及4类目标的平均检测速度进行比较,模型越小,检测速度越快,越适合嵌入式平台前端进行部署。
首先,为了确定最优层剪枝直连层的剪枝个数,设置不同的剪枝个数进行压缩模型的性能测试,如图3所示。横坐标“比率”为层剪枝后模型相对于原模型的体积与AP值变化,从图中可以看出,当剪枝直连层个数为2时,精度保持效果最好,但模型体积压缩较少。其中当剪掉层数为1,2,4,6,8时,满足设定剪枝层数与精度保持阈值的要求。为了兼顾精度与模型体积,选择剪枝直连层的个数为8,模型共减掉24层,精度下降了4.3%,模型体积仅有31.3 M,压缩了一半以上。
图3 不同层剪枝个数的模型压缩后性能
不同模型对4类目标的测试结果如表3所示,与原始YOLOv3模型相比,轻量化后的模型在精度上都有不同程度的下降,模型体积与单张图像检测耗费时间都有明显提升,T-YOLOv3模型检测速度最快,但精度下降比较严重,改进后的E-T-YOLOv3模型AP值提升了4.1%。基于SlimYOLOv3-SPP3通道剪枝的策略当压缩比过高时精度下降比较严重。综合检测精度与速度因素,“SlimYOLOv3-SPP3-50+层剪枝”策略压缩后的模型检测速度降低至37 ms/张,AP值仅下降了2.4%,Iou下降了0.08,完全适应机器人目标检测前端部署需求。另外,PR曲线反映了精确率(precision)与召回率(recall)之间的关系,更能直观地看出算法间性能的好坏,精简模型与原始模型的PR曲线如图4所示。与原始YOLOv3模型相比,模型剪枝后的YOLOv3模型与精简YOLOv3模型在检测效果上有略微的下降,SlimYOLOv3-SPP3-50+层剪枝后的YOLOv3模型要略优于E-T-YOLOv3模型。
表3 不同算法的检测结果比较
图4 不同模型的PR曲线
为验证巡检机器人前端模型的识别效果,将经过“SlimYOLOv3-SPP3-50+层剪枝”策略压缩后的YOLOv3模型部署在变电站巡检机器人上,测试环境为济南220 kV许寺敞开式变电站,除了站内待检测设备的识别任务外,还人为制作了一些异物悬挂的场景进行测试。机器人巡检过程中前端输出的检测结果如图5所示,从输出结果可以看出部署的模型可以有效地检测出相应的电力设备及异物,从图5第三排图像可以看到当前算法对于遮挡的绝缘子仍存在漏报的情况,下一步将针对遮挡设备检测与进一步精简判别模型技术进行研究,并引入知识蒸馏思想[16],进一步提升部署模型的性能。
图5 变电站巡检图像检测结果
4 结束语
针对变电站巡检机器人设备状态检测技术前端化部署需求,从成本及算力方面考虑,选择海思Hi3559A芯片作为算法开发的嵌入式平台,以YOLOv3算法训练模型作为基础模型进行模型轻量化设计。研究了基于模型剪枝及小型模型设计的轻量化技术,针对不同的模型轻量化算法,提出了改进的T-YOLOv3模型,增强模型上下层的语义信息特征提取能力。设计了基于通道卷积与层剪枝的模型压缩算法,在精度保持的前提下,进一步压缩模型的体积。最终将最优的轻量化模型在机器人平台上进行部署,实现设备状态检测技术在变电站巡检机器人中的前置化。实验结果及现场实际应用表明,前端化的网络模型大大减少了算法耗时,检测精度得到有效保持,满足了变电站设备状态巡检的需求。