基于改进GrabCut的绝缘子缺陷检测
2021-07-21马玉骐郭观凯谭帅帅
左 钰,刘 伟+,马玉骐,郭观凯,2,谭帅帅
(1.山东理工大学 电气与电子工程学院,山东 淄博 255049;2.中国科学院 中国工程院遵义院士工作中心,贵州 遵义 563000)
0 引 言
绝缘子作为输电线路中不可或缺的绝缘控件,在输电线路中起着电气绝缘和机械固定的作用[1]。绝缘子“掉串”故障检测主要分为3个步骤[2,3]:绝缘子检测、绝缘子分割与缺陷定位。文献[4]采用YOLO进行绝缘子检测,再通过对绝缘子的随机一致采样来拟合绝缘子主轴,最后对主轴方向进行水平投影,从而进行绝缘子缺陷定位。文献[5]根据绝缘子的几何特征,对盘片进行椭圆检测,然后通过最近邻分类器定位盘片位置,根据盘片间欧式距离判定故障位置。文献[6]采用OTSU分割算法将绝缘子与背景分离,经形态学滤波后采用最小二乘法拟合主轴基线,沿主轴方向对绝缘子进行扫描,根据像素点个数定位掉串区域。以上方法在特定场景下可获得良好的检测效果,但复杂背景下的分割效果较为一般,面对相互重叠、遮挡的绝缘子检测效果不够稳定。
针对因绝缘子背景复杂、重叠、遮挡等因素导致检测效果不佳的问题,本文提出了一种绝缘子“掉串”检测方法。首先由改进SSD网络模型识别并定位图像中的绝缘子,然后通过改进GrabCut算法实现绝缘子分割,最后采用形态学处理法对绝缘子进行缺陷识别。改进GrabCut算法融入了图像的位置信息与显著性信息,因此可自动分割出图像中的绝缘子,且分割效果有了显著提升。形态学处理法可对相互遮挡、重叠的绝缘子串共同检测,检测效果受重叠遮挡现象影响较小,且易于实现,适用于背景复杂条件下。
1 方法流程
基于机器视觉的绝缘子缺陷检测方法大体可分为两种,一种是基于深度学习技术的绝缘子缺陷识别法,它直接使用含缺陷绝缘子的数据集进行模型训练,只需在训练集图像中标注故障位置便可完成故障检测,其有着实现简单、泛化能力强等优点,但该方法对数据集的要求较高,需要大量含有缺陷绝缘子的航拍图像参与训练,另外,航拍图像中绝缘子缺陷区域往往较小,这将使得网络识别精度较低;另一种则是采用传统图像处理技术识别绝缘子,并对其进行分割及故障检测,该类方法的优点是对数据集和硬件的要求较低、特定场景下检测精度高,但其有着泛化能力弱、调参复杂等缺陷。本文综合考虑模型的泛化能力与检测精度两种因素,将深度学习与传统图像处理技术相结合,首先通过深度学习技术对图像中的绝缘子串进行识别,再通过图像处理技术进行分割与缺陷检测。本文的绝缘子缺陷检测主要分4个步骤。流程如图1所示:
图1 方法流程
(1)采用改进SSD算法识别出图像中的绝缘子串,并获取绝缘子的位置信息;通过多种显著性检测方法对航拍图像进行显著性度量,从而提取图像的显著性信息;
(2)将绝缘子位置信息与图像显著性信息提供给改进GrabCut模型,分割出图像中的绝缘子;
(3)对已分割的绝缘子图像进行形态学处理,检测出故障绝缘子,并定位故障区域;
(4)将故障区域在原始图像中标记出。
2 绝缘子分割算法
2.1 改进SSD算法
SSD网络是目前主流的目标检测网络之一[7],它由Faster R-CNN和YOLO的检测模型衍生而来。检测过程中,网络采用端对端的训练方案,采用不同分辨率的特征图分别对目标做预测,再对不同特征图的预测分数加权平均。本文采用SSD算法对绝缘子进行识别与定位,以提取绝缘子的位置信息,减少背景区域对故障识别带来的干扰。
航拍图像质量受天气、光照、背景等因素影响,这些干扰因素会导致定位不准,目标识别稳定性差等问题,原始SSD网络中,前端卷积网络采用VGG16,VGG16存在网络感受野较小的缺陷,它将导致目标特征提取不充分,从而影响检测精度。为此,本文对原始SSD网络做了改进,采用ResNet101替代原始SSD网络前端的VGG16,增加了网络的深度,提高了网络在复杂背景下对绝缘子的识别能力。同时ResNet101引入的残差网络,降低了因网络深度增加而导致的梯度弥散或梯度爆炸的风险。为解决因局部细节信息丢失而导致的网络对小目标识别能力不足的问题,本文在SSD网络引入了膨胀卷积[8],在不增加额外参数的前提下增大了感受野,解决了信息丢失问题,从而提高了网络对小绝缘子串的抓取能力。改进SSD网络结构如图2所示。残差网络中,对第4层和第5层进行膨胀系数为2和膨胀系数为4的膨胀卷积。
图2 改进SSD网络结构
2.2 显著性信息的提取
图像的显著性反映了某像素点与图像其它区域像素的差异[9]。显著性主要衡量的是像素间对比度的关系,高对比度区域更容易吸引人的注意。相比RGB颜色空间,Lab颜色空间可较为直观的反应图像亮度特征和颜色特征,更符合人类感知。因此,本文显著性度量环节在Lab颜色空间内进行。
局部显著图可以突出绝缘子边缘信息,但不能很好地展现对比度变化平缓的目标内部区域;全局显著图可均匀地突出前景信息,对目标的边缘描绘效果则较为一般;而频域显著图具有较好的抑制高频噪声的特点,但某些前景信息可能会缺失。显著性效果对比如图3所示。
图3 显著性效果对比
3种显著性检测方法各有其独特的优点和缺点。为此,本文从多角度度量图像的显著性,采用不同的算法,分别遍历航拍图像每个像素点的局部显著值、全局显著值和频域显著值,并生成相对应的显著图,然后采用均值法将显著图进行特征融合[10],对融合后显著图像进行对比度加强,最后将对比度加强后的像素点显著值转换为概率值,将其作为约束条件添加至改进GrabCut模型的区域项。最终显著图如图4所示。
图4 最终显著
本文对图像局部显著值的计算采用AC算法[11],该算法采用Lab空间的欧式距离来衡量距离特征,通过改变一个感知单元的邻域大小来实现图像多尺度显著值的计算,局部显著值为多尺度特征显著值的均值,图像的局部显著值如式(1)所示
(1)
全局显著值用于衡量某像素点与整幅图像所有像素点间的对比度关系,全局显著值如式(2)所示
(2)
计算图像的频域显著值,首先需对图像进行低通滤波,然后通过计算Lab颜色空间中每个像素和图像的平均像素值的欧式距离即可得出。采用DOG算子对图像进行低通滤波后,频域显著值如式(3)所示
(3)
根据式(1)、式(2)、式(3),采用均值法将3种显著图进行特征融合,生成融合显著图
(4)
其中,Sl(x,y)、Sg(x,y)、SF(x,y) 分别表示图像的局部显著值、全局显著值和频域显著值,Sfuse(x,y) 表示融合后的显著值。
(5)
将显著图中的显著值转换为概率信息,以便转换成约束条件添加至GrabCut分割算法区域项。首先采用sigmoid函数将融合后的图像的显著值Sfuse(x,y) 进行归一化。为避免显著图中低显著值的像素点对分割造成的干扰,将概率小于0.1的区域排除到显著区外。显著性信息的转换如式(6)、式(7)所示
(6)
(7)
式中:Sn表示像素点经归一化后的显著值结果,PSal(vi) 表示显著性信息判别该点为前景点的概率。
2.3 改进GrabCut算法
GrabCut是在GraphCut基础上改进的图像分割算法,在使用GrabCut分割算法时需手动设置输入图像的前景框[12],算法将对图像中每个像素点分配GMM中的高斯分量,经不断的参数学习与分割估计后可将前景与背景的分离。为实现绝缘子图像自动且精准的分割,本文对传统GrabCut分割算法做了改进,用SSD算法识别出的矩形区域对图像进行初始化,取代手动设置前景框的过程;将图像的显著性信息作为约束条件,加入到GrabCut分割算法的区域项,使混合高斯模型与显著性信息相结合,共同对区域像素进行分割估计,从而实现图像最小分割。
首先构造一个包含区域项和边界项的损失能量函数E(α), 损失能量值最小时,便达成了图像的最小分割;然后将能量函数映射成一个带有权值的图,把前景背景分类问题转化成最大流/最小分割问题。用SSD网络检测得到的矩形框对图像进行初始化,目标矩形框外设定为背景区域,矩形框内为未知区域;并将图像的显著性信息设计成约束项融合到能量函数的区域项中,从而实现图像自动且精确的分割。损失能量函数E(α) 如式(8)所示
(8)
式中:EGS表示区域项能量,EV表示边界项能量,αn表示图像点n分割结果,αn∈{0,1}分别表示前景点与背景点。向量α由每一个像素的标签值αn组合而成,z表示像素点的像素值,区域项Ds由混合高斯模型与显著性信息乘以相应的权值并相加得到,用来约束αn使其和观察标签θ一致。边界项S(αm,αn,z) 用于约束相邻像素的标签一致性。能量函数的边界项可用式(9)表示
(9)
式中:αm、αn分别表示像素点m和n的前景背景标签,z表示像素点的像素值,γ取50,β取值随图像的对比度不同而不同,图像对比度越高则β取值越大,区域项DGS如式(10)所示
(10)
式中:vi为图像中某像素,αn取值为0或1,分别代表目标和背景,P(vi|αn) 表示像素点vi属于αn的概率,Pgmm(vi‖αn) 表示混合高斯模型计算出的每个像素点属于αn的概率,PSal(vi) 表示显著性信息判别该点αn=1的概率,k用来分配混合高斯模型和显著性信息在区域项中的权值。
混合高斯模型判别的像素点前景背景概率差值越小,图像的显著性信息对区域项贡献越大。若前景背景概率差值不大于0.6时,区域项DGS由混合高斯模型与图像显著性信息共同参与约束;前景背景间的概率差值大于0.6时,k取1,此时,混合高斯模型判别效果良好,无需显著性信息参与约束。式(11)为混合高斯模型的权重k表达式
(11)
初始化完成后,为每个像素点分配GMM高斯分量,对GMM的参数进行学习优化。通过GMM参数与显著性约束条件对像素点进行聚类,落入前景区域的像素点被分割为前景点,落入背景区域内的像素点被分割为背景点,落入边界上的像素点被分割为未知点。再对未知区域的像素点进行重新分配,依此迭代,直至能量损失函数收敛。
3 形态学处理法故障检测
输电线路中,绝缘子串大多成对出现,线路巡检过程中,由于无人机飞行轨迹受高压线路、杆塔、树木等因素限制,拍摄高度与拍摄角度也会受限,这将不可避免地使得图像中存在大量相互重叠、遮挡的绝缘子。而对于绝缘子重合遮挡较多的输入图像,常用的拟合基线法的检测效果并不理想。为此,通过观测绝缘子的结构特征,本文提出一种形态学处理法识别故障绝缘子,并定位故障区域。
形态学图像处理将数学形态学作为工具,从图像中提取对于表达和描绘区域形状有用的图像分量,比如边界、骨架以及凸壳等[13]。绝缘子串由一个中心轴和一定数目的椭圆形盘片拼接而成,其几何形状有着明显的周期性、方向性与均匀性,相较于其它绝缘子检测方法,形态学处理法检测效果受重叠遮挡等干扰因素影响较小,具有较高的鲁棒性,且有着算法简单,容易实现等优点。形态学处理法故障检测步骤为:
(1)将GrabCut算法分割出的绝缘子区域放缩至尺寸相同或相近,并将放缩后的图像二值化。如图5(a)所示;
(2)将图5(a)使用小卷积核进行闭运算,以平滑绝缘子串的非故障区域。如图5(b)所示;
(3)将图5(a)使用大卷积核进行闭运算,以平滑绝缘子故障区域。如图5(c)所示;
(4)对图5(b)与图5(c)进行异或运算;并采用小卷积核对异或结果进行开运算,去除非故障区的干扰像素,便可定位故障区域。如图5(d)、图5(e)所示;
(5)记录5(e)中高亮区域的位置,并在原图像中将故障区域标记出。如图5(f)所示。
图5 故障检测步骤
4 实验结果与分析
在Windows10平台下运行,GPU为NVIDIA GTX1080Ti,CPU为Intel Core i7-6700 3.4 GHz,内存32 GB,采用caffe框架,python3.7环境,深度学习加速库为CUDA 8.0结合CUDNN5.1。航拍图像分辨率为1920*1080。训练样本为3600张图片,测试样本为2000张。共迭代57 000次,其中,前3.7×104次学习率设置为10-4,后2×104次学习率为10-5。动量参数为0.9,图像批次为8。
改进SSD网络中,膨胀卷积的引入使得网络对图像中的小绝缘子目标能力更强,采用ResNet101替代网络前端VGG16则提升了复杂背景下网络对小绝缘子的辨识能力。图6为改进SSD网络测试结果。
图6 改进SSD网络测试结果
本文将改进SSD网络与原始SSD网络、YOLO-V3作对比,表1记录了三者各自的检测精度(P)与召回率(R),从中可看出,相较原始SSD网络,改进SSD网络的精度和召回率分别有2.4%和0.6%的提升,精度与召回率均强于YOLO-V3。
表1 不同网络性能对比
图7为OTSU分割法、传统GrabCut算法、改进GrabCut算法的分割效果对比图,分割图像来自SSD识别框内。图7(a)中OTSU法和传统GrabCut法都未能将绝缘子与其后面的背景电塔分离,改进算法由于显著性信息的加入,杆塔部位被成功排除在前景区域外;图7(b)中由于背景与绝缘子颜色较为接近,OTSU分割法效果并不理想,传统GrabCut法识别的绝缘子边缘缝隙处混入了部分背景信息,而改进算法实现了较好的分割效果;图7(c)中OTSU法分割结果中芦苇区域目标未被完整分割,传统GrabCut算法中绝缘子出现边缘缺失,改进算法获得了较为准确的结果。分割结果表明,改进的GrabCut算法不仅能实现图像的自动分割,对复杂环境下的绝缘子分割效果也表现较好。
图7 各种方法分割效果对比
航拍图像中,绝缘子串大多成对出现,相互重叠、遮挡现象较为常见。图8(a)中绝缘子重叠现象比较严重,且很难将两串绝缘子分割开。图8(b)为文献[6]方法的直线拟合图,由于分割算法无法将两绝缘子串分离,绝缘子串很难形成一个完整轮廓,受背景像素干扰,经最小二乘法拟合出的主轴基线发生偏移,致使扫描过程中count值的统计结果不正确,进而使得检测结果出错。图8(c)为文献[6]法检测结果,灰色椭圆表示故障位置。本文检测方法的优势在于,可通过形态学操作对多条相互遮挡、重叠的绝缘子串共同处理,从而完成缺陷检测。图8(d)为经本文改进GrabCut算法分割出的绝缘子图像。图8(e)为将不同卷积算子闭运算的图像经异或运算后再开运算结果,高亮区域即为缺陷位置。图8(f)为本文方法的故障定位结果,白色椭圆表示标记出的故障位置。
图8 故障检测对比
图8中可看出,两绝缘子串与背景颜色较为接近,改进GrabCut算法分割效果良好;重叠遮挡现象使得两邻近的绝缘子串难以分离,形态学处理法将多条绝缘子串归为整体、共同检测,成功定位出故障区域。检测结果表明,针对部分相互遮挡、重叠的绝缘子,本文方法仍能有效识别出故障绝缘子,并准确地定位缺陷位置。
本文从绝缘子测试集中随机抽出200张含缺陷绝缘子的航拍图像,经改进GrabCut算法分割后进行缺陷定位,其中,186张图像中绝缘子缺陷位置得到了准确定位,11张图像中有绝缘子存在错检,3张图像中有绝缘子被漏检,错检的绝缘子大多发生在绝缘子两端。实验结果表明,在复杂环境下,该缺陷检验方法具有较高的鲁棒性,在实际工程中,可用于辅助无人机巡检。
5 结束语
本文提出了一种绝缘子掉串检测方法。首先通过改进SSD算法获取绝缘子位置信息,然后通过改进CrabCut算法分割出图像中的绝缘子,最后采用形态学处理法识别出缺陷绝缘子并进行缺陷定位。改进SSD算法提高了网络对图像中绝缘子的识别精度。有显著性信息参与的GrubCut算法对图像具有良好的分割效果;形态学处理法缺陷检测鲁棒性较高,且更为容易实现。本文提出的绝缘子检测方案仍需进一步优化,今后应针对图像分割边缘效果方面加以研究改进。