面向电力开关柜的轻量型GB-YOLOv5m状态检测方法
2022-11-29崔昊杨杨可欣葛海华许永鹏王浩然戴莹莹
崔昊杨 杨可欣 葛海华 许永鹏 王浩然 杨 程 戴莹莹
①(上海电力大学电子与信息工程学院 上海 200090)
②(国网上海市电力公司闸北发电厂 上海 200438)
③(上海交通大学电子信息与电气工程学院 上海 200241)
1 引言
电力开关柜状态灯及仪表指示着电力线路的重要状态量。目前,在边端应用遥视技术对形貌相近、体积微小且分布稠密的开关柜状态灯及仪表进行设备巡检实现去人工化是电力行业日趋明显的发展趋势。同时,尽管柜上状态量可以自动上传至后台系统,但通过边端设备进行周期性设备巡检及核验仍是保障电力安全不可缺少的一环。电力开关柜状态实时核验的主要难点在于对复杂环境下柜体灯、表目标的快速准确定位,以及对差异小、尺度小的目标特征进行精准分类。目标检测算法是边端智能检测的有效手段,具有高效的自动学习和分类能力[1],为电力开关柜的状态实时核验提供了可供借鉴的经验。
目前,目标检测算法主要分为两类:以Regionbased Convolutional Neural Network(R-CNN)为代表的双阶段目标检测和以YOLO (You Only Look Once)[2,3]为代表的基于端到端的单阶段目标检测。双阶段目标检测算法包括Fast R-CNN (Fast Region-based Convolutional Neural Network)[4],Faster R-CNN (Faster Region-based Convolutional Neural Network)[5]等,以检测精度较高为主要优点;单阶段目标检测算法有YOLOv3[6,7], YOLOv4[8],YOLOv5[9]和SSD (Singel Shot Detector)[10,11]等,具有优秀的检测速度。文献[12]利用单阶段多框检测器、结合软性惩罚非极大值抑制对变电站小样本电力设备进行准确检测。文献[13]通过添加卷积模块及调整部分超参数对YOLOv3网络架构进行优化,可对高压开关设备的异常发热点进行准确、快速的检测。文献[14]以YOLOv4网络为基础,结合注意力机制对变电站数字仪表进行实时检测。上述研究虽然已在小目标检测方向取得了一定进展,但在应用方面仍面临以下困境:(1)应用遥视技术检测电力开关柜上密集、高似然状态灯及仪表的研究较少,且现有算法难以满足准确检测的需求;(2)算法多为深层网络,参数量较大,对GPU性能提出了较高要求,不利于在移动边端的部署;(3)开关柜数据集匮乏,如何合理增强数据集、规避模型欠拟合并加速模型收敛也是需要思考的问题。
针对上述问题,本文提出一种轻量型GB-YOLOv5m网络模型。利用加权双向特征金字塔网络,改进模型对于小尺度密集状态灯的特征提取与传递融合能力;对检测层及锚定框的数量、尺寸进行优化,提高模型对于柜上小尺度灯表目标的定位检测能力;通过改进主干特征提取网络,采用Ghost-Net模块对卷积过程进行简化,实现网络的轻量化;最后构建电力开关柜状态灯及仪表的目标检测数据集,引入预训练权重,使模型快速适应所构建的数据集。经实验验证,本文所提算法在电力开关柜状态量遥视检测的应用中具有较高的实用性。
2 考虑开关柜灯体表体特征的GB-YOLOv5m模型
YOLOv5目标检测算法在速度与精度上都具有一定优势。图1(a)为输入模型的开关柜图像,图1(b)为YOLOv5m模型在经过第1个Conv结构后所得的前20张特征图,通过对特征图进行观察与比较,可知图1(b)中编号(2)、编号(10)、编号(20)的特征图包含的有效特征信息极少且相似程度高,浪费了计算空间与时间,也使得后续以此特征图为基础的卷积等操作难以获取有效的目标特征,导致整体检测性能下降。
图1 YOLOv5m算法首次卷积所得部分特征图
针对上述情况,本文提出一种优化YOLOv5m网络,即GB-YOLOv5m模型,该模型的整体网络结构如图2所示。模型采用Ghost-Bottleneck-CSPDarknet53结构作为主干网络,用简化的卷积对开关柜图像进行特征提取;采用BiFPN结构作为Neck部分,提高对包含丰富表体特征的深层特征图及大量灯体特征的浅层特征图的融合能力;在预测层通过新增锚框,采用4尺度检测头实现多尺度检测,增强模型对于小型指示灯的特征提取能力,最后对融合特征进行目标的定位及分类,输出全部灯表的具体位置和类别。在模型训练过程中,通过迁移学习思想引入预训练权重,用于图像增强后的开关柜数据集,构建适用于开关柜状态灯表检测的优化模型。
图2 GB-YOLOv5m模型的网络结构示意图
2.1 轻量型Ghost-Bottleneck-CSPDarknet53网络
为缓解卷积过后所得特征图重复率高的问题,通过GhostNet结构对卷积过程进行简化,同时删除部分冗余特征图,实现参数量缩减与模型压缩,与常规卷积对比如图3所示。GhostNet中的Ghost模块采用常规3×3卷积及线性操作,以少量参数和计算量得到大量有效特征图,通过Ghost卷积代替模型中Conv常规卷积,将两个Ghost模块叠加并与残差边传入特征信息融合,构成如图4(a)所示的Ghost-Bottleneck结构,替换YOLOv5中的Bottleneck模块,再和C3模块组合构成如图4(b)所示的Ghost-Bottleneck-CSPDarknet53结构,实现计算量的减少与模型大小的压缩。
图3 Ghost模块与常规卷积模块对比
图4 两个Ghost模块
经上述操作后,取出首个Ghost卷积后所得的前20张特征图,结果如图5所示。通过对比图1与图5可知,Ghost卷积模块的使用,有效删减了高相似度的冗余特征图,并通过线性变换产生包含丰富语义信息的新特征图,简化计算的同时提取了较为完整的特征信息。
图5 使用Ghost卷积后的特征图
2.2 针对小尺度灯体的优化策略
由可视化特征图可知,模型在特征提取的过程中,更多的关注放在中、大尺度物体上,密集小尺度灯表的特征在卷积的过程中得到的关注并不够多,且随模型网络深度增加,在卷积以及上采样的过程中,每一层网络都无法避免丢失部分特征的情况,像素点越小的目标在这一过程越有可能被丢失,因此即使最终对深浅层特征进行融合,锚定框在特征信息不良好的特征图内也难以对小目标实现定位和分类,针对该问题,本文在检测尺度、锚定框大小和数量以及特征融合方法上做出调整,使模型更适用于开关柜数据集。
2.2.1 4尺度检测策略
YOLOv5采用3尺度特征层进行目标检测,当前现有的检测层尺度分为20×20, 40×40, 80×80 3个尺度,对于目标较大的对象有较好的检测能力。但通过对开关柜待检测的状态灯及仪表尺寸分析发现,柜体16类目标内,共有9类状态灯的像素值在32×32内,属于小尺度目标,因而当前3类尺度的锚点框在进行检测的过程中极易因为特征信息的丢失出现对密集灯表目标漏检或误检的情况。
为改善对这部分目标的检测效果,在尺寸大小为80×80的特征层后进行2次卷积以及上采样,将所得160×160尺寸的图片与相同尺寸的第2层特征图进行特征融合,作为输入预测层的目标检测图,总共向模型的head部分输入21, 24, 27, 30层特征融合图。其中,21层尺寸最大,大小为160×160;30层尺寸最小,大小为20×20,尺寸越大的特征图包含越多的浅层语义信息,保留了较多的小尺度目标特征信息。同时,在保留原始9种锚点框的基础上,增添大小为(5, 6), (8, 14), (15, 11)的小感受野锚定框,用在低维语义丰富的大尺度特征图中进行目标定位。4尺度的特征层最大限度地对各类灯体及仪表特征进行保留,新增锚框对小目标有很好的敏感度,提升模型对于分布紧密的小尺度灯的检测能力。
2.2.2 跨尺度特征融合网络
为提高特征融合效果,目前已构建了特征金字塔网络(Feature Pyramid Network, FPN)[15,16], 路径聚合网络(Path Aggregation Network,PANet)[17],神经架构搜索特征金字塔网络(Neural Architecture Search-Feature Pyramid Networks,NAS-FPN)[18], BiFPN[19,20]等特征融合网络。YOLOv5采用FPN与PAN结合的方式实现上下层语义传递及融合。但在不同的特征层中,输入特征具有不同的分辨率,对输出特征的贡献通常并不相等,为进一步增强网络对多尺度特征信息的融合能力,更好地平衡不同尺度的特征信息,高效完成特征融合,采用如图6所示的特征融合单元重复堆叠替换原始结构。
图6 BiFPN特征融合单元
BiFPN结构对输入的多尺度特征图,删除对跨尺度特征融合贡献较小的节点;对同尺度的特征层,为减轻过多层级导致的特征信息丢失的情况,新增原始输入节点到输出节点的融合方式;对输入特征引入了可学习的权重,对不同尺度的特征分配差异化权重,实现特征的加权融合。在GB-YOLOv5m中,利用该结构自顶向下的部分,融合3个相同尺度的特征,在自底向上的结构中完成对两个相同尺度特征的融合,将融合后的特征图输入预测层,其中,第24层在原基础上新融入了第4层的浅层特征,第27层新融入了第6层的浅层特征,提高了网络对于深浅层特征的融合度,提升模型对于各类灯,表的灵敏度,降低漏检以及误检情况的发生概率,综合优化了模型的目标检测能力。
在网络中,所赋权重W采用快速正则化方式计算,各节点的加权计算公式为
其中,ωi表示网络可学习的权重,该值始终为正且远小于1;Ii表示输入特征;ε为设置的极小值,用以保持计算的稳定,经实验测试,文章选取该值为1×10–4。
为了更为直观地展现这两类优化策略对模型性能的影响,对优化方案1, 2以及GB-YOLOv5m模型随机抽取相同尺度特征图,与原始模型的同尺度图进行对比,验证本文改进措施对于开关柜状态检测的优化效果,结果如图7所示。其中,优化方案1采用BiFPN结构融合深浅层特征,优化方案2使用4检测层用于定位分类。由图7可知,随卷积的深入,BiFPN的使用使得深层特征图中小目标的位置信息更为精确;4尺度的检测层加强了模型对于小尺度灯体特征的定位;两类优化策略的共同使用使得GB-YOLOv5m模型在各尺度特征图中可以获得较明确的位置信息及清晰的轮廓,实现对灯表主体的定位。
图7 优化方案与原YOLOv5m算法特征图对比
2.3 检测模型的迁移学习策略
电力开关柜内部的场景图像具有较高的保密性,难以获得大量的数据集用于实验。为防止由于样本数量不足导致欠拟合等现象的出现,采用迁移学习的方法,利用数据,任务或模型之间的相似性,将在旧领域学习过的模型应用于新领域的学习过程[21]。VOC数据集包含的目标尺寸与本文数据集具有一定相似性,因此本文首先利用公开的VOC数据集对YOLOv5m模型进行预训练,将训练所得的预训练模型迁移到本文构建的GB-YOLOv5m网络后,对网络参数进行微调,完成对网络的学习。将预训练权重载入网络作为初始参数,增强模型的泛化能力,加速模型收敛从而提升网络的检测性能。
3 实验结果与分析
3.1 实验场景与配置
实验依托如图8所示的上海某电厂实际工作场景,通过对图中所示的5大类目标进行目标检测,实现对10 kV开关柜的状态识别与检测。其中,第1类目标为综合状态指示器;第2类为密集小目标区,包括“运行” “跳位”等9小类高相似小目标指示灯;第3~5类分别代表温湿度状态显示器、带电情况指示灯以及分合闸状态显示器。以上5大类目标全面概括了被检线路当前的运行状态。实验采用的处理器为Intel(R) Core(TM) i7-11700H CPU@2.50 GHz,运行内存16 GB,采用的显卡为NVIDIA GEFORCE RTX 3060,操作系统为64位Windows10。实验基于Pytorch1.8.0深度学习框架,python 3.8实验环境下进行,利用CUDA 11.1和CUDNN 8.0.4作为GPU的加速软件。
图8 实验场景及设备部署情况
3.2 数据集准备及训练参数设置
对于数据集的处理,本文通过图像增强的方式对所拍摄1780张电力开关柜图像进行处理,获得包含7550张图像的新数据集。其中,包括1780张原始图像,4010张分别进行了亮度、清晰度、旋转以及噪声添加等调整的增强图像以及1760张组合使用上述图像增强方法所得的图像。按照8:2的比例划分6040张作为训练集,1510张作为验证集,用以模拟场景可能出现的各类情况下的图像,提高模型的稳定性。实验采用Labelimg完成标签标注工作,共检测16类目标。在训练参数的处理上,设置训练batchsize为8,训练动量为0.93;采用余弦退火策略对模型训练的学习率进行动态调整,初始学习率设为0.01,权重衰减系数为0.0005;采用Adam作为模型训练的优化函数。训练时,图片输入尺寸为640×640,最大迭代次数为200次。
3.3 实验结果与分析
3.3.1 迁移学习结果分析
按照本文所述参数,采用迁移学习的方法对本文构建的开关柜数据集进行训练,图9为训练所得的损失函数曲线对比,纵坐标代表Loss值,横坐标代表训练轮数。
由图9红绿两线对比可知,预训练模型的使用降低了网络的损失函数值,同时对网络的收敛起到了加速作用。在预训练模型及给定训练参数下,前5轮Loss由0.022下降至0.01左右,训练在5~20轮过程中,损失值平稳且缓慢的下降,当迭代至30次时,损失值下降幅度趋近于0,损失值下降并保持在0.008左右。根据训练中参数的收敛情况可认为,模型获得了较为理想的训练结果。同时, GB-YOLOv5m算法的损失函数曲线在训练过程中始终低于YOLOv5m算法,说明本文设计的GB-YOLOv5m算法较原始算法获得了更小的损失值,具有更好的检测性能。
图9 损失函数曲线对比图
3.3.2 定性结果分析
为直观体现GB-YOLOv5m算法的性能,使用该模型与其他模型在同一数据集上进行实验。待检测图中被识别的目标按尺度大小可分为中尺度目标,其中包含各类状态指示灯、 温湿度控制器、带电显示器,以及大尺度目标即综合状态指示器。3种不同拍摄角度下采用GB-YOLOv5m算法对开关柜进行检测所得结果如图10所示。对每幅子图进行观察及总结可得,本文所提出的GB-YOLOv5m模型在3类拍摄角度检测中,不论是对密集小目标指示灯或者是中大目标仪表,均实现了较高质量的检测,对高密且形貌相似的灯体进行了正确定位及分类,未出现漏检及误检情况。
3种拍摄角度下分别使用SSD300, Faster-RCNN, YOLOv4-Tiny, YOLOX, DETR-DC5以及YOLOv5m模型对开关柜进行检测,所得结果如图11所示。观察可知,Faster-RCNN, SSD300以及YOLOv4-Tiny模型对中,大尺度目标的几乎无漏检,但对小尺度状态灯存在较多的漏检情况;YOLOX及YOLOv5m模型对小型密集指示灯同样存在部分漏检情况,但漏检情况逐渐改善;DETR-DC5模型可完成对各尺度目标进行分类的任务,但部分背景被错误地划分为目标灯表,其定位能力尚待提升。图10、图11所示结果的对比表明,GB-YOLOv5m模型相较于上述6类模型,漏检率最低,小尺度目标检测的精确度最高。经多场景不同拍摄角度实验验证,所提模型提升了模型整体的检测率,具有较强的泛化性。
图10 GB-YOLOv5m算法检测结果图
图11 不同角度下各对比算法所得检测结果图
3.3.3 定量结果分析
通过3.3.2节的定性分析可知,GB-YOLOv5m模型可很好地改善密集小目标的漏检情况,同时提高小尺度目标检测的精确度;然而,只进行定性分析不足以说明GB-YOLOv5m良好的检测效果,还需要对算法进行更进一步的定量分析。引入精确度P(Precision),R召回率(Recall),均值平均精度mAP,每秒检测帧数fps(frames per second)及模型参数尺寸Param(Parameters)等评价指标综合评估各类算法的性能。上述评价指标的计算公式如式(2)—式(5),对比结果如表1所示。
其中,式(2)和式(3)中TP是所有预测框中分类正确且边界坐标正确的边界框数量,FP是误检框数量,FN是漏检框数量,式(4)中AP指各类算法的仪器仪表识别结果准确率平均精度,p(r)指pr曲线上各点的数值,式(5)中的m是开关柜面板待检测目标的种类数量。
通过对表1分析可知,对于可以体现模型整体检测性能的均值平均精度mAP而言,由于GBYOLOv5m模型使用了BiFPN结构实现跨尺度特征融合,在用于预测的特征图中提高浅层特征融合度,同时又新增上采样后低维特征明显的160×160特征图用于检测,使得目标检测精度,尤其是小目标的检测精度有较大幅度提升,模型mAP值达到了97.3%,相较于YOLOv5m模型提升了10.2%;相较于双阶段目标检测算法Faster-RCNN,mAP值提升了54.39%,相较于单阶段算法SSD300及YOLOX模型,mAP分别提升了59.31%和12.11%,相较于DETR-DC5网络,检测精度,查全率及mAP均有大幅提升。
表1 GB-YOLOv5m与其他算法对比结果
在模型大小方面,GB-YOLOv5m通过GhostNet结构删减大量冗杂卷积运算,转而用线性变换来产生部分所需的特征图,极大地降低运算量与参数量,使得本模型大小仅为SSD300算法模型大小的13.32%,比YOLOX缩减了18.92 MB,是Faster-RCNN算法模型的51.995%;对比轻量YOLOv4-Tiny模型,虽然GB-YOLOv5m算法参数增加了7.38 MB,但实现了mAP大幅提升,提升了53.7%。
此外,在模型检测速度方面,YOLOv5m的CSPDarkNet53主干结构及批处理推理方式,使其速度为对照组之最,达43.243 fps,本文提出的GB-YOLOv5m算法,虽然检测层尺度的扩增增加了一定的计算量,使得推理时间增长,但Ghost结构的使用简化了主干网络,因此推理检测速度较YOLOv5m算法仅产生6 fps左右的下降,fps为37.553,仍优于其余各检测算法,满足实时监测的需求。
3.3.4 多尺度目标检测性能分析
通过对数据集包含目标进行统计与分析,可划分出小尺度目标9类11个,中尺度目标3类3个,大尺度目标4类,每张图像包含其中1个。其中,APS,APM, APL分别表示小、中、大尺寸目标的均值平均检测精度,计算并对比各算法对不同尺度目标的检测能力,实验结果包含在表2中。
分析表2中各算法对于不同尺度目标的检测结果可知,GB-YOLOv5m模型在小尺度目标的检测中APS达到了95.822%,相较于YOLOv5m的77.6%,提高了18.222%,在小目标检测的性能上实现了大幅提升。相较于其他主流的单、双阶段目标检测算法以及基于Transformer的目标检测算法在本文所构建的数据集上的表现,GB-YOLOv5m算法在模型大小仅为13.29 MB的情况下,3类尺度目标的AP值均高于其他算法。值得注意的是,一般对算法改进时,通常出现的情况是大尺度目标的检测精度提升效果要优于中小型目标检测的精度提升效果。而在GB-YOLOv5m算法的改进中,小尺度目标APS值提升幅度最大。上述实验结果表明,本文对于包含丰富稠密小型状态灯的开关柜目标检测难度大这一问题,有针对性地做了算法改进,验证了改进算法在实际应用中的可行性以及优越性。
表2 GB-YOLOv5m与其他算法对不同尺度目标检测精度结果对比
4 消融实验
在YOLOv5m模型的基础上,开展添加各类优化策略的消融实验,以测试不同优化策略对于本文所构建的数据集在模型检测性能上的提升效果。通过采用相同的图像集,参数设置以及硬件配置,对原始YOLOv5m算法,不同优化策略相组合的6类算法以及GB-YOLOv5m算法进行对比实验,得到表3中各类算法对于大、中、小3类尺度目标的平均检测精度、准确度、参数量以及帧数等结果。
由表3中数据可知,在检测性能提升方面,双向特征金字塔结构以及4检测头结构的使用均对于小尺度目标的检测效果具有不错的提升作用。其中,BiFPN结构使得与传统YOLOv5m算法相比APs值提升了1.41%,4检测头结构的优化使得APS值涨幅达到17.6%。同时,两者策略的引入几乎未影响模型对于中、大型尺度目标的检测效果,APM和APL的值仍保持在99%附近。
在模型轻量优化方面,通过对比YOLOv5m主干网络是否采用GhostNet卷积模块在目标检测时得到的结果可以发现:该卷积网络的使用,可以大幅缩减模型的参数量,缩减后的模型体积仅为原模型的50%左右,有利于模型在算力有限的移动设备端部署。但GhostNet卷积模块的引入会造成算法各性能参数的下降,通过表3中对比可知,该模块会使得mAP小幅下降1%左右,因此对模型性能的影响微乎其微,仍可保证对开关柜高精确度的检测。
表3 基于YOLOv5m模型的消融实验
除此以外,在检测时效方面,本文所构建算法中的改进措施可根据对帧率的影响分为两类:第1类为GhostNet结构,该结构的使用可以简化卷积计算过程,从而达到提高帧率的效果;第2类为4检测层结构及BiFPN结构,该类结构对网络结构有一定的复杂化效果,在原始模型的基础上增加了上采样和特征融合等计算过程,使得计算量上升,从而导致帧率的下降。通过对表3中fps数值的对比与分析可知,实验7叠加使用第2类结构,使得其帧率为8组中最低;实验8在实验7基础上加入第1类结构,使得帧率在此基础上有所上升。上述数据分析结果与理论分析结果相符合,验证了本文算法针对检测速率所做改进的合理性与有效性,且具有较高的帧率。
5 结束语
针对变电站开关柜遥视检测中含较多高相似性小尺度目标如状态灯及仪表,使得现有目标检测算法出现漏检、误检等检测不准确的问题。本文构建了专门的电力开关柜数据集,并提出了一种GBYOLOv5m的轻量型开关柜目标检测方法,采用加权双向特征金字塔提高网络对于浅层特征的融合能力;通过增设3个小感受野的锚点框提高网络对于小目标特征的提取能力;采用Ghost-Bottleneck代替主干网络中的Bottleneck结构,以简化卷积过程从而实现模型的轻量化,满足在移动端的部署需要;利用迁移学习的思想,在算法中引入预训练模型,提高模型性能的同时加速其训练收敛进程。实验结果表明,提出的模型相较于传统的YOLOv5m算法在模型大小缩减了1/2的基础上,mAP值提高了10.2%,达到97.3%,以更小的参数量实现了对于目标数据集更高精度的检测。此外,提出的算法相较于各类算法都有更好的整体性能,不仅降低了整体的漏检及误检概率,还大大提高了对小尺度目标的检测精度,受角度、光照强度等环境因素的影响较小,具有良好的鲁棒性和实用性,能够实现对于电力开关柜状态的实时核验。
本文所述方法能够实现对类似开关柜场景中的目标较为准确的识别,但在识别速度上仍有提高的空间。在后续的工作中,将继续研究在实时性方面的改进措施,进一步提高网络的实用性,实现对电力开关柜状态的边端实时,准确识别。