近年来,高速电气化铁路运营里程迅速增长,接触网绝缘设备使用量逐年增加,随着使用年限的增长,由绝缘设备所引起的运行安全问题也将逐渐凸显。腕臂绝缘子作为电气绝缘和电力支撑的重要设备,其绝缘性能好坏将对电气化铁路的安全运行带来巨大影响[1-4]。由于其应用环境的独特性,设备表面易出现可见破损,需要对其进行长期监测来保证安全[5-8]。目前,铁路部门主要通过车载、手持移动设备等方式采集图像并进行监测与检测,但因数量、准确性与效率的问题,亟需应用高效的智能图像识别技术来提高监测检测水平。本文对基于深度学习的接触网腕臂绝缘子缺陷大小检测方法进行了研究,旨在通过对绝缘破损大小的判别来提高检测准确性和工作效率,为后续进一步推进牵引供电系统的智能化设备运维养护技术提供一种有效的技术方案。目前,利用深度学习实现目标检测针对高压输电线路的研究较多,且主要以提高绝缘子图像识别率为主。基于深度学习的目标检测方法大致可分为2类:双阶段检测算法和单阶段检测算法。双阶段检测算法主要包括R-CNN[9]算法,Fast R-CNN[10]和Faster R-CNN[11]算法等。比如,马耀名等[12]成功优化了Faster-RCNN算法,用于绝缘子检测,通过集成SKNet注意力机制,使网络专注于绝缘子特征的关键通道;采用滤波器响应归一化(FRN)层,有效防止了梯度饱和问题;并引入距离交并比(DIoU)提升了候选区域框的精确定位;实验结果显示,改进后的算法在平均准确率和召回率上分别提升了3.46%和2.76%,显著提高了检测精度和稳定性。单阶段检测算法主要包括SSD[13]算法和YOLO[14-16]系列算法。比如,宋智伟等[17]提出了一种基于Flexible YOLOv7的绝缘子缺陷检测算法,该算法在特征提取的过程中集成了注意力机制,通过使用高效的SPPCSPC[18]结构减少了模型训练过程中的参数冗余,并引入E-IOU损失函数,重点关注高质量的anchors[19]提升原始模型的检测精度;研究结果表明,改进后的算法对密集目标、遮挡、小目标增强了特征区域提取性能,优化了定位与检测精度。在前人研究的基础上,本文针对铁路运行场景中接触网绝缘子拍摄图片昏暗且光照不均、绝缘子缺陷大小难以即时量化显示等问题,提出一种用于绝缘子破损大小检测的YOLOv7-OpenCV算法,主要就以下几个方面进行研究:YOLOv7-OpenCV算法模块功能分析;结合现场需求,对YOLOv7模型进行优化;对改进后YOLOv7算法模块与OpenCV模块进行集成;通过对现场图像以及实验条件下的数据测量结果分析比对,验证确定本文算法有效性。
1 YOLOv7-OpenCV算法简介
本文提出用于接触网腕臂绝缘子破损大小检测的YOLO7-OpenCV算法,该算法是基于YOLOv7的一种改进算法,算法基于YOLOv7对破损检测识别的高准确率基础上,对YOLOv7处理的图像再通过OpenCV算法[20-22]对破损区域进一步处理,以实现对破损长度的检测与计算。为此该算法改进主要包括2部分:改进的YOLOv7算法模块(具体如图2所示),OpenCV算法模块(具体如图3所示)。



本文算法基本框架如图1所示。
1) 改进的YOLOv7算法模块
本文首先对YOLOv7算法进行改进,这是因为YOLOv7模块虽然集成了多尺度特征融合机制来整合不同尺度的特征图,但这一融合策略主要依赖于固定的权重进行直接的拼接,缺乏权重的动态调整机制。在处理具有显著尺度差异的目标时,固定权重的融合方法导致难以精确地定位和识别这些目标。所以针对铁路运行场景,为增强模型的显示效果和特征提取能力,使模型聚焦于图像中的破损区域,精确目标检测效果,故对YOLOv7算法进行改进,具体结构如图2所示。
1) YOLOv7网络输入端引入一种自适应直方图均衡化(Adaptive Histogram Equalization,AHE)技术,主要用于对数据集进行预处理,以有效突出图像中的关键局部特征,丰富图像信息。
2) YOLOv7结构中融入全局注意力机制(Global Attention Module,GAM)。GAM通过全局建模的方式,智能地计算特征图中每个位置的重要性权重,并将这些权重应用于特征图上,使得网络能够提升对处理小尺寸物体的敏感度,增强目标检测的准确性,提高架构设计上对小尺寸物体的检测不足的问题[23]。
3) YOLOv7的骨干网络中将原ELAN结构替换为全维度动态卷积(Omni-Dimensional Dynamic Convolution, ODconv)模块,使得网络具有自适应调整卷积核权值的能力,能够有效地捕捉和识别绝缘子破损不同形状和大小的关键特征边缘信息,提升网络对图像特征的提取和处理能力[24]。
2) OpenCV算法模块
此模块用于绝缘子图像经YOLOv7处理后的破损尺寸大小测量。通过OpenCV库的尺寸检测模块,从输入图像中分割出目标绝缘子,并基于提取出轮廓的几何特性,如周长、面积以及边界框的尺寸,对图像中的缺陷进行精确的定位和尺寸测量[25]。
OpenCV算法模块对绝缘子缺陷轮廓识别检测过程如图3虚线框部分所示。
该过程将YOLOv7所提供的图像通过灰度处理以简化色彩信息;引入双边滤波的图像滤波技术,抑制外界随机信号干扰产生的噪声,在减少噪声的同时保留图像的边缘信息;基于Canny函数的边缘检测通过双阈值方法识别真实和潜在的边缘,利用轮廓提取算法从而可以精确识别绝缘子轮廓,同时对提取的轮廓进行遍历,最后利用OpenCV的测量功能对轮廓大小进行精确测量,从而获取尺寸信息。
2 基于YOLOv7-OpenCV算法的绝缘子破损实现分析
为了实现腕臂绝缘子破损大小检测,以下对本文算法中各部分依次进行说明。
2.1 YOLOv7算法模块
1) 自适应直方图均衡化
Input所输入图片的尺寸大小不同,需要将图像的像素大小调整为640×640。自适应直方图均衡化算法通过计算图像的局部直方图,提取图像局部特征,运用局部对比度增强的方法,然后重新分布亮度来改变图像对比度。该方法基于每个像素邻域的统计特性来确定处理方式,通过计算以自身像素中心的一个局部子图像的直方图,得出一个均衡化变化函数,像素的新灰度值就可以通过这个变换函数获得,从而实现了对图像局部特性的精准调整和优化,其计算方法如式(1)所示。

其中,
针对高速铁路接触网绝缘子目标背景黑暗的情况,为增强局部细节,选取自适应直方图均衡化技术对数据集进行图像预处理,提高图片对比度,增强图像质量。
采用自适应直方图均衡化对比处理效果如图4所示。可以看出,经过处理后,有效提高了图像的视觉效果,增强了细节,清晰度明显优于原始图像。

2) 注意力机制模块GAM
GAM是一种通过减少信息扩散,增强全局交互表示,以提升神经网络性能的方法。GAM能够增加网络模型对绝缘子和缺陷部分区域的关注度,同时减少复杂背景的干扰,从而提高模型的检测精度。GAM结合了通道与空间的注意力机制模块,首先使用通道注意力特征图(CA)对原始特征图进行校正,然后再使用空间注意力特征图(SA)对校正后的结果进行进一步处理,最终得到特征图的输出结果。GAM模块结构图如图5所示。

处理过程如下:首先,将输入特征图F1的大小设置为C×H×W,C表示通道数,H和W表示输入特征的长和宽;其次,为保留三维信息,对输入图像进行3D排列操作,再通过一个具有2个隐藏层的多层感知机(MLP)来放大维度的通道关系;最后,使用逆向3D排列操作,将其恢复为原始特征图形状,经过Sigmoid函数激活后,得到通道注意力特征F2,该处理的作用是,放大特定通道之间的关系,调整注意力权重,从而提高网络对不同通道的关注度,使网络能够更好地捕捉输入特征中的重要信息。再将输入特征经过2个大小为7×7的卷积层,融合空间信息,再次对输出经过Sigmoid函数激活后得到空间注意力特征F3,使模型更加关注输入特征图中的空间信息,并提取出与检测目标相关的重要特征。
GAM计算表达式为:


其中,MC代表通道注意力模块,MS代表空间注意力模块,
为了对比添加GAM注意力模块前后的效果,利用热力图对本文算法检测目标时的关注度进行可视化演示,结果如图6所示,其中方框区域为关注区域。

3) 全维度动态卷积ODConv
因静态卷积对所有输入数据使用相同的网络结构和参数,其特征学习能力在面对不同的输入时有限。本文使用全维动态卷积ODConv来解决这个问题。动态卷积基于卷积层的输入确定每个卷积核的权重,并使用注意力机制对这些卷积核进行加权求和,以获得适合该输入的动态卷积核。
动态卷积的输出可以表示为:

其中,y和x分别表示输出特征和输入特征;αwi, αfi, αci, αsi (i = 1, 2, …, n)分别表示卷积核Wi (i = 1, 2, …, n) 的标量、空间维度、输入通道维度和输出通道维度4个关注点,
ODConv采用多维注意机制和并行策略,考虑卷积核数、空间大小、输入通道和输出通道4个维度,在卷积层沿着4个方向学习卷积核的互补注意力,实现各维度的动态卷积,以提高模型的灵活性和准确性,其结构示意图如图7所示。

根据不同的输入绝缘子破损图像数据自适应调整卷积核,有针对性地提取绝缘子破损处的有效特征,增强模型的特征提取能力,强化网络学习能力,提高模型对绝缘子破损目标的识别精度。
2.2 OpenCV算法模块
腕臂绝缘子破损大小的尺寸检测功能由OpenCV算法模块实现,该检测过程的核心在于对图像中的物体边界进行精准的分析和处理。
因OpenCV模块只能实现测量功能,本节内容针对一个存在多处缺陷的腕臂绝缘子破损大小测量过程进行分析,此处并未引入YOLOv7网络对存在破损的绝缘子图像进行处理。
1) 图像预处理。对YOLOv7网络输入图像进行灰度化处理,降低图像维数减少运算量,同时保留梯度信息;本文采用函数库中的双边滤波函数进行滤波处理,在减少噪声的同时保留了图像的边缘信息。滤波后图片如图8(b)所示。

2) 边缘检测过程。对图像进行形态学转换,通过腐蚀与膨胀的方式消除噪声、分割出独立的图像元素以及在图像中连接相邻的元素,提高后续轮廓识别的准确性。本文利用Canny函数进行边缘检测,通过双阈值方法识别图像中绝缘子真实和潜在的边缘。边缘检测结果如图8(c)所示。
3) 轮廓提取与遍历轮廓过程。在检测到边缘后,通过轮廓跟踪或轮廓提取算法,从图像中准确地识别出绝缘子的轮廓。这一步骤的精度将直接影响到破损大小测量的准确性。其结果如图8(d)所示。
基于提取的轮廓信息,将识别到的绝缘子破损处的轮廓进行遍历,对每个轮廓进行单独处理,利用OpenCV的测量功能对绝缘子破损处的大小进行测量,算法会使用方框标出可能存在破损的位置。单独使用OpenCV算法模块对绝缘子破损检测最终结果如图8(e)所示。
由图8(e)可知,单独使用OpenCV算法模块可以实现绝缘子破损检测,但且仅能识别两处较大破损,由于遍历轮廓的识别率较低导致漏检概率增加,从而无法识别绝缘子两处较小破损,并且检测框与实际破损的真实框存在较大的偏差。
因此,本文首先采用YOLOv7对绝缘子定位,并识别破损位置,并对破损进行精确框选,最后利用OpenCV算法实现破损大小的测量。
2.3 性能评价指标
考虑本文YOLOv7-OpenCV算法是基于YOLOv7的一种改进算法,OpenCV算法是对YOLOv7检测所得的破损区域进一步处理,为此对绝缘子检测模型的检测效果进行评价,本文仍采用精确率P(precision)、召回率R(recall)、平均精度AP(average precision)以及平均精度均值mAP(mean average precision)作为评价指标,具体表达式如下:




其中,P为预测阳性样本中真阳性样本的比例;R为正确预测阳性样本占总阳性样本的比例;TP(true positive)为正确预测的正例;FP(false positive)为被模型错误预测为正例的负例;FN(false negative)为被模型错误预测为负例的正例;AP值是指P-R曲线与坐标轴所围成的面积;mAP是物体检测中衡量检测精度的重要指标,代表每个类别的平均AP,mAP的值越大,证明算法检测效果越好,识别精度越高。
3 YOLOv7-OpenCV算法检测结果分析
3.1 实验情况说明
1) 实验设置
实验软件与硬件配置如表1所示。
配置名称 | 版本参数 |
---|---|
操作系统 | Windows 10,64位操作系统 |
GPU | NVIDIA GeForce RTX 3070Ti |
CPU | AMD Ryzen 7 5800H with Radeon Graphics 3.20 GHz |
CUDA | V10.1 |
深度学习框架 | Pytorch |
2) 数据集
实验中所使用的图像数据为某铁路部门近3年利用铁路综合检测车对接触网巡检得到的数据。为了扩充训练样本数量,提高训练网络精度,对原有800张样本进行数据增强,最终得到共2 000张训练样本。
3.2 现场图像检测性能评价分析
实验总迭代次数为200次,输入图像像素大小为640×640,采用mosaic数据增强,动量大小参数取为0.937。数据集按照7:1.5:1.5的比例随机分配到训练集、检验集与测试集,训练时batch-size设为16;在前100轮训练中,学习率设置为0.01;后100轮训练中,学习率设置为0.001。最后经过200轮的迭代训练,得到最优模型训练权重。
性能评价分别对YOLOv7模型,以及对YOLOv7模型单独进行自适应直方图均衡化后的模型(图例中YOLOv7-A),单独使用动态卷积后的模型(图例中YOLOv7-O),单独添加GAM注意力模块模型(图例中YOLOv7-G),本文算法中的YOLOv7改进部分(图例中YOLOv7-AGO)等5组模型进行实验验证。
1) mAP@0.5分析
本文采用消融实验验证本算法性能,对比5组模型所有检测图片的mAP@0.5,结果如图9所示。

由图9分析可知:YOLOv7算法迭代到80轮左右mAP@0.5值逐渐上升到0.78左右,并且最终稳定在0.88左右,满足作为参考算法的相关指标;基于YOLOv7算法的其他改进算法均有着不同程度的提升,本文中对YOLOv7的改进算法较原算法在平均精度有着明显的提高,算法迭代了80轮后mAP@0.5值上升至0.92左右,并最终稳定在0.95左右。模型训练效果良好,没有出现过拟合和欠拟合现象。
如前所述,因本文算法OpenCV模块仅是对YOLOv7的图像的再处理,故对YOLOv7改进的性能指标即为本文所提YOLOv7-OpenCV算法性能指标。
2) 消融实验
消融实验结果如表2所示。
组别 | AHE | GAM | ODConv | AP/% | mAP@0.5/% | FPS/(f∙s-1) | |
---|---|---|---|---|---|---|---|
正常绝缘子 | 破损 | ||||||
YOLOv7 | 90.36 | 87.16 | 88.76 | 47.7 | |||
YOLOv7-A | √ | 91.75 | 89.55 | 90.65 | 46.2 | ||
YOLOv7-O | √ | 97.16 | 90.56 | 93.86 | 42.1 | ||
YOLOv7-G | √ | 93.27 | 89.89 | 91.58 | 43.7 | ||
YOLOv7-AGO | √ | √ | √ | 98.92 | 91.94 | 95.43 | 41.3 |
由表2消融实验分析可知,本文中对YOLOv7的改进算法综合了各模块的优点,相较于YOLOv7算法,平均精度达到了95.43%,平均检测精度相比于原网络提升了6.67%,极大地提升了对腕臂绝缘子缺陷识别的准确性;随着算法的复杂程度增加,本文算法每秒检测图片的帧数(FPS)有所降低,FPS为41.3帧/s,仍高于一般实时监测要求的最小帧数25帧/s,因此本文中所提的改进算法可以满足工程中时效性的要求,有利于后续在高速移动设备中的实时应用要求。
3) 现场图像破损大小检测分析
现场图像选取一处具有破损特征的腕臂绝缘子进行分析,首先单独对5种检测算法进行验证,结果如图10(a)~图10(e)所示;然后采用本文算法针对破损大小进行检测,结果如图10(f)所示。

由图10不同算法检测结果分析可得:
1) 图10(a)~图10(e)中所有算法均能有效识别检测绝缘子目标,图10(c)的YOLOv7-G算法与本文算法能够识别绝缘子存在的小破损,其他算法未检出。在检测精度上,本文所提的算法表现最好,相比其他4种算法精度均有下降的情况,与前述算法性能指标评价结果一致。
2) 图10(f)的本文算法实现了破损大小定量显示,说明通过对腕臂绝缘子存在破损的数据集进行训练,本文算法可以实现对破损位置的准确定位与大小的测量。但由于无法对该检测结果进行实测验证,为证明本文算法的准确性,以下针对此问题进行讨论。
3.3 实验图像检测性能评价分析
为验证本文算法对破损大小测量的准确性,采用2种实验方案进行验证。
实验1:实验室,存在多处不同破损大小的腕臂绝缘子图像处理分析;
实验2:接触网实训场,模拟接触网“4C”作业车移动拍摄下不同距离的图像处理分析。
1) 实验1
本文算法对图11中存在多处破损的绝缘子检测结果如图11所示。

对比图11与图8可知,本文算法因为首先通过改进YOLOv7算法增强对小目标物体的识别能力,成功识别并定位绝缘子上4处不同大小的破损区域,显著提高了检测的准确性;而且算法通过改进YOLOv7模块生成高度精准的识别框,确保了破损区域检测边界与实际破损边界的吻合度较高,在此基础上结合OpenCV模块即可实现对绝缘子破损尺寸的高精度量化,为绝缘子状态评估提供了更为可靠的数据支持。
破损 编号 | 实际长度/ cm | OpenCV检测 长度/cm | OpenCV检测 误差/% | 本文算法检测 长度/cm | 本文算法检测 误差/% |
---|---|---|---|---|---|
1 | 6.4 | 未检出 | 未检出 | 7.8 | 21.87 |
2 | 16.0 | 18.3 | 14.37 | 16.3 | 1.88 |
3 | 17.5 | 19.5 | 11.42 | 17.9 | 2.29 |
4 | 4.4 | 未检出 | 未检出 | 5.1 | 15.91 |
如表3测量结果对比所示。对于2号破损,OpenCV检测误差为14.37%,本文算法的检测误差为1.88%,较OpenCV误差降低了12.49%;对于3号破损,OpenCV检测误差为11.42%,本文算法的检测误差为2.29%,较OpenCV误差降低了9.13%。这是因为仅采用OpenCV算法进行绝缘子破损大小识别时,检测过程中生成的边界框与实际破损区域之间的匹配度较低,伴随着拍摄角度偏移,这进一步导致了轮廓追踪的识别效率下降从而与边界实际尺寸之间存在较大误差。
综上,相较于OpenCV,本文算法在高速铁路腕臂绝缘子破损检测中,准确率显著提升,同时缺陷大小误差率平均下降约10%,具有更高的检测精度与效率。
2) 实验2
实验说明:① 采用不同拍摄距离(1 m、2 m、3 m)模拟接触网“4C”作业车移动拍摄;② 3组绝缘子串(标记为A、B、C),且每组绝缘子串均存在2处(以杆塔侧、导线侧加以区别)不同大小的破损。3组绝缘子实际破损大小如表4所示,因破损不规则,测量选取长宽最大值。
缺陷绝缘子 | 杆塔侧 | 导线侧 | ||
---|---|---|---|---|
长度 | 宽度 | 长度 | 宽度 | |
A组绝缘子 | 9.2 | 2.3 | 7.8 | 2.1 |
B组绝缘子 | 3.5 | 1.8 | 6.5 | 1.9 |
C组绝缘子 | 2.5 | 1.4 | 2.1 | 1.6 |
实验结果如图12所示。

由图12可知,对于A、B绝缘子,本文算法在不同拍摄距离时均能有效检测出缺陷并计算缺陷大小;对于C绝缘子,当拍摄距离增加为3 m时,由于其背景与绝缘子灰度较为接近,存在杆塔侧小破损漏检的情况。可见,本文提出算法在检测现场腕臂绝缘子存在较大破损目标时展现出了良好的性能,有效识别并检测出腕臂绝缘子存在的缺陷大小;对于小破损,由于拍摄距离的问题,出现了漏检情况。
对破损检测大小的误差对比分析如图13所示。

由图13分析可知,当拍摄距离为1 m时,无论破损大小,检测误差均保持在较低水平,测量误差未超过实际值的10%;拍摄距离增加至2 m时,大破损的检测误差仍然在10%范围以下,但小破损的检测误差约40%,当拍摄距离增大至3 m时,无论大小破损,检测精度均出现了较大幅度的下滑,尤其小破损检测误差此时最大约92%,表明随着拍摄距离的增加,检测误差呈增大的趋势。原因分析如下:随着拍摄距离的增加,图像中包含了更多的背景信息,比如干扰物、光线变化、阴影等,这使缺陷的准确识别增加了难度;拍摄距离增加,缺陷本身在图像中所占的像素比例减小,目标显著性减弱,使得算法在提取特征时面临更大挑战;拍摄角度与缺陷形成的夹角较大,导致缺陷在图像中的形态和特征变得极为不明显,超出了本文改进算法的检测能力范围,故无法识别出缺陷从而也无法进行缺陷的测量。
综上所述,本文提出的YOLOv7-OpenCV算法在较近拍摄距离下展现出优异的性能,能够精确检测腕臂绝缘子中的缺陷尺寸,同时保持较低的检测误差。随着拍摄角度的偏离以及拍摄距离的增加,算法的检测精度呈现出逐步下降的趋势,特别是在识别微小破损时,拍摄距离的变化对检测误差产生了显著影响,表明检测精度与拍摄距离之间存在紧密的关联性。
4 结论
1) 提出一种YOLOv7-OpenCV算法,实现了对腕臂绝缘子破损大小的准确定位以及破损大小的量化显示,实验证明:当采集的图像数据处于有效拍摄范围内,绝缘子破损检测框与真实缺陷基本重合,可实现对破损尺寸大小的测量;
2) 实验数据表明本文YOLOv7-OpenCV算法对目标的平均检测精度可达95.43%以上,所有识别出的破损大小均可定量显示,算法检测速度FPS可达41.3帧/s,高于一般实时监测要求的最小帧数25帧/s,具有良好的准确性与时效性。
3) 现场接触网“4C”作业车可满足较近距离拍摄要求,所以利用本文所提YOLOv7-OpenCV算法可实现对腕臂绝缘子破损大小检测的即时量化,可为高速电气化铁路绝缘子状态的智能监测提供一种图像处理方法。
基于动态卷积与文本数据增强的图像生成方法
[J/OL].计算机工程, [张廷荣,段承成,胡延文等.一种用于接触网腕臂绝缘子破损大小检测的YOLOv7-OpenCV算法[J].铁道科学与工程学报,2025,22(04):1870-1882.
ZHANG Tingrong,DUAN Chengcheng,HU Yanwen,et al.A YOLOv7-OpenCV algorithm for detecting the size of insulator damage in overhead contact system[J].Journal of Railway Science and Engineering,2025,22(04):1870-1882.