本发明属于绝缘子缺陷检测和深度学习技术领域,尤其涉及基于改进resnest-rpn的绝缘子缺陷检测方法。
背景技术:
绝缘子是输电线路的重要组成部分,其主要功能是电气绝缘和线路支撑。当绝缘子出现断裂、裂纹、污垢等问题时,绝缘子极易击穿,导致绝缘子串两端绝缘电阻为零。绝缘子绝缘丧失,造成供电中断,造成停电。因此,为了定期检查和维护绝缘子,确保可靠供电系统的安全,必须准确识别出绝缘子的缺陷。
常见的绝缘子缺陷有断裂、裂纹和脏污,然而,由于实际中的绝缘子往往处于复杂的环境中,极易受到光和噪声的影响,很多方法在实际应用中效果不佳,很容易将阴影识别为缺陷。其次,不同类型的绝缘子在不同缺陷上表现出不同的特征,包括颜色特征、形状特征和区域特征。因此,需要根据这些特性设计出合理的缺陷检测方法。
技术实现要素:
针对背景技术存在的问题,本发明提供一种基于改进resnest以及改进多尺度rpn(regionproposalnetwork)的绝缘子缺陷检测网络。
为解决上述技术问题,本发明采用如下技术方案:基于改进resnest-rpn的绝缘子缺陷检测方法,包括以下步骤:
步骤1、确定数据集:基于无人机采集的一个缺陷绝缘子数据集,去除图像不清晰以及有歧义的图片,通过旋转、亮度调整、平移的数据增强技术,将其数据集图片数量增加;
步骤2、建立数据集的图像标签库:利用labelimg图像标注工具对绝缘子以及绝缘子上的缺陷进行标注;
步骤3、建立改进resnest以及改进多尺度rpn的绝缘子缺陷检测网络模型:将resnest和多尺度rpn进行改进,形成使用backbone为resnet50和resnet101的resnest作为特征提取基础网络,定义conv3、conv4、conv5代表基础网络结构中每个阶段的最后一个残差块resnet_3d、resnet_4f、resnet_5c;
步骤4、训练检测模型:利用pytorch1.5.1在python3.7进行训练;
步骤5、将测试集放到训练好的模型中进行测试:将测试的训练集输入到已经训练好的网络中进行绝缘子缺陷检测,得到绝缘子缺失检测框,以及性能评估数值。
在上述基于改进resnest-rpn的绝缘子缺陷检测方法中,步骤1的实现包括:将数据集图片数量增加至48000张,其中每种绝缘子共计12000张,每种绝缘子包含4320张缺陷绝缘子图片,7680张正常绝缘子图片,数据集分辨率均为224×224;且该绝缘子数据集上每种绝缘子共有3种绝缘子缺陷,分别是裂纹、破损和污秽,对于每一种绝缘子3种缺陷各有1440张图片。
在上述基于改进resnest-rpn的绝缘子缺陷检测方法中,步骤2所述图像标注工具将生成一个xml文件,每个xml文件与每一张图片一一对应,每个xml文件内包含绝缘子位置的边界框坐标、绝缘子的种类、缺陷位置的边界框坐标和缺陷的种类。
在上述基于改进resnest-rpn的绝缘子缺陷检测方法中,步骤3的实现包括:
步骤3.1、根据不同分辨率的特征层对于不同尺度绝缘子缺陷的有效性,通过多尺度检测方法联合多路径rpn生成的多尺度绝缘子缺陷候选集ei={es,ea,el}和跨尺度聚合特征网络模块得到的聚合特征qi={q3,q4,q5}提取候选区域特征编码;
步骤3.2、对于不同尺度集的候选区域使用对应的检测分支,每个检测分支训练都有真实类别标注xml*和真实标注框box*,单分支绝缘子缺陷检测训练的损失函数定义如下:
loss(xml,box)=loss1(xml,xml*) ω×xml*×loss3(box,box*)
其中,loss3为候选目标的回归损失函数且
在上述基于改进resnest-rpn的绝缘子缺陷检测方法中,步骤4的实现包括:
步骤4.1、在cpu为intel(r)xeon(r)gold6148@3.7ghz32gb、gpu为nvidiateslav10032gb和ubuntu16.04lts上运行;
步骤4.2、设置初始的训练和测试参数,用backbone为resnet50的resnest作为特征提取基础网络,通过多路径rpn中的主检测分支生成ei集合中的绝缘子缺陷候选区域匹配到相应的跨尺度聚合特征网络生成的聚合特征qi,从而得到该特征层的感兴趣区域;
步骤4.3、利用roi-pooling归一化提取的特征编码得到
与现有技术相比本发明基于resnest构建一个新的网络,在改进的resnest中加入改进的rpn进行特征提取,以便更好地检测绝缘子上的微小缺陷。提高了在复杂环境下绝缘子检测的准确性和检测图像的快速性,以确保供电系统的安全。本发明提出的提出了一种基于改进resnest以及改进多尺度rpn(regionproposalnetwork)的绝缘子缺陷检测网络能满足在无人机航拍绝缘子实时检测的要求。
附图说明
图1是本发明一个实施例的算法流程图;
图2是本发明一个实施例基于改进resnest的多尺度rpn检测网络的图片;
图3是本发明一个实施例所有网络在部分测试集上的测试结果的图片。
具体实施方式
下面将结合本发明实施例对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合具体实施例对本发明作进一步说明,但不作为本发明的限定。
为了解决在复杂环境下绝缘子检测的准确性和检测图像的快速性,本实施例提出了基于改进resnest-rpn的绝缘子缺陷检测方法,如图1所示,包括以下步骤:
s1,确定数据集:基于无人机采集的一个缺陷绝缘子数据集,去除图像不清晰以及有歧义的图片,通过旋转、亮度调整、平移等数据增强技术,形成数据集图片数量增加至48000张图片,其中每种绝缘子共计12000张图片,每种绝缘子包含4320张缺陷绝缘子图片,7680张正常绝缘子图片,数据集分辨率均为224×224,且绝缘子数据集上每种绝缘子共有3种绝缘子缺陷,分别是裂纹、破损和污秽。对于每一种绝缘子3种缺陷各有1440张图片。
s2,建立数据集的图像标签库:利用labelimg图像标注工具对绝缘子以及绝缘子上的缺陷进行标注。该工具将生成一个xml文件,每个xml文件与每一张图片一一对应,每个xml文件内包含绝缘子位置的边界框坐标、绝缘子的种类、缺陷位置的边界框坐标和缺陷的种类。
s3,建立改进resnest以及改进多尺度rpn的绝缘子缺陷检测网络模型:将resnest和多尺度rpn进行改进,形成本发明使用backbone为resnet50的resnest作为特征提取基础网络,定义conv3、conv4、conv5代表基础网络结构中每个阶段的最后一个残差块resnet_3d、resnet_4f、resnet_5c。再根据不同分辨率的特征层对于不同尺度绝缘子缺陷的有效性,通过多尺度检测方法联合多路径rpn生成的多尺度绝缘子缺陷候选集ei={es,ea,el}和跨尺度聚合特征网络模块得到的聚合特征qi={q3,q4,q5}提取候选区域特征编码。对于不同尺度集的候选区域使用对应的检测分支,每个检测分支训练都有真实类别标注xml*和真实标注框box*。本实施例单分支绝缘子缺陷检测训练的损失函数定义如下:
loss(xml,box)=loss1(xml,xml*) ω×xml*×loss3(box,box*)
其中,loss3为候选目标的回归损失函数且
基于改进resnest的多尺度rpn检测网络的图片如图2所示。
s4,训练检测模型:该训练在pytorch1.5.1在python3.7下实现的,pytorch是一种专门为深度学习模型构建的库。上述实验在cpu为intel(r)xeon(r)gold6148@3.7ghz32gb、gpu为nvidiateslav10032gb和ubuntu16.04lts上运行。设置初始的训练和测试参数,用backbone为resnet50的resnest作为特征提取基础网络,通过多路径rpn中的主检测分支生成ei集合中的绝缘子缺陷候选区域匹配到相应的跨尺度聚合特征网络生成的聚合特征qi,从而得到该特征层的感兴趣区域,然后利用roi-pooling归一化提取的特征编码得到
s5,将测试集放到训练好的模型中进行测试:将测试的训练集输入到已经训练好的网络中进行绝缘子缺陷检测。最终得到绝缘子缺失检测框,以及性能评估数值。所有网络在部分测试集上的测试结果如图3所示。
表1测试的实验数据
map是多个类别ap的平均值,map越大,网络的性能越好。
fps(framespersecond):指每秒处理图片张数,fps越高,网络速度越快。
表1显示了测试的实验结果,与以resnet50为骨干的原始resnest相比,改进的resnest提高了5.97%的map但降低了18.60%的fps,改进的多尺度rpn的加入在检测绝缘子缺陷方面有更好的准确性,检测速度也得到了提高,相对于传统rpn,改进的多尺度rpn提高了3.57%的map以及15.52%的fps,提高了网络的检测效率。因此该实施例能够满足实时检测的需要。
表2本实施例的方法与其他方法对比结果
由表2可知,具有改进的多尺度rpn的网络比原始网络性能更好,backbone为resnet50-rpn的fasterrcnn相比于backbone为resnet50的fasterrcnn的acc、map和auc分别提高了0.0475、5.6%和0.064,backbone为resnet50-rpn的提出的网络比backbone为resnet50-rpn的resnest的acc、map和auc分别提高了0.0388、3.00%和0.0332,fps提高了1.44。yolov3bytao的fps能达到23.26,这是因为yolov3会先用1×1的卷积核对feature降维,随后再利用3×3的卷积核升维,这个过程中,就会大大降低参数的计算量以及模型的大小。但yolov3的acc、map和auc只有0.8350、74.3和0.7566,不能满足实时绝缘子缺陷检测要求。
以上仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
1.基于改进resnest-rpn的绝缘子缺陷检测方法,其特征在于:包括以下步骤:
步骤1、确定数据集:基于无人机采集的一个缺陷绝缘子数据集,去除图像不清晰以及有歧义的图片,通过旋转、亮度调整、平移的数据增强技术,将其数据集图片数量增加;
步骤2、建立数据集的图像标签库:利用labelimg图像标注工具对绝缘子以及绝缘子上的缺陷进行标注;
步骤3、建立改进resnest以及改进多尺度rpn的绝缘子缺陷检测网络模型:将resnest和多尺度rpn进行改进,形成使用backbone为resnet50和resnet101的resnest作为特征提取基础网络,定义conv3、conv4、conv5代表基础网络结构中每个阶段的最后一个残差块resnet_3d、resnet_4f、resnet_5c;
步骤4、训练检测模型:利用pytorch1.5.1在python3.7进行训练;
步骤5、将测试集放到训练好的模型中进行测试:将测试的训练集输入到已经训练好的网络中进行绝缘子缺陷检测,得到绝缘子缺失检测框,以及性能评估数值。
2.根据权利要求1所述基于改进resnest-rpn的绝缘子缺陷检测方法,其特征在于:步骤1的实现包括:将数据集图片数量增加至48000张,其中每种绝缘子共计12000张,每种绝缘子包含4320张缺陷绝缘子图片,7680张正常绝缘子图片,数据集分辨率均为224×224;且该绝缘子数据集上每种绝缘子共有3种绝缘子缺陷,分别是裂纹、破损和污秽,对于每一种绝缘子3种缺陷各有1440张图片。
3.根据权利要求1所述基于改进resnest-rpn的绝缘子缺陷检测方法,其特征在于:步骤2所述图像标注工具将生成一个xml文件,每个xml文件与每一张图片一一对应,每个xml文件内包含绝缘子位置的边界框坐标、绝缘子的种类、缺陷位置的边界框坐标和缺陷的种类。
4.根据权利要求1所述基于改进resnest-rpn的绝缘子缺陷检测方法,其特征在于:步骤3的实现包括:
步骤3.1、根据不同分辨率的特征层对于不同尺度绝缘子缺陷的有效性,通过多尺度检测方法联合多路径rpn生成的多尺度绝缘子缺陷候选集ei={es,ea,el}和跨尺度聚合特征网络模块得到的聚合特征qi={q3,q4,q5}提取候选区域特征编码;
步骤3.2、对于不同尺度集的候选区域使用对应的检测分支,每个检测分支训练都有真实类别标注xml*和真实标注框box*,单分支绝缘子缺陷检测训练的损失函数定义如下:
loss(xml,box)=loss1(xml,xml*) ω×xml*×loss3(box,box*)
其中,loss3为候选目标的回归损失函数且
5.根据权利要求1所述基于改进resnest-rpn的绝缘子缺陷检测方法,其特征在于:步骤4的实现包括:
步骤4.1、在cpu为intel(r)xeon(r)gold6148@3.7ghz32gb、gpu为nvidiateslav10032gb和ubuntu16.04lts上运行;
步骤4.2、设置初始的训练和测试参数,用backbone为resnet50的resnest作为特征提取基础网络,通过多路径rpn中的主检测分支生成ei集合中的绝缘子缺陷候选区域匹配到相应的跨尺度聚合特征网络生成的聚合特征qi,从而得到该特征层的感兴趣区域;
步骤4.3、利用roi-pooling归一化提取的特征编码得到