一种改进YOLOv7-tiny的轻量级绝缘子缺陷检测方法
文献发布时间:2024-04-18 20:01:30
技术领域
本发明涉及电力工程和计算机视觉工程中缺陷检测领域,具体涉及电力系统运行维护和绝缘子缺陷的轻量化实时自动检测研究。
背景技术
电力系统包括发电、输电、配电和用电等多个环节,我国电力体系庞大且错综复杂,必须严格遵循各个环节的工作要求,以确保电力系统能够在安全而稳定的状态下运行。在这个复杂的体系中,输电线路承载着持续而稳定的电能传输使命,具有不可替代的重要地位。绝缘子作为输电线路中不可或缺的组成部分,其首要任务在于为电力导线提供稳定而必要的支撑,并具有电气隔离功能。这一双重作用不仅保障了电力系统的稳定性,还为电能传输提供了坚实的基础。
据研究数据表明,在电力系统的各类故障中,绝缘子缺陷所占比例最为显著。因此,及时监控输电线路中绝缘子的工作状态,定期进行输电线路巡检工作排查绝缘子故障十分必要。传统的人工巡检方式受制于天气等因素,同时许多铁塔位于人迹罕至的地区或山区,使得巡检人员需要攀登险峻山峰,不仅任务繁重、风险极高而且效率低下。由于机器人巡检在适应多样环境方面具备突出优势,同时表现出稳定、安全、易维护且高准确率的特点,其巡检效能已在很大程度上超越了传统人工巡检方式。借助计算机技术和通信技术的有机融合,机器人巡检已被应用于输电线路的巡检任务。
随着深度学习技术的快速进步,越来越多的研究学者借助深度学习技术来深入研究绝缘子在图像中的识别与缺陷定位问题。相较于传统的人工巡检方式,这种智能化的巡检策略不仅降低了资金和人力的投入,同时还显著提升了巡检效率与缺陷检测的准确度。目前形成了以FasterR-CNN为代表的二阶段和以YOLO为代表的一阶段目标检测方法。
本发明目的在于提供一种改进YOLOv7-tiny的轻量级绝缘子缺陷检测方法,旨在解决当前存在的问题,即绝缘子缺陷的检测数据集不足的情况,使用的数据集较少,势必会影响模型的训练效果,导致检测效果不佳。另一方面在于,过于复杂的深度学习网络可能导致参数冗余、模型庞大、推理速度缓慢。因此,设计准确而又精简的深度学习模型十分必要。
发明内容
为了达到上述目的,本发明提供了一种改进YOLOv7-tiny的轻量级绝缘子缺陷检测方法,包括以下步骤:
步骤1所述构建绝缘子缺陷图像检测数据集,采用的绝缘子图像来源于公开绝缘子数据集和网络爬虫爬取绝缘子数据,第一个为中国输电线路绝缘子数据集(ChinesePower Line Insulator Dataset,CPLID),共848张绝缘子图像,第二个为某市供电局巡检人员执行巡检任务时拍摄的图像,共计740张绝缘子图像。
步骤1所述原始绝缘子图像的分辨率为4608×3456,本文首先对合并后的数据集进行降采样处理,将所有的图像分辨率统一调整为1024×1024,原始数据集总计1588张;
步骤2所述基于YOLOv7-tiny目标检测网络,构建改进YOLOv7-tiny的轻量化绝缘子缺陷检测模型,对特征提取网络、Neck特征融合网络以及Head检测网络进行改进,达到更好的检测效果;
步骤3对训练数据进行数据增强包括以下步骤:
步骤3.1:Mixup数据增强,从训练样本数据中随机选取两个样本,并对它们进行随机加权求和。利用加权求和后的标签与模型的预测结果之间的损失进行计算,在反向传播过程中根据损失来更新参数;
步骤3.2:Mosaic数据增强,将四张图像进行拼接,每张图像都对应边界框信息。通过这种拼接方式,生成了一张新的图像,并且也得到了对应的边界框;
步骤4对ShuffleNet-v2进行改进,提取绝缘子缺陷特征主要包括以下步骤:
步骤4.1:ShuffleNet-v2作为ShuffleNet-v1的进阶版本,其性能在相同的计算环境下不仅领先于ShuffleNet-v1,其检测精度还超过了MobileNet-v2。
ShuffleNet-v2通过使用分组卷积和通道重排操作来降低计算量,并提出了四条高效CNN的设计准则;
第一条,保持相同输入和输出通道宽度,从而最小化计算机的占用内存;
第二条,使用组卷积对内存的访问成本影响较大,过多的使用组卷积会导致更多的内存占用量;
第三条,网络内部分支影响并行计算效率,分支越多,网络的并行效率越低;
第四条,通过合理地剪枝网络结构,可以减少冗余参数,显著提高网络的检测速度;
步骤4.2:首先通过通道分离(Channel Split)操作,将输入特征通道分成两部分,一个分支不做任何处理,另一个分支经过三个1×1卷积操作(三个分支通道数相同),然后经过深度可分离卷积,再经过1×1卷积操作并进行Concat操作,最后经过Channel Shuffle将特征进行通过更新,得到与输入特征相同的输出特征,避免了通道间的add操作,提高了网络的推理速度,图2(a)所示为ShuffleNet-v2的基本模块;
下采样模块对基本模块进行了改进,舍弃开始处的Channel split操作,因此Concat层后输出通道数是输入通道的两倍,同时在Shortcut分支采用深度可分离卷积和1×1卷积操作,可以提取更加丰富的特征,图2(b)所示是ShuffleNet-v2的下采样模块;
步骤4.3:将CBAM注意力机制模块嵌入到ShuffleNet-v2的基本模块;
将其添加到卷积分支和Concat层的后面,可以简化网络特征学习的复杂性,增强卷积神经网络的鲁棒性,并且可以增强网络的非线性,从而更加高效地进行数据拟合,提高网络对关键特征的识别能力,减少网络对冗余特征的计算;
如图2(b)所示为ShuffleNet-v2的下采样模块,该模块通过在Shortcut分支采用深度可分离卷积和1×1卷积操作,使网络提取的特征更加全面。然而采用小尺寸卷积导致网络感受野较小,在分类检测任务中精度不高。为了网络增大感受野,本发明对下采样模块进行改进;
如图3所示,使用空洞卷积代替普通卷积,从而增大网络的感受野,空洞卷积不仅可以在相同计算条件下增大感受野检测分割大目标,而且相较于下采样增大了分辨率进行精确定位目标。
步骤4.4:引入CBAM注意力机制模块;
CBAM注意力模块由通道注意力机制与空间注意力机制组成,通道注意力模块能够自适应地调整通道权重,使得网络可以重点关注对绝缘子缺陷检测任务有贡献的特征通道,同时抑制无关通道的影响;
空间注意力模块能够提取出目标区域的重要特征,同时抑制背景的影响,从而更准确地定位绝缘子缺陷位置,其整体流程图如图4所示;
输入特征F∈R
式中:其中,W
空间注意力机制聚合重要特征信息F′得到重要特征的位置;
特征F′∈R
通过Sigmoid激活函数后,得到空间注意力映射M
步骤4.5:采用更加有效的Mish激活函数;
原始的ShuffleNet-v2架构所采用的是ReLU激活函数,其表达式如下所示:
ReLU激活函数反向传播过程中可能存在梯度为0的情况,无法进行梯度更新;当输入为负数时,则陷入神经元“死亡”现象,其输出仅限于0或者正数;
为了克服ReLU激活函数的缺点,本发明采用Mish激活函数,其表达式如下所示:
Mish=x×tanh(ln(1+e
Mish激活函数具有以下优点;
首先激活函数在整个定义域上都是光滑的,没有像ReLU那样的不可导点,因此可以在更广泛的优化算法中使用,减少梯度消失和爆炸的问题。
Mish函数能够在保持较大梯度的同时,对负值进行压缩,这样可以更好地限制网络的输出范围,防止梯度更新过快;
与ReLU相比,Mish函数能够更有效地利用输入数据中的信息,减少神经元的稀疏性,提高网络的泛化能力和学习能力;
采用Mish激活函数代替ReLU激活函数可以提高网络的检测性能,使模型的总体检测效果更好,其与ReLu激活函数的对比图像如图5所示;
步骤5采用特征金字塔结构(FPN)和路径聚合网络结构(PAN)共同进行特征聚合;
步骤5.1:FPN是一个自顶向下的特征金字塔,通过CNN结构进行特征计算,通过上采样的方式融合高层与底层特征;
步骤5.2:PAN结构是在特征金字塔结构(FPN)后面添加一个自下而上的金字塔,完成不同主干层对不同检测层的特征聚合;
步骤6:对头部检测网络进行改进;
步骤6.1:YOLOv7头部网络使用了一系列卷积层来提取特征并进行目标检测;
卷积层主要由多个卷积核构成,通过卷积核提取图像中的局部特征信息;
通常根据卷积核的不同将卷积划分为不同类型,原始YOLOv7头部网络采用了标准卷积,过用传统的矩阵采样方法对图像进行卷积运算,从而获得抽象的特征表示,普通卷积示意图如图6所示,其公式如下所示:
式中,f(y
深度可分离卷积分为深度卷积和点卷积(1×1卷积),其处理过程如所示;
深度卷积主要通过一个或多个通道组为单位,每个深度卷积对特征图的单通道进行处理,对应的卷积核提取特征图的局部特征信息,并将输出的特征图进行融合;
然而,深度卷积提取的特征信息相对独立,忽略了不同通道间的特征信息,导致输出的特征图在通道维度上关联特征信息的不足;
因此,采用点卷积对输出特征图进行通道转换。点卷积相当于大小为1×1的卷积,将前面深度卷积所得到的特征图进行通道融合并输出最终结果;
假设输入特征图尺寸为F
标准卷积操作采用N个尺寸为H×W的卷积核对输入特征图进行卷积操作并输出最后结果;
因此,标准卷积所占用的参数量为H×W×N×M,其计算量为H×W×N×M×F
对于深度可分离卷积,深度卷积的数量为M,卷积核尺寸为H×W×1,输出的中间特征图尺寸为F
点卷积的数量为N,卷积核尺寸为1×1×M,输出的特征图尺寸为F
通过将深度可分离卷积替换标准卷积可以大幅度减少参数量和计算量,其计算成本与普通卷积对比如下所示:
对比参数量和计算量的比值可知,随着卷积核的尺寸增大,深度可分离卷积的计算成本减少更加显著,而准确度基本没有降低;
步骤6.2:引入Ghost卷积;
Ghost卷积是Ghost-Net网络中的一个卷积模块,它可以降低卷积神经网络的计算量,使模型更加轻量化,从而易于部署终端设备,其与普通卷积对比如图8所示;
该模块主要由两部分构成,首先采用少量的标准卷积提取输入特征图的局部特征信息,然后对特征图进行更加简单的线性变化运算生成多个特征图;
最后通过Concat操作将两部分的特征图进行拼接得到最终的特征图;
相较于标准卷积神经网络,Ghost卷积模块可以保证在识别效果几乎一样的情况下,大幅减少网络的总体参数量,减少了网络的计算成本;
本发明在网络中引入Ghost卷积模块,采用Ghost卷积模块替换传统卷积进行上采样和下采样;
同时在ELAN模块中也添加了Ghost卷积,将其嵌入在Concat层前面,在减少模型参数量的同时保证了检测精度要求;
Ghost卷积与改进的ELAN模块结构图如图9所示;
结合步骤4-6的改进方法,最终本发明提出的基于改进YOLOv7-tiny的轻量化绝缘子缺陷检测模型总体结构如图10所示
步骤7:在Windows操作系统上,设置最优的网络训练参数进行模型训练主要分为以下步骤:
步骤7.1:在Windows10操作系统上进行训练,深度学习框架为Pytorch,GPU为GTX1080Ti,CPUInteli5-9400,Python版本为3.6.10;
步骤7.2:首先进行主干特征提取网络权重的初始化,如果为卷积层,则权重初始化为kaimingnormal distribution;
所示;
如果为正则化层,则权重初始化为1;
步骤7.3:网络超参数动量设置为0.9,权重衰减系数为0.0005,采用Adam和SGD优化器,NMS设置为0.5;
步骤7.4:模型评价指标为:
准确度(Precision,P)公式为:
召回率(Recall,R)公式为:
模型的平均精度(AP)公式为:
交并比阈值为0.5下的平均检测精度(Mean Average Precision,mAP)公式为:
式中,C表示数据集类别数,c表示某一类别;
根据评价指标对不同检测算法进行检测结果对比,如图11所示。
附图说明
图1为本发明实施例提供基于改进YOLOv7-tiny的轻量级绝缘子缺陷检测系统整体框架图。
图2为本发明实施例提供的改进的ShuffleNet-v2基本模块图。
图3为本发明实施例提供的改进的逐通道卷积图。
图4为本发明实施例提供的注意力机制工作流程图。
图5为本发明实施例提供的ReLU激活函数与Mish激活函数对比图。
图6为本发明实施例提供的普通卷积示意图。
图7为本发明实施例提供的深度可分离卷积示意图。
图8为本发明实施例提供的普通卷积与Ghost卷积对比图。
图9为本发明实施例提供的Ghost卷积与改进的ELAN模块图。
图10为本发明实施例提供的改进的YOLOv7-tiny网络架构。
图11为本发明实施例提供的不同算法检测结果对比图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1~图11,本发明提供一种技术方案:一种改进YOLOv7-tiny的轻量级绝缘子缺陷检测方法,该方法包含如下几个步骤:
步骤S1:获取输电线路缺陷绝缘子图像并构建私有绝缘子图像数据集,包括搜集部分开源电力绝缘子图像以及在网络爬取的电力绝缘子的图像;
步骤S2所述基于YOLOv7-tiny目标检测网络,构建改进YOLOv7-tiny的轻量化绝缘子缺陷检测模型主要包括以下步骤:
步骤2.1:采用改进的ShuffleNet-v2作为主干特征提取网络;
步骤2.2:颈部网络采用路径聚合网络进行特征融合网络;
步骤2.3:检测头采用深度可分离卷积和Ghost卷积代替普通卷积;
步骤S3对训练数据进行数据增强包括以下步骤:
步骤3.1:Mixup数据增强,从训练样本数据中随机选取两个样本,并对它们进行随机加权求和。利用加权求和后的标签与模型的预测结果之间的损失进行计算,在反向传播过程中根据损失来更新参数;
步骤3.2:Mosaic数据增强,将四张图像进行拼接,每张图像都对应边界框信息。通过这种拼接方式,生成了一张新的图像,并且也得到了对应的边界框;
步骤S4对ShuffleNet-v2进行改进,提取绝缘子缺陷特征主要包括以下步骤:
步骤4.1:ShuffleNet-v2作为ShuffleNet-v1的进阶版本,其性能在相同的计算环境下不仅领先于ShuffleNet-v1,其检测精度还超过了MobileNet-v2。
ShuffleNet-v2通过使用分组卷积和通道重排操作来降低计算量,并提出了四条高效CNN的设计准则;
第一条,保持相同输入和输出通道宽度,从而最小化计算机的占用内存;
第二条,使用组卷积对内存的访问成本影响较大,过多的使用组卷积会导致更多的内存占用量;
第三条,网络内部分支影响并行计算效率,分支越多,网络的并行效率越低;
第四条,通过合理地剪枝网络结构,可以减少冗余参数,显著提高网络的检测速度;
步骤4.2:首先通过通道分离(Channel Split)操作,将输入特征通道分成两部分,一个分支不做任何处理,另一个分支经过三个1×1卷积操作(三个分支通道数相同),然后经过深度可分离卷积,再经过1×1卷积操作并进行Concat操作,最后经过Channel Shuffle将特征进行通过更新,得到与输入特征相同的输出特征,避免了通道间的add操作,提高了网络的推理速度,图2(a)所示为ShuffleNet-v2的基本模块;
下采样模块对基本模块进行了改进,舍弃开始处的Channel split操作,因此Concat层后输出通道数是输入通道的两倍,同时在Shortcut分支采用深度可分离卷积和1×1卷积操作,可以提取更加丰富的特征,图2(b)所示是ShuffleNet-v2的下采样模块;
步骤4.3:将CBAM注意力机制模块嵌入到ShuffleNet-v2的基本模块;
将其添加到卷积分支和Concat层的后面,可以简化网络特征学习的复杂性,增强卷积神经网络的鲁棒性,并且可以增强网络的非线性,从而更加高效地进行数据拟合,提高网络对关键特征的识别能力,减少网络对冗余特征的计算,如图2(c)、图2(d)所示;
如图2(b)所示为ShuffleNet-v2的下采样模块,该模块通过在Shortcut分支采用深度可分离卷积和1×1卷积操作,使网络提取的特征更加全面。然而采用小尺寸卷积导致网络感受野较小,在分类检测任务中精度不高。为了网络增大感受野,本发明对下采样模块进行改进;
如图2(c)所示,使用空洞卷积代替普通卷积,从而增大网络的感受野,空洞卷积不仅可以在相同计算条件下增大感受野检测分割大目标,而且相较于下采样增大了分辨率进行精确定位目标。
步骤4.4:引入CBAM注意力机制模块,如图2(c)、图2(d)所示;
CBAM注意力模块由通道注意力机制与空间注意力机制组成,通道注意力模块能够自适应地调整通道权重,使得网络可以重点关注对绝缘子缺陷检测任务有贡献的特征通道,同时抑制无关通道的影响;
空间注意力模块能够提取出目标区域的重要特征,同时抑制背景的影响,从而更准确地定位绝缘子缺陷位置,其整体流程图如图4所示;
输入特征F∈R
式中:其中,W
空间注意力机制聚合重要特征信息F′得到重要特征的位置;
特征F′∈R
通过Sigmoid激活函数后,得到空间注意力映射M
步骤4.5:采用更加有效的Mish激活函数;
原始的ShuffleNet-v2架构所采用的是ReLU激活函数,其表达式如下所示:
ReLU激活函数反向传播过程中可能存在梯度为0的情况,无法进行梯度更新;当输入为负数时,则陷入神经元“死亡”现象,其输出仅限于0或者正数;
为了克服ReLU激活函数的缺点,本发明采用Mish激活函数,其表达式如下所示:
Mish=x×tanh(ln(1+e
Mish激活函数具有以下优点;
首先激活函数在整个定义域上都是光滑的,没有像ReLU那样的不可导点,因此可以在更广泛的优化算法中使用,减少梯度消失和爆炸的问题。
Mish函数能够在保持较大梯度的同时,对负值进行压缩,这样可以更好地限制网络的输出范围,防止梯度更新过快;
与ReLU相比,Mish函数能够更有效地利用输入数据中的信息,减少神经元的稀疏性,提高网络的泛化能力和学习能力;
采用Mish激活函数代替ReLU激活函数可以提高网络的检测性能,使模型的总体检测效果更好,其与ReLu激活函数的对比图像如图5所示;
步骤S5采用特征金字塔结构(FPN)和路径聚合网络结构(PAN)共同进行特征聚合;
步骤5.1:FPN是一个自顶向下的特征金字塔,通过CNN结构进行特征计算,通过上采样的方式融合高层与底层特征;
步骤5.2:PAN结构是在特征金字塔结构(FPN)后面添加一个自下而上的金字塔,完成不同主干层对不同检测层的特征聚合;
步骤S6:对头部检测网络进行改进;
步骤6.1:YOLOv7头部网络使用了一系列卷积层来提取特征并进行目标检测;
卷积层主要由多个卷积核构成,通过卷积核提取图像中的局部特征信息;
通常根据卷积核的不同将卷积划分为不同类型,原始YOLOv7头部网络采用了标准卷积,过用传统的矩阵采样方法对图像进行卷积运算,从而获得抽象的特征表示,普通卷积示意图如图6所示;
其公式如下所示:
式中,f(y
深度可分离卷积分为深度卷积和点卷积(1×1卷积),其处理过程如图7所示;
深度卷积主要通过一个或多个通道组为单位,每个深度卷积对特征图的单通道进行处理,对应的卷积核提取特征图的局部特征信息,并将输出的特征图进行融合;
然而,深度卷积提取的特征信息相对独立,忽略了不同通道间的特征信息,导致输出的特征图在通道维度上关联特征信息的不足;
因此,采用点卷积对输出特征图进行通道转换。点卷积相当于大小为1×1的卷积,将前面深度卷积所得到的特征图进行通道融合并输出最终结果;
假设输入特征图尺寸为F
标准卷积操作采用N个尺寸为H×W的卷积核对输入特征图进行卷积操作并输出最后结果;
因此,标准卷积所占用的参数量为H×W×N×M,其计算量为H×W×N×M×F
对于深度可分离卷积,深度卷积的数量为M,卷积核尺寸为H×W×1,输出的中间特征图尺寸为F
点卷积的数量为N,卷积核尺寸为1×1×M,输出的特征图尺寸为F
通过将深度可分离卷积替换标准卷积可以大幅度减少参数量和计算量,其计算成本与普通卷积对比如下所示:
对比参数量和计算量的比值可知,随着卷积核的尺寸增大,深度可分离卷积的计算成本减少更加显著,而准确度基本没有降低;
步骤6.2:引入Ghost卷积;
Ghost卷积是Ghost-Net网络中的一个卷积模块,它可以降低卷积神经网络的计算量,使模型更加轻量化,从而易于部署终端设备,其与普通卷积对比如图8所示;
该模块主要由两部分构成,首先采用少量的标准卷积提取输入特征图的局部特征信息;
然后对特征图进行更加简单的线性变化运算生成多个特征图;
最后通过Concat操作将两部分的特征图进行拼接得到最终的特征图;
相较于标准卷积神经网络,Ghost卷积模块可以保证在识别效果几乎一样的情况下,大幅减少网络的总体参数量,减少了网络的计算成本;
本发明在网络中引入Ghost卷积模块,采用Ghost卷积模块替换传统卷积进行上采样和下采样;
同时在ELAN模块中也添加了Ghost卷积,将其嵌入在Concat层前面,在减少模型参数量的同时保证了检测精度要求
Ghost卷积与改进的ELAN模块结构图如图9所示;
结合步骤4-6的改进方法,最终本发明提出的基于改进YOLOv7-tiny的轻量化绝缘子缺陷检测模型总体结构如图10所示;
步骤S7:在Windows操作系统上,设置最优的网络训练参数进行模型训练主要分为以下步骤:
步骤7.1:在Windows10操作系统上进行训练,深度学习框架为Pytorch,GPU为GTX1080Ti,CPU Intel i5-9400,Python版本为3.6.10;
步骤7.2:首先进行主干特征提取网络权重的初始化,如果为卷积层,则权重初始化为kaimingnormal distribution;
所示;
如果为正则化层,则权重初始化为1;
步骤7.3:网络超参数动量设置为0.9,权重衰减系数为0.0005,采用Adam和SGD优化器,NMS设置为0.5;
步骤7.4:模型评价指标为:
准确度(Precision,P)公式为:
召回率(Recall,R)公式为:
模型的平均精度(AP)公式为:
交并比阈值为0.5下的平均检测精度(Mean Average Precision,mAP)公式为:
式中,C表示数据集类别数,c表示某一类别。
- 同步信号块指示及确定方法、网络设备和终端设备
- 同步信号块指示及确定方法、网络设备和终端设备
- 同步信号块指示及确定方法、网络设备和终端设备
- 下行控制信息指示方法及网络侧设备
- 一种波束指示的处理方法、移动终端及网络侧设备
- 信息确定、信息指示方法、装置、终端及网络侧设备
- 信息确定方法、信息指示方法、终端及网络侧设备