李云红,刘 畅,李传真,周小计,苏雪平,任 劼,高子明
(西安工程大学 电子信息学院, 陕西 西安 710048)
人们常将红外技术作为电力设备故障诊断的手段之一[1],而诊断的第一步就是要准确地将故障区域从红外图像中分割出来。在实际操作中,图像采集设备以及待检测电力设备所处的复杂环境背景都会对红外图像质量造成影响,导致图像出现背景复杂、光照不匀等问题[2-4],不利于后续工作的开展。为了解决这些问题,国内外许多研究者对红外图像分割方法做了大量深入研究。目前比较主流的方法有大津法[5-6]、分水岭分割[7]、最大熵分割法[8]等。在诸多算法被进一步优化的同时,也与不同的算法进行结合,汲取各自的优势,提高算法的分割效果。文献[9]引入Lévy飞行的飞蛾扑火智能算法用于优化OTSU算法的阈值计算过程, 实现了对红外图像的多阈值分割,准确确定各个部分的温度范围;文献[10]采用优化的区域生长法对目标设备的红外图像进行特征提取,然后将其作为输入,利用改进的BP神经网络进行分类,此方法具有误差波动性小的特点;文献[11]采用多源区域生长和最大熵阈值法对红外图像进行处理,得到初步划分的目标区域图像,然后,利用目标区域图像训练检测器,最后,用检测器进行细分割,算法具有良好的目标提取效果。
Niblack是一种基于局部阈值的图像二值化算法,能够对背景复杂、对比度低的红外图像有较好的分割效果[12]。但由于传统的Niblack算法自适应性较低,对邻域窗口大小和修正系数的选择依赖于人工经验,其分割效果会产生较大的不确定性[13-16]。所以,如何确定修正系数以及邻域窗口的尺寸并且得到较好的分割效果是一个有待深入研究的问题。本文给出了一种改进的Niblack算法,通过局部邻域熵建立背景因子进行图像背景的分类,并引入最大熵分割。经过对大量电力设备红外图像的测试,验证了本文所提算法对红外图像分割的有效性,并取得了较好的效果。
(1)
其中,PA(T)和PB(T)分别表示以T为阈值时A区和B区像素的累积概率,且两者的累积概率之和为1,累积概率如式(2)所示。
(2)
利用式(3)分别计算A区和B区内的熵,
(3)
由A、B两区内的熵相加得到图像的总熵,
HG(T)=HA(T)+HB(T)。
(4)
利用式(4)中的熵之和计算分割阈值TKapur,
(5)
Niblack算法是一种经典的局部阈值分割方法。通过对图像的每个像素点设置一个阈值实现分割。在w×w邻域内,计算灰度均值和标准差,然后,计算像素点的局部阈值T(x,y),
T(x,y)=m(x,y)+k×s(x,y)。
(6)
其中:k代表修正系数;m(x,y)表示像素点(x,y)在w×w邻域内所有像素点的灰度平均值;s(x,y)则表示w×w邻域内所有像素点的标准差。具体计算过程如下,
(7)
s(x,y)=
(8)
由此可以看出,当红外图像背景较为复杂或光照不均匀时,Niblack算法的分割效果要比全局阈值法更好。Niblack算法的分割效果和w值和k值相关,但确定修正系数k和邻域窗口w的过程易受主观经验影响,从而影响分割结果。当邻域窗口值过大时,Niblack算法失去了局部的意义,而且影响算法的速度;邻域窗口值过小时,易受到周边噪声的影响。对于修正系数k来说,若取值较小,则容易滤除细小的目标区域,该区域被划分为背景区域的概率增大;若修正系数取值较大,该算法的抗干扰能力下降,会出现严重的噪声噪点。
针对上文提到的传统Niblack算法的不足,论文提出了一种改进的Niblack算法。该算法按照红外图像自身的像素矩阵来选取邻域窗口的数值。改进后的邻域窗口w值为
(9)
(10)
其中:w1和w2表示改进后邻域窗口的行数和列数;line和column表示数字图像矩阵像素的行数和列数;round表示近似取整函数。改进后的局部灰度均值和标准差为
(11)
s(x,y)=
(12)
通过实验发现,对于像素点(x,y)的灰度值f(x,y)和局部均值m(x,y)的差值在目标和背景之间也是有一定的差异的。于是本算法利用图像的灰度信息对修正系数进行了改进。改进后的修正系数k值为
(13)
其中,fmax和fmin表示邻域窗口内的像素最大和最小灰度值。
因此,改进后的邻域窗口和修正系数的数值会按照预处理图像的像素矩阵和灰度值信息进行动态选取。灰度平均值m(x,y)很容易受到极端值的影响。例如9个像素的灰度值依次是7,5,6,7,7,5,5,6,200,计算出的平均值是27.6,但一半以上的值都没有超过7,当去除像素值最大点后,平均值为6。不难发现,极端值会影响到领域内像素点的均值,若采用固定的修正数值分割图像会产生严重的误差。因此,改进后的Niblack算法会根据根据邻域窗口内像素值对修正k值进行动态调整,来控制阈值的增减,避免不合适的阈值选取导致分割结果有较大误差,提升整体图像的分割效果。
图像中灰度值的大小与变化可以通过图像的复杂度来说明,而局部邻域熵是将灰度信息与灰度分布特性结合起来[17]。在邻域熵大的区域,图像的灰度分布比较均匀,对应的图像背景相对简单;而在邻域熵较小的区域,图像的灰度分布起伏不定,对应的图像背景比较复杂。
假设Hij为以点(i,j)为中心的局部邻域熵,
(14)
其中:w1×w2为局部邻域窗口;pij为点(i,j)的灰度分布概率,
(15)
通过建立隶属度函数将局部邻域熵转换为(0,1)之间的背景因子,对图像的背景进行分类。背景因子越大,表示图像的背景越简单;反之,表示图像的背景越复杂。其隶属函数为
(16)
其中,Hmax和Hmin分别表示邻域内的最大熵值和最小熵值。
因此,本文对图像分类的依据是背景因子。通过实验发现,背景因子为0.3时,图像的背景分类较为明显。当F>0.3时,图像背景简单,采用最大熵法对图像进行分割;当F≤0.3时,图像背景复杂,采用改进的Niblack法对图像分割。
由上可知,本文算法的思路是对不同复杂程度的图像采用两种算法进行分割,具体算法流程如图1。
图1 算法流程图Fig.1 Algorithm flowchart
在本文算法中,首先,将采集到的红外图像进行中值滤波,减弱噪声的干扰;然后,根据红外图像的像素矩阵和局部灰度信息,对Niblack算法中邻域窗口和修正数值的选取进行改进,使其可以自适应调整;再通过局部邻域熵建立背景因子对图像的背景分类;最后,采取最大熵法和改进Niblack法对分类后的图像进行分割。
本文的实验环境为Intel华硕i5-8265U CPU,8GB RAM,Matlab R2016b。图2是不同电力设备的红外图像,分别使用本文方法、Niblack法、OTSU法、最大熵法、分水岭法对其进行分割实验,分割结果如图3所示。
对于刀闸开关红外图像,本文方法可以准确清晰地将目标区域与背景区域分割,且误分面积较小,而图3A的Niblack法、图3B的OTSU法、图3C的最大熵法和图3D的分水岭法均出现了把少数目标区域误分为背景的情况,并且分割边缘模糊,给接下来的故障处理工作带来不便。
对于高压套管红外图像,本文方法的分割结果能够对目标区域恰当分割。对故障区域分割比较准确的方法是分水岭法。最大熵法、Niblack法和OTSU法将少量背景区域划分成目标区域。
对于导线接头红外图像,本文方法实现了较好的分割结果。而最大熵法、OTSU法和分水岭法的分割效果不佳,不能完全把分割目标和背景分离,Niblack法的部分目标区域被分割成背景。
对于互感器红外图像,本文方法可以较好地分割出整个目标区域,但最大熵法和分水岭法的分割结果不太理想,出现了将大量目标区域分割成背景的情况,Niblack和OSTU法的分割结果出现了少量目标区域的缺失。
图2 4种电力设备红外图像Fig.2 Four kinds of power equipment infrared images
本文还采用了交并比(IoU)和误分率(Eerror)两种评价指标对不同方法的分割效果进行评价。
(17)
(18)
式中:St表示本文方法的分割结果;Ss表示标准分割结果。IoU越趋近于1,说明和标准分割结果的差距越小,分割准确性高。Eerror表示误分割面积,其值越小分割结果越好[18]。
表1展示了本文算法在不同评价指标上的分割结果,可以看出,本文方法相较于其他方法具有一定的优势,尤其是在互感器的红外图像处理上,最接近标准分割结果。综合4种对比算法,本文方法的交并比平均值达到0.833 5。且平均误分率为0.016 4, 比其他算法分别降低了0.012 8,0.024 9,0.030 9,0.025 2。
图3 主流方法对4组红外图像分割Fig.3 Mainstream methods for segmentation of 4 groups of infrared images
表1 分割交并比和误分率对比表Tab.1 ComparisonTable of segmentation IoU and error ratio
本文针对红外图像分割存在的问题,在两种经典算法的基础上提出了一种改进的图像分割算法。首先,根据红外图像的像素矩阵确定Niblack邻域窗口值;再利用图像整体与局部的灰度信息选取修正系数,改善了传统算法中由于手动调节参数而自适应性不足的问题;最后,通过背景因子实现对图像的分类,根据图像的不同类别分别采用最大熵法和改进Niblack法进行分割处理,克服了局部阈值算法的不足。实验证明,本文提出的方法和Niblack法、OTSU法、最大熵法、分水岭法相比,在交并比和误分率的评价指标上具明显优势,提升了分割红外图像的准确性,增强了算法的鲁棒性,是一种有效的红外图像分割方法。