基于改进YOLOv4 的变电站缺陷检测①
2022-06-29茅耀斌
陈 婷, 周 旻, 韩 勤, 张 湘, 茅耀斌
1(南京理工大学 自动化学院, 南京 210094)
2(浙江华云信息科技有限公司, 杭州 310030)
变电站中各类设备的可靠运行是变电站安全生产的重要基础. 由于变电设备大多处于露天环境, 可能出现呼吸器破损、硅胶变色、表盘模糊等缺陷以及存在异物、鸟巢等异常, 若未及时发现此类问题, 可能造成不同等级的电力事故[1]. 因此, 变电设备的定期巡检是变电站安全运作的重要保障. 然而, 传统的人工巡检难以做到对变电站安全隐患、设备缺陷的及时、全面发现, 导致其无法为变电站的可靠运转提供安全保障. 近年来, 图像视频处理以及计算机视觉技术的发展极大地提高了变电站巡检质量和效率. 通过巡检机器人或无人机拍摄现场设备, 技术人员可利用相关技术直接对获取的图片或视频信息进行批量检测. 因此, 基于图像处理的缺陷检测方法研究, 对实现变电站设备的全面诊断、检查, 以及进一步提升巡检工作开展的效率和质量具有重要意义. 如何提升设备缺陷检测性能, 为智能化巡检提供更先进的技术支撑, 成为现阶段电力领域的研究重点.
传统的图像识别方法大多依赖于手工设计的特征,如尺度不变特征、梯度直方图特征等, 根据特征点间的匹配情况锁定对象位置, 实现目标检测. 对于变电站场景, Cerón 等[2]根据圆对称几何关系, 利用Canny 算子对输电线路进行检测. Pernebayeva 等[3]使用滑窗提取绝缘子特征, 利用支持向量机进行分类, 实现绝缘子表面冰雪覆盖检测. 侯一民等[4]利用改进SIFT 方法提取设备特征, 实现变压器、刀闸定位. 然而, 传统方法存在大量漏检、错检情况, 泛化能力较弱. 随着深度学习的迅猛发展, 使用卷积神经网络提取特征的方式逐渐取代手工特征设计. 李文璞等[5]使用Faster R-CNN[6]实现了对变电设备红外图像的缺陷检测. 尹子会等[7]基于改进的Faster R-CNN 实现了变电站设备4 类常见缺陷的检测与识别. 但Faster R-CNN 属于两阶段目标检测, 模型尺寸较大, 检测速度较慢. YOLO 系列[8,9]将目标检测问题作为回归问题, 在产生候选区域的同时完成分类和定位, 推理速度较快. 田二胜等[10]提出基于YOLOv4 的输电线路外破隐患识别算法, 对吊车、塔吊等施工机械进行检测.
YOLOv4 是一种优秀的目标检测算法, 可用于变电站异物和设备缺陷检测. 然而, 鸟巢、表盘模糊、呼吸器破损等缺陷检测任务存在以下难点: 一方面, 变电站背景信息复杂, 不同类别之间的特征差距较大, 同一类别部件的破损或模糊种类较多、形状多样, 尤其样本数量有限且样本存在类别不均衡问题, 难以提取到丰富的特征以应对不同的物体; 另一方面, 由于拍摄角度多变, 同一类目标的尺度变化较大, 也带来检测困难.原YOLOv4 在解决这些问题上还不够强大, 因此, 本文从提高特征提取能力和增加感受野两点上对原始YOLOv4 进行改进: 1) 为解决背景复杂、特征差距大、形状多样且样本数量有限问题, 本文在主干网络中引入优化的CBAM[11]注意力机制, 更准确地聚合物体特征; 2)为解决拍摄角度多、尺度变化大问题, 在PAN[12]的上、下采样模块使用空洞卷积增大感受野,获取更广泛的特征表示, 同时减少采样模块造成的特征损失. 实验结果证明了两项改进的有效性, 表明改进后的YOLOv4 能够更好地实现变电站鸟巢、表盘模糊、呼吸器硅胶变色以及呼吸器硅胶筒破损4 类缺陷的检测任务.
1 YOLOv4 目标检测算法原理
YOLOv4 作为YOLO 系列的第4 代检测模型, 其基本思想是将整张图像作为网络输入, 直接在输出层回归边界框的位置及其所属类别. YOLOv4 的网络结构如图1 所示, 图的左半部分为网络主体结构, 其中CBM、CBL、CSP、SPP、上采样和下采样的详细结构由图1 右边的子模块部分具体描述. 由图1 可知,YOLOv4 网络主要包含以下3 部分: 用于提取特征的全卷积主干网络CSPDarknet53、用于特征融合的SPP[13]和PAN 模块以及3 个检测头Head.
图1 YOLOv4 网络结构
主干部分由5 个CSP[14]模块组成, 每个模块的第一个卷积核步长stride 设置为2, 根据式(1), 当卷积核尺寸Fsize为3, padding 为1 时, 若步长S为2, 则特征图的输出宽高尺寸将缩小为输入的一半. 因此, 特征图在整个主干网络中将经历5 次缩小, 当输入为416×416时, 主干最后3 层的特征图大小分别为52×52、26×26、13×13.
对主干网络获取的3 个不同尺度的特征映射,YOLOv4 进一步使用SPP 和PAN 做特征融合. 其中,PAN 是主干层到检测层的重要纽带, 它首先进行深层到浅层的上采样和特征拼接, 传达强语义特征, 随后进行浅层到深层的下采样和特征拼接, 传达强定位特征,两者结合, 实现有效特征聚合.
特征融合输出的3 个特征层分别送往3 个检测头Head 进行预测, 每层分配3 个不同尺寸的先验框. 假设当前特征层的宽高为a, 则当前层将被划分为a×a个网格, 每个网格按照3 个先验框尺寸进行预测, 则一共有a×a×3个预测框. 每个预测框需要预测的内容有:当前框的中心点坐标和宽高(x,y,w,h)、当前框的置信度Pconf以及当前框c个类别的概率. 因此, 当前层的输出尺寸为a×a×3×(c+5). 合并3 个检测头的预测结果后, 利用设定的置信度阈值以及DIoU-NMS[15]非极大值抑制, 去除错误、冗余预测框, 获得最终检测目标.
2 YOLOv4 算法改进
在变电站环境中对设备进行缺陷检测时, 由于背景干扰信息较多, 且缺陷或异物的形状、颜色等复杂多变, 尤其在实际电力应用中, 缺陷样本的数量非常有限, 直接使用YOLOv4 难以提取足够的特征应对多样化、多尺度目标, 可能出现较多误检、漏检情况. 为进一步获取更丰富的多样化特征, 提高检测精度, 本文从主干网络和特征融合两方面对YOLOv4 进行改进, 然后基于改进的YOLOv4 算法实现对鸟巢、表盘模糊、呼吸器硅胶变色以及呼吸器硅胶筒破损4 类缺陷的检测识别. 改进后的YOLOv4 网络结构如图2 所示, 其中粉色部分为改进模型增加的模块, 相比图1, 主要增加了CBAM 模块以及优化了上采样、下采样结构. 根据图2, 改进后的YOLOv4 首先使用嵌入CBAM 注意力的全卷积网络提取输入图像特征, CBAM 依据人为引入的先验知识主动关注重要信息, 有益于关键特征的提取; 随后对3 个尺度的特征图采用PAN 进行信息融合, 其中尺度的扩大缩小涉及采样模块, 采样模块使用空洞卷积, 使感受野在原有基础上进一步扩大, 更好地包含不同形状、尺度的目标对象, 同时采样模块融合了更广范围的特征, 可降低采样带来的特征损失与数据破坏; 最后利用融合输出的3 个特征层实现目标预测.
图2 YOLOv4 改进算法网络结构(粉色部分为改进算法增加的模块)
2.1 基于注意力机制的主干网络改进
卷积注意力模块(convolutional block attention module, CBAM)是一种轻量、通用的注意力机制, 相较于主流的SE (squeeze-and-excitation)[16]方法,CBAM 在其通道注意力的基础上叠加了空间注意力,其中通道注意力关注输入的语义信息, 空间注意力关注位置信息, 二者结合可以获得更好的特征表示. 原始YOLOv4 在特征融合部分使用了SAM 注意力, CBAM相较于SAM 虽然实现原理上稍微复杂, 但通过引入平均池化和最大池化两种先验特征, 模型表达更为高效,将其应用于主干网络, 可在一定程度上提升网络性能.
给定卷积神经网络生成的特征映射F∈RC×H×W,CBAM 从通道和空间两个维度上计算注意力, 计算过程如图3 所示. 首先, 为高效计算通道注意力, 使用最大池化和平均池化对空间维度进行压缩, 生成两个一维向量描述通道重要性, 将两个一维向量送入由MLP 组成的共享网络后按元素相加获得通道注意力MC∈RC×1×1,将该注意力与输入特征按元素相乘, 获得初步调整的特征图F′; 其次, 在通道维度上对F′做最大池化和平均池化, 得到两个不同的二维特征描述, 将两个二维特征合并后再执行卷积和激活生成空间注意力MS∈R1×W×H,将空间注意力与F′按元素相乘得到最终输出F′′. 整个过程的数学描述如下所示:
图3 CBAM 通道注意力与空间注意力计算示意图
其中,MC与MS首先要进行广播以匹配维度, 符号⊗ 表示逐元素相乘.
观察通道注意力模块可以发现, 对于初步提取的最大值池化特征和均值池化特征, CBAM 采用全连接层分别对二者做通道特征聚合. 考虑到全连接层的参数量较大, 且由于相邻通道间往往相关性更大, 使用全连接会产生较多冗余计算, 因此, 本文采用一维卷积代替全连接[17]. 一维卷积只在宽或高单个方向上进行滑窗操作并相乘求和, 由于同一个窗口内是权值共享的,因此能有效降低参数量与计算量, 轻松实现跨通道的信息交互与整合. 通过改变卷积核的数量, 可以实现降维和升维, 本文将通道数先缩小为原来的1/8, 随后升至初始维度. 两个池化特征经过两次卷积后按元素相加, 最后通过Sigmoid 函数生成通道注意力.
对于YOLOv4 的特征提取主干网络, 本文在其每个CSP 模块后引入优化后的CBAM 注意力模块, 如图2 的主干部分所示, 对每个CSP 的输出特征层先后进行通道和空间两个维度上的加权处理, 使网络更关注重要的有效信息而抑制无效信息, 提高检测性能.
2.2 基于多尺度特征融合的采样模块改进
特征融合是对不同尺度的特征映射在上采样和下采样的过程中进行信息交互, 实现浅层网络的语义信息学习和深层网络的定位信息学习, 然而在一系列上采样和下采样过程中, 信息的传递不可避免地存在损失. 具体来说, 上采样是通过插值的方式将特征映射的尺寸扩大, 插值会导致一些小目标的数据被破坏, 无法重建回原始空间信息; 下采样是通过将步长stride 设为2 使特征映射的尺寸减小, 等价于做特征压缩, 这一过程会导致内部数据结构和空间层级化信息丢失. 另外, 由于部件本身以及拍摄角度的原因, 目标对象的尺度和形状差异较大, 需要包含更广的尺度以融入更多、更丰富的特征. 为改善以上问题, 本文使用空洞卷积代替普通卷积来增大感受野, 所得更广尺度的特征与原始尺度特征进行融合, 层次化信息更丰富, 在采样时, 能够保留更多信息, 减少特征丢失.
空洞卷积又称扩张卷积, 相比于标准卷积, 增加了一个扩张率参数, 用来表示卷积核各数据间的间隔数量. 图4 展示了两种不同扩张率的卷积, 其中, 图4(a)表示3×3 且扩张率为1 的卷积核, 等价于标准卷积; 图4(b)表示3×3 且扩张率为2 的空洞卷积, 在执行卷积运算前, 空洞处先进行补零操作, 形式上类似于5×5 卷积.可见, 一个扩张率为2 的3×3 空洞卷积, 感受野等价于一个5×5 的标准卷积, 而参数只需要9 个. 表明在相同计算条件下, 空洞卷积可以提供更大的感受野. 考虑到空洞卷积本身的实现效率低于普通卷积, 因此仅在关键的、易造成特征丢失的上采样、下采样模块中引入空洞卷积, 如图2 中PAN 的采样部分所示, 采用空洞卷积有效增大感受野, 融合更广尺度的特征, 从而更好地保留图像空间特征, 减少信息损失和数据破坏.
图4 标准卷积与空洞卷积示意图
3 实验与结果分析
3.1 实验数据集及评价指标
通过变电站现场拍摄和网络抓取两种方式, 本文获取了包含表盘模糊、呼吸器硅胶变色、呼吸器破损和鸟巢4 种缺陷的6571 张图片, 其中70%数据为现场采集图片. 各类样本图像分布为: 表盘模糊2259 张,硅胶变色1549 张, 呼吸器破损405 张, 鸟巢2358 张.该数据集涵盖了不同天气状况、光照强度下的图片,且图片中同时包含了一定数量的清晰表盘和正常呼吸器设备作为负样本. 选用LabelImg 工具标注图片, 生成相应标签集. 然后将整个数据集按5:1 随机分为训练集和测试集, 其中训练集再以10%的比例随机划分出验证集. 在训练前期, 将使用Mosaic 数据增强方法对训练集进一步扩充.
本文采用查准率P、查全率R、精度AP 以及各类的平均精度mAP 作为性能评价指标. 查准率与查全率的计算方法如下:
其中,TP表示实际为某类正样本, 预测为该类别且预测框与真实框IoU 大于0.5 的框的数量;FP表示预测类别错误或IoU 小于0.5 的情况;FN表示实际为负样本但预测出正样本的情况. 根据以上3 项即可求出查准率P和查全率R. 对不同置信度阈值求取不同的P、R组合, 即可得到P-R曲线, 该曲线与坐标轴围成的面积表示为AP, 用来衡量某个类别的检测精度,AP 越大, 精度越高. 对每类AP 求平均值, 得到各类的平均检测精度mAP, 衡量模型整体检测精度.
另外, 采用每秒处理帧数(frames per second, FPS)来描述模型的推理速度, 其大小等于模型检测时间的倒数.
3.2 实验过程
基于改进YOLOv4 算法的变电站缺陷检测实验均在同一实验环境下完成. 实验平台为Ubuntu 18.04.5 操作系统, 显卡为NVIDIA GeForce RTX 3090, 运行内存为24 GB. 深度学习软件环境为CUDA 11.1、Python 3.7.10、PyTorch 1.8.1.
本文设定网络的输入大小为416×416, 训练时首先加载YOLOv4 在COCO 数据集上的预训练模型作为特征提取器, 当前网络的主干层先冻结, 仅训练剩余层的参数, 迭代50 轮后解冻主干层, 训练全局网络参数.前50 轮训练中, 初始学习率设置为0.001, 解冻后再次训练50 轮, 学习率设置为0.0001, 均选择Adam 优化器对参数进行优化, 批次大小设为64.
3.3 结果与分析
(1)基于改进YOLOv4 的缺陷检测结果与分析
将基于改进YOLOv4 算法训练所得模型对缺陷进行检测, 典型检测结果如图5 所示. 进一步将模型在测试集上进行性能评估, 结果如表1 所示, 各类别中, 表盘模糊的查准率最高, 为96.43%, 呼吸器变色的查全率最高, 为97.06%, 该类别精度也达到了最高的98.42%,模型整体的平均精度为86.97%. 同时由表1 可知, 呼吸器破损的查准率较低, 主要原因是该类别的数据量相对不足, 对于各种破损情况, 无法精确识别; 鸟巢的查全率最低, 这与鸟巢处于高空、大小不一、存在遮挡等因素有重要关联. 根据结果分析可以发现, 对于表盘模糊、呼吸器变色两类缺陷, 由于目标的基本形状较为统一, 主要通过区分颜色和纹理特征判断是否存在缺陷, 因此精度较高; 而鸟巢和呼吸器硅胶筒破损,会出现结构残缺的情况, 目标形状复杂多变, 因而检测难度较大, 精度相对较低.
表1 改进YOLOv4 算法性能评估(%)
图5 缺陷检测效果图
(2)消融实验
对比本文算法、初始YOLOv4 以及单独应用第2.1 节、第2.2 节改进方法在测试集上的性能, 其结果如表2 所示. 从表中可知, 单独应用CBAM 注意力对各类别的精度以及平均精度均有一定提升, 证明了网络特征提取能力的加强能够有效提升模型精度; 使用空洞卷积除了鸟巢精度没有提升外, 其余指标尤其是mAP均都得到优化, 证明扩大感受野对模型性能提升有一定的帮助. 同时运用两种优化方法时, 最终的mAP 达到了86.97%, 相比原始YOLOv4 提升了2.78%, 表明了两项优化结合的有效性. 尽管鸟巢AP 略有降低, 但模型更加关注数据量较少的呼吸器破损类别, 并将其AP 提升了7.77%, 极大地弥补了样本量不足的弊端,同时这也对模型整体性能优化发挥了重要作用.
表2 消融实验性能对照(%)
(3)不同模型输入尺寸性能对比
为进一步探索模型输入尺寸对性能的影响, 本文将模型的输入尺寸扩大到608×608, 然后将其与416×416 的模型做性能对比, 结果如表3 所示. 可以看出, 增大模型输入尺寸对鸟巢的检测精度有了较大提升, 模型mAP 也因此而提高到87.61%; 然而, 基于GPU 的推理速度从57.9 fps 降至39.3 fps, 减少了32%, 这是由于增大输入尺寸, 模型的计算量也随之增加, 对推理平台的算力要求也更高. 因此, 当模型的应用场景对实时性或推理时间要求较高时, 适合采用416×416 的输入;相反, 若对模型精度要求更高, 且设备算力允许时, 可增大输入尺寸.
表3 不同模型输入尺寸性能对照
4 结论
本文为提高变电站缺陷检测精度, 提出基于改进YOLOv4 的变电站缺陷检测算法, 首先, 利用优化的CBAM 注意力提升主干网络的特征提取能力; 其次, 将空洞卷积应用于特征融合层中的上采样与下采样中,通过增大感受野获得较全的语义信息; 最后, 将改进算法在四类缺陷样本集上进行测试, 4 类缺陷的mAP 达到86.97%, 相较于原始YOLOv4 提升了2.78%, 证明了算法的优越性.
实验结果表明, 改进的YOLOv4 在缺陷样本数量有限、类别数量不平衡且目标形状和尺度多变的条件下, 提升了变电站设备缺陷检测性能, 为变电站运维智能化提供了有效手段, 具有一定的实际应用价值. 后继工作将进一步对所改进的网络进行压缩和约简, 在保证精度的同时降低参数量与计算量, 提高推理速度, 实现实时检测.