张国明, 李少义
(1.南昌工学院信息与人工智能学院, 南昌 330108; 2.武汉工程大学材料科学与工程学院, 武汉 430205)
图像在拍摄、传输和处理的过程中,往往受到脉冲噪声的污染.脉冲噪声也称为椒盐噪声,将图像的部分像素改为最小或最大灰度值.脉冲噪声严重影响图像的分析与应用,所以去除脉冲噪声非常重要.最初因为缺乏边缘和细节保持能力,均值滤波[1-3]对脉冲噪声难以取得理想的去除效果,而中值滤波因为其具有良好的去噪性能而受到关注.标准中值滤波[4]用邻域像素的中值替换每个像素的灰度,而加权中值滤波和中心加权中值滤波[5-7]用邻域像素的加权中值去除噪声.但是它们对噪声像素与非噪声像素的统一处理,严重制约其去噪性能.为此,部分学者提出了结合噪声检测器的开关中值滤波算法,仅对噪声像素进行处理.后来,部分学者发现开关中值滤波对不同密度的噪声缺乏鲁棒性,进而提出了自适应的开关中值滤波算法[8-10].Varghese等[11]提出的频率域的开关中值滤波算法,用干净的频率中值对含噪的频率进行恢复,但是用区域生长法检测噪声会降低检测的准确性.Suid等[12]提出了非参的开关中值滤波算法,由非参的脉冲噪声检测器和递归的像素恢复器组成.文献[13]提出的快速自适应高性能滤波,以重叠的方式,迭代地运用标准中值滤波以及均值滤波去除噪声.但是,在最后阶段用均值滤波处理图像是不可取的,因为均值滤波具有低通特性,难以保持图像的细节.
作为对算术均值滤波的一种改进,部分学者提出了加权均值滤波,以反比于空间距离或灰度差的方式,赋予邻域中无噪像素不同的加权系数,然后取其均值作为当前噪声像素的灰度[14].文献[15]根据灰度变化,用像素变化增益因子将邻域中的非最值灰度进行分组,用基于分布比率和像素变化率的分组加权均值作为当前噪声像素的灰度估测值.Chongleib等[16]提出了一种改进的自适应加权均值滤波算法,根据像素的灰度是否取最小或最大值将其识别为噪声,用改进的加权均值对噪声像素进行恢复,其计算效率快于一般的中值滤波算法,但是仅根据灰度特征检测噪声,准确性并不高,特别是对黑白区域较多的图像.
随着模糊理论的广泛应用,部分学者将其引入到图像去噪中[17].文献[18]提出了一种基于支持向量机SVM的模糊滤波,用支持向量机分类器进行噪声检测,用基于直方图的模糊滤波器进行噪声去除.Arora等[19]提出了一种基于噪声自适应信息集的开关中值滤波算法,用源自模糊集的信息集对噪声进行检测,利用开关准则和噪声像素的有效邻域信息对噪声像素进行恢复.
最近,部分学者提出了以鲁棒的噪声检测与去除策略为特色的决策滤波算法.基于邻域决策的脉冲噪声去除算法[20]运用邻域决策方法保持无噪的黑、白色像素,用一阶邻域决策方法对噪声像素进行恢复.为了更有效地保持图像的细节,文献[21]提出了基于决策的自适应反馈中值滤波算法,用邻域的决策分析进行噪声检测,而通过邻域分析预测局部阈值,从而确定反馈中值滤波器的自适应性质.Sharma等[22]提出了一种多层决策的迭代滤波算法,用基于噪声密度的有效决策去除噪声,其中,采用大小固定的滤波邻域以保持像素的最大相关性.固定的去噪邻域大小固然能保持像素的相关性,但是其对高密度噪声的去除缺乏鲁棒性和有效性.
现有的脉冲噪声去除算法在一定程度上能够有效地去除噪声,但是部分算法本身存在固有的缺陷,去噪性能并不理想,部分算法复杂化去噪处理,其去噪处理未必有效.为了克服现有滤波算法的不足,进一步提升去噪效果和计算效率,本文提出了一种迭代的自适应最小偏差滤波算法(IAMDF).
根据其灰度、分布以及密度,可以对脉冲噪声进行数学建模.一个被脉冲噪声破坏的像素会取灰度范围的最小或最大值,对于8位的灰度图像,其噪声像素的灰度取0或255;当脉冲噪声污染图像时,以一定的密度或概率随机而均匀地分布于图像上.脉冲噪声的数学模型为
(1)
其中,f(i,j)表示含噪密度为d的噪声图像中像素(i,j)的灰度,最值min和max表示噪声像素的灰度,o表示无噪像素的灰度.
值得注意的是,最小值噪声的概率与最大值噪声相同,噪声像素与邻域的非噪声像素在灰度上差别较大.此外,当脉冲噪声污染黑色区域时,最小值噪声将被同化而消失,同样地,当脉冲噪声污染白色区域时,最大值噪声将被同化而消失.
根据脉冲噪声的模型,灰度取最小或最大值的像素很有可能是噪声.但不是所有灰度取最值的像素都是噪声,特别是对于医学图像或黑白区域较多的图像.因此,能够将灰度取最值的无噪像素与噪声进行区分是最重要的.
研究发现,对于无噪图像,其任何的像素都与其邻域像素高度相关,在灰度上具有高度相似性.因此,笔者提出一种基于局部偏差和局部统计特性的噪声检测方法.
1) 对每一像素(i,j),如果f(i,j)=0或f(i,j)=255,令R(i,j)=0.
2) 对每一R(i,j)=0的像素,如果f(i,j)=0并且n0≥T,或者f(i,j)=255并且n255≥T,令R(i,j)=1,否者转 3).
3) 如果像素(i,j)满足条件(2),令R(i,j)=1.
(2)
通过实验试错法,发现T=20为最优值.另外,因为k=3太小,N(i,j)(k)缺乏统计意义,而k=7太大,N(i,j)(k)缺乏相关性,故取k=5.
值得注意的是,步骤1)充分利用脉冲噪声的灰度特征进行噪声检测,而步骤2)根据邻域像素的高度相关性,将黑色或白色区域中灰度取最值的无噪像素与噪声区分开,步骤3)将灰度接近黑色或白色的区域中灰度取最值的无噪像素与噪声区分开.这些步骤能够准确地将噪声识别出来,从而保持了灰度取最值的无噪像素,这对于医学图像尤其重要.
对于脉冲噪声的去除,现有的中值滤波包括各种改进的中值滤波,多数用邻域的中值替换噪声像素.但是,根据正态概率分布,与集合中的个体具有最高相关性的是平均值,而不是个体的排序中值.但是均值滤波不适于去除脉冲噪声,因为用作替换噪声像素的邻域均值,对于当前的邻域往往是一个新的灰度.作为克服均值滤波缺陷的一种方法,中值滤波用邻域像素的排序中值替换噪声像素.然而,如果邻域中可用的无噪像素的个数为偶数,用作替换噪声像素的排序中值是中间两个值的均值,这样也会在邻域中引入一个新的灰度,概率为50%.
受上述分析的启发,为了避免引入新灰度的问题,并充分利用局部均值的最高相关特性,本文提出了基于迭代的自适应最小偏差的像素恢复方法,处理步骤如下.
令k=3,对图像中的每一个噪声像素(i,j),按以下情况处理.
1)N(i,j)(k)中不存在无噪像素以及已被去噪处理的像素,不作处理.
2)N(i,j)(k)中存在一个无噪像素或已被去噪处理的像素,将该像素的灰度作为当前噪声的灰度.
3)N(i,j)(k)中存在两个无噪像素或已被去噪处理的像素,将其中与N(i,j)(39)中非最值像素的均值最接近的像素,作为当前噪声像素的灰度.
4)N(i,j)(k)中存在三个或三个以上无噪像素或已被去噪处理的像素,将其中与它们的均值最接近的像素作为当前噪声像素的灰度.
令k=k+2,对每一个未被处理的噪声像素(i,j),重复执行步骤1)~4),直到未被处理的噪声像素少于一定的数量,比如相对图像像素总数的占比小于10-4.
最后对剩余的未被处理的每一噪声像素(i,j),用其N(i,j)(5)的中值作为当前噪声像素的灰度.
值得注意的是,步骤3)表示如果当前邻域中只有两个可用的有效像素,以致难以决定选取哪一个,或者就像以上所提到的,它们两者的均值是不可取的,就采用一个仅包含非最值像素的大邻域.步骤4)表示将邻域中一个原本无噪的或经过去噪处理的像素,其灰度最接近邻域无噪像素和已去噪处理像素的均值,作为当前噪声像素的灰度.另外,步骤3)和4)的处理以迭代和自适应的方式执行,有效利用了已经去噪处理的结果.
Input:f,R, Output:fn
n←0,f0←f
Do
n=n+1,fn←fn-1,k←2n+1
For eachfn(i,j) withR(i,j)=0
No processing
fn(i,j)←the only one pixel available
R(i,j)=1
R(i,j)=1
Else
R(i,j)=1
EndFor
Until sum(fn(:)~=fn-1(:))/card(fn)<10-4
For eachfn(i,j) withR(i,j)=0
fn(i,j)=median(N(i,j)(5))
EndFor
Returnfn
在CPU为Intel i5、内存为8GB、安装有Matlab R2019a的PC上进行实验.以数据集Set12中的图像Man, Monarch, House和Parrot[4]以及医学图像数据集Mini Mias Database[23]为实验素材,以最新发表的文献[12]、[15-16]、[19]、[21-22]中提出的方法作为参照,根据峰值信噪比(PSNR)、边缘保持指数(EPI)、视觉效果与计算效率,对IAMDF的性能进行验证和评价.PSNR和EPI定义为
PSNR=
(3)
(4)
其中,m,n分别为图像的高度和宽度,f为原图像,g为去噪图像,fhp和ghp分别为f和g基于拉普拉斯滤波的高通滤波图像,ufhp和ughp分别为fhp和ghp的均值.PSNR度量两张图像的相似性,而EPI度量边缘保持性能,PSNR和EPI值越大,其去噪性能越好.
各算法对含各种密度噪声的图像Man去噪所得的PSNR和EPI值如表1所示,最大值用黑体标识.仔细分析表1中对图像Man的去噪结果可以看出,随着噪声密度的增大,各算法的PSNR和EPI值一致走低.文献[16]、[21]和[15]的PSNR、EPI值较低,去噪效果不佳;文献[19]和[15]的性能在噪声密度较高时突然下降.文献[12]、[19]和[22]的PSNR和EPI值处于中等水平,除了较高的噪声密度外,它们相互之间差别不大.相对地,IAMDF的PSNR和EPI值始终高于其他算法,特别地,在噪声密度较高时,IAMDF在EPI值上相对于其他算法的优势愈加显著.
表1 各算法对图像Man去噪的PSNR和EPI
各算法对含各种密度噪声的图像Monarch的去噪结果如表2所示.分析比较表2中的数据可以得出两个重要结论.1) 相对于其他算法,IAMDF显示出优越的去噪结果,随着噪声密度的增大,由EPI显示的IAMDF在边缘保持方面的优势递增.2) 文献[16]、[15]和[21]的PSNR和EPI值较低,在去噪和边缘保持上的性能较差;对于低、中密度噪声,文献[12]、[19]和[22]之间的性能差别不大,处于中等水平,但是对于高密度噪声,文献[19]的性能骤然走低.以上结果的原因在于IAMDF在噪声检测和噪声去除方面具有更好的性能.
根据去噪图像的视觉效果,在图像House和Parrot上对各算法进行性能评价.对低密度噪声图像,在视觉上往往难以区分性能的优劣,因此采用高密度噪声.各算法对含噪密度为80%的图像House和含噪密度为90%的图像Parrot的去噪图像分别如图1和图2所示,各图像下方的两个数字为其对应的PSNR和EPI值.
图1 各算法对含噪密度80%的图像House的去噪结果Fig.1 Recovery results of all filters on House corrupted with 80% impulse noise
图2 各算法对含噪密度90%的图像Parrot的去噪结果Fig.2 Recovery results of all filters on Parrot corrupted with 90% impulse noise
仔细比较图1中对图像House的去噪结果可以看出,与其他滤波算法相比,IAMDF能够得到更高质量的图像.IAMDF的去噪图像比其他算法更清晰、对比度更高.具体地,文献[16]和[15]彻底去除了噪声,但是严重模糊了图像的边缘和细节.文献[19]和[22]不能完全去除噪声,去噪图像依然可见部分噪声斑点.相对于文献[16]、[15]、[19]和[22],文献[12]和[21]性能良好,有效去除了噪声,但是细心观察其去噪图像的边缘和细节,发现边缘在一定程度上受到了破坏.相比之下,IAMDF的去噪图像非常清晰,边缘和细节保留得相当好,与原始图像相比几乎看不出差异,只能识别边缘上的轻微模糊效果.此外,相应的PSNR和EPI值再次证实了由视觉感知得出的结论.
仔细观察图2中各算法对含噪90%的图像Parrot的去噪图像,可以得出三个重要结论.1) 相对于其他算法,IAMDF在其去噪图像中显示出更好的性能;即使在非常高的噪声密度下,IAMDF在彻底消除噪声和细节保持方面仍然做得相当好.2) 在除IAMDF之外的其他算法的去噪图像中可以看到明显的模糊效果或残余噪声.3) 相应的PSNR和EPI值与视觉感知得出的结论一致.这些结果归因于IAMDF能在彻底去除噪声的同时,很好地保持图像的边缘和细节.
为了研究IAMDF在医学图像中的适用性和有效性,将各算法应用于医学图像数据集mini mias database,对每个算法在所有图像上获得的结果取平均值,并以图形曲线的方式显示于图3.医学图像往往有较多的、与脉冲噪声灰度相同的黑白区域,因此医学图像去噪异常艰难,算法的去噪性能在很大程度上取决于其噪声检测的准确性.
图3 各算法对图像数据库Mini Mias Database去噪的PSNR和EPIFig.3 PSNR and EPI of all filters on Mini Mias Database
从图3可以看出,各算法的去噪性能差别较大,IAMDF的结果明显优于其他算法.根据PSNR和EPI曲线,IAMDF在PSNR上的优越性比在EPI上的优越性更为显著.原因在于IAMDF采用基于局部偏差和局部统计特性的噪声检测,能够准确地将灰度取最值的无噪像素与噪声像素区分开,从而避免在噪声去除过程中对其原始信息的破坏,这是其他算法无法做到的.事实上,IAMDF在图像去噪中取得较高的PSNR和EPI值与其对噪声检测器和噪声去除技术的改进密切相关.
为了从视觉效果验证IAMDF算法对医学图像的去噪效果,将各算法对数据集Mini Mias Database中含噪密度为60%的图像mdb001的去噪图像显示于图4.文献[12]的方法严重破坏了原图像的黑色背景,效果较差;文献[15]的方法去噪不彻底,图像的目标上有大片的噪声斑点;文献[16]的方法去噪效果虽然较理想,但破坏了部分黑色背景;文献[19]的方法去噪不彻底,背景有零星的白色噪声斑点;文献[21]和[22]的方法去噪效果较好,但是文献[22]的方法在去噪图像的背景上还留有少许白色的噪声斑点.相对地,IAMDF的去噪图像较清晰,纹理和边缘细节保持得更好,特别是对黑色的背景保持得较好,因为其基于局部偏差和局部统计特性的噪声检测,能准确地区分噪声与灰度取最值的无噪像素.另外,各去噪图像对应的PSNR和EPI值,基本上支持了以上结论.
图4 各算法对含噪密度60%的医学图像mdb001的去噪结果Fig.4 Recovery results of all filters on medical image mdb001 corrupted with 60% impulse noise
从医学图像数据集得出的结论与从2.1和2.2节得出的结论是一致的,IAMDF是去噪脉冲噪声的一个很好的算法,性能非常好.
表3显示了各算法在医学图像数据集mini mias database上的平均计算时间.从表3可以得出三个明显的结论.1) 除文献[16]之外,随着噪声密度的增大,各算法的计算时间递增,因为噪声密度的增大一般会增加去噪处理的工作量.2) 文献[15]耗时最多,其次是文献[21],而文献[19]计算速度最快.3) 虽然在计算效率上IAMDF没有显示出明显的优势,但其计算速度是可以接受的,其优越性在于噪声去除和边缘保持.
表3 各算法对图像数据库Mini Mias Database去噪的平均计算时间
为了取得理想的脉冲噪声去除效果,本文提出了迭代的自适应最小偏差滤波算法IAMDF,根据局部偏差和局部统计特性检测噪声,用基于迭代的自适应最小偏差的像素恢复方法对噪声像素进行恢复,实验结果证明IAMDF具有良好的去噪和边缘保持性能,优于部分最新提出的算法.对该算法做进一步改进,用于去除脉冲噪声与高斯噪声的混合噪声,是下一步的研究工作.