联合双边滤波和非局部滤波的图像去噪算法
2018-12-26高梓铭张鹏飞刘卫华刘佳琳
高梓铭,张鹏飞,刘卫华,刘佳琳
(1. 电子信息现场勘验应用技术公安部重点实验室,陕西 西安 710121;2.陕西省无线通信与信息处理技术国际合作研究中心,陕西 西安 710121;3.西安邮电大学 图像与信息处理研究所,陕西 西安 710121;4.西安邮电大学 通信与信息工程学院,陕西 西安 710121; 5.中国人民共和国陕西省西安市公安厅 科信处, 陕西 西安 710002)
图像在采集、传输、存储和显示的各个环节受到外界因素干扰时,不可避免会产生噪声。为了满足视觉对图像清晰度的要求和后续图像处理等问题,需要对图像去除噪声。通常情况下,噪声在统计学上被近似为加性高斯白噪声,去噪要满足[1]:(1)平滑区域尽可能光滑,噪声被完全去除;(2)边缘部分尽量保留,不能被模糊或加强;(3)纹理细节不能丢失,不能被平滑。(4)不能引入人为特征,如阶梯现象和振铃现象。
目前,去噪方法主要为时域去噪和频域去噪。时域去噪包括均值滤波、中值滤波、高斯滤波、基于偏微分方程(partial differential equation, PDE)[2-3]的滤波去噪;频域滤波主要起源于以小波[4]为基础的多分辨滤波。时域滤波中多数能获得较高的峰值信噪比(peak signal to noise ratio, PSNR),但边缘和纹理等细节容易被模糊;基于变分PDE的去噪算法[5]利用梯度算子进行各向异性扩散,并进行迭代,从而达到去除噪声和保留细节的目的,但易引入人造阶梯特征;基于小波变换的去噪算法能够较好的保留纹理细节,但计算复杂度较高。
双边(bilateral filter, BF)滤波去噪算法[6]具有计算简单且容易实现的特点,能够有效去除噪声。该算法在空间域用欧式距离度量当前像素与其邻域像素的亮度相似性,从而确定邻域像素的权重系数。相对于高斯滤波和均值滤波,双边滤波可以在平坦区域和边缘区域进行不同程度的滤波,对边缘有一定的保护作用[7]。但双边滤波算法是基于相邻像素的,结构保持的效果没有明显得到提高。非局部均值(non-local means, NLM)滤波去噪算法[8],基于邻域图像块的相似保持结构的相似性,被广泛应用在图像去噪算法中。由于NLM算法利用局部图像块信息,比单个像素能够更好地表达图像的结构信息,故其性能优于双边滤波方法。但是NLM算法的计算复杂度较高,不适合工程应用。目前,NLM的加速算法可以分为3类:(1)快速算子,例如,FFT[9],卷积[10];(2)数据驱动的对像素邻域空间的降维算法,例如,SVD[11]和PCA[12];(3)预处理算法,例如,在去噪前预先去除一些不相似的像素,其中包括基于均值和梯度的预分类[13],基于均值和方差的预分类[14-15],基于矩的预分类[16]或者基于聚类的预分类[17];半局部均值算法[18](semi local means, SLM),将搜索窗的大小限定为M×M,而不是整幅图像,在一定程度上降低了计算量;在SLM的基础上采用二维直方图和积分图加速块的搜索算法[19]。
针对NLM滤波去噪算法的计算复杂度高的问题,本文提出联合BF滤波和NLM滤波的图像去噪算法(combining non-local means filter and bilateral filter,CNLMBF),利用NLM的性能优势结合BF滤波的计算优势,以期保证NLM去噪性能的同时又能降低算法复杂度。
1 NLM和BF滤波去噪算法模型
令V(i)和U(i)分别表示噪声图像和干净图像,i表示像素的索引值,N(i)是高斯白噪声,则去噪模型为
V(i)=U(i)+N(i)。
(1)
NLM滤波算法的去噪像素i的输出NL(V)(i)为整幅图像V(i)各像素的加权平均,定义为
(2)
其中,V(j)表示以像素j为中心的邻域,权重ω(i,j)可表示为
(3)
表征像素i与像素j的相似程度。h是衰减因子,与噪声水平相关,h越大,指数函数衰减得越慢,去噪的效果越平滑;相反,h越小,指数函数衰减得越快,去噪效果越尖锐。式(3)中,像素i的邻域图像块定义为Ni,此邻域块的向量表示为V(Ni),两像素i和j的相似性用两向量V(Ni)和V(Nj)的相似性来度量,相似程度用欧几里得(Euclidean)距离度量。
BF滤波算法中度量两像素的相似性用其灰度距离和空间距离来度量,可表示为
(4)
(5)
其中,D(i,j)为像素i,j的空间欧式距离,度量空间位置的相似性,|V(j)-V(i)|为像素i,j的灰度距离,度量像素灰度差异的相似性,这里欧式距离的计算是两像素点的距离。
2 联合NLM和BF的滤波去噪算法
2.1 计算复杂度分析
当纹理信息或结构信息在整幅图像多个区域表现较明显时,NLM滤波算法可以取得很好的效果,但是该算法需要搜索整幅图像中的相似性结构信息,计算量大,很难做到实时处理。
设某图像的大小为N×N,搜索窗的大小为M×M,相似窗的大小为S×S,在NLM算法中,对于每个待去噪像素z(i)(其空间坐标为i(xi,yi),需要计算N2×M2个欧式距离。欧式距离的计算表达式[8]为
(6)
其中#i表示以像素i为中心的大小为S×S的正方形窗(patch)。在欧式距离的计算中,需要计算两个向量,即大小为S×S的正方形窗排成一列构成的向量的距离,包含(3S2-1)次加法,2S2次乘法。因此,NLM滤波算法的计算复杂度为O(N2M2S2)。
BF滤波算法根据像素之间空间距离和灰度距离寻找像素之间的相似性,相应的参数设置如NLM算法,包含3次加法、2次乘法。根据式(4)和式(5),BF滤波算法的计算复杂度为O(N2M2)。
一般相似窗选择7×7,则SLM的计算复杂度将是双边滤波的49倍,以1幅256×256的图像为例,NLM滤波算法的计算复杂度是BF滤波算法的65536倍。
2.2 去噪性能分析
构造1幅边界过度剧烈的阶跃黑白图像,如图1(a)所示,图像大小为256×256,黑、白区域各占一半,黑色部分像素值为0,白色部分像素值为100,对该图像加入标准差为10的高斯白噪声,得到图1(b)。
图1 阶跃黑白图像及加噪图像
选择边界中点处1的像素,坐标位置(129,129),观察其在搜索窗内各像素的相似程度,即观察其滤波的系数大小,系数大说明与像素1相似程度大,否则,相似程度小。搜索窗以像素1为中心、大小为41×41。利用式(3)和式(5)分别画出BF滤波和NLM滤波的系数三维图,如图2所示。
图2 边界点的滤波系数
从图2(a)中可以看出,BF滤波的大系数分布在像素1的右侧,并且随距离的增加而变小,即在像素1右侧,与其距离越近相似程度越大;相反,在像素1的左侧,其结构相似程度与1相差很大,故滤波的系数较小。实际上,由于像素1在黑、白像素的分界处,并且属于白像素处,与其结构最相似的像素应该分布在像素1上下两侧并且在黑白分界线上,其余不够相似的像素都会给去噪带来不好的结果。故BF滤波在此边界处的性能不够好。而图2(b)中NLM滤波在边界处的系数分布与实际分析完全相符,即,与像素1相似程度最大的像素全部在黑白分界线上,其余的像素相似程度很小。
平滑区域像素2的坐标位置为(129,139),搜索窗以像素2为中心、大小为41×41,利用式(3)和式(5)分别画出BF滤波和NLM滤波的系数三维图,如图3所示。
从图3中可以看出,BF滤波对中心像素的权重较大,距离越远权重越小,而NLM滤波对其搜索区域的像素权重几乎相同,对中心像素的关注度不够,因此,BF滤波对于平滑像素的去噪效果会更好。
图3 平滑区域的滤波系数
2.3 联合滤波算法流程
通过对BF滤波算法和NLM滤波算法的分析,提出联合BF和NLM的滤波去噪算法。先对图像做预处理,即检测出图像中存在的边界,用SLM去噪,其余的平滑像素用BF滤波去噪,算法流程如图4 所示。
图4 算法流程
3 实验结果分析
为验证算法的有效性,选用边界明显的棋盘图像和标准测试图像(Cameraman、House、Barbara、Lena及Boat),图像均为灰度图像,大小为256×256,噪声图像中加入高斯白噪声的标准差记为σ,其中棋盘图像用matlab函数checkerboard生成。
分别比较中值滤波(mean filter,MF)、高斯滤波(gaussian filter,GF)、半局部均值滤波(semi local mean filter,SLM)、BF滤波与CNLMBF的去噪效果与运行时间。MF滤波掩模大小为3×3;GF滤波掩模大小为3×3;高斯函数的标准差为0.5;SLM滤波搜索窗大小为15×15,相似窗的大小为3×3,尺度因子h=0.7×σ;BF滤波窗大小为11×11,空间域的标准偏差为3,灰度域的标准偏差为(σ/255)/0.3。
测试图像在5种去噪算法的峰值信噪比(PSNR)的对比结果如表1所示,将表1中各噪声水平下的平均去噪效果以二维曲线表示,如图5所示。从图5可以看出,BF、SLM和CNLMBF去噪效果较稳定,GF去噪效果最差,MF去噪效果与噪声近似成线性关系。
记录BF、SLM和CNLMBF算法的运行时间,如表2所示,并计算各噪声水平下所有测试图像的平均运行时间,如图6所示。
从图5和图6中可以看出,CNLMBF与BF的计算时间相当,但去噪性能优于BF。CNLMBF的去噪性能略逊于SLM,但是计算速度却是SLM的近50倍。因此,CNLMBF在保证去噪性能的同时,提高了计算速度,降低了计算复杂度。
表1 5种去噪算法的峰值信噪比对比
(续表1)
表2 运行时间对比
(续表2)
图5 5种去噪算法平均去噪效果对比
图6 平均运行时间比较
4 结语
通过分析非局部均值滤波和双边滤波的优缺点及在边界和平滑区域去噪的性能,利用SLM滤波对图像边界去噪,BF滤波进行平滑部分去噪。实验结果表明,该算法改善了非局部均值去噪算法计算复杂度高的问题,提高了运算速度。