管美静 珠杰 吴燕如
摘 要: 图像在采集或传输的过程中会受到随机噪声的污染,给后续的图像分割、特征提取等处理造成干扰。常见噪声分为椒盐噪声、高斯噪声和混合噪声,为了进行图像处理,需对图像去噪。文章介绍了几种常用的图像去噪方法,如中值滤波、BM3D、均值滤波、小波去噪等,通过对这几种去噪方法的基本思想和算法流程的对比研究,分析并总结了这些方法处理噪声的效果和优缺点。
关键词: 图像去噪; 椒盐噪声; 高斯噪声; 小波去噪
中图分类号:TP391 文献标识码:A 文章编号:1006-8228(2020)02-29-04
Research progress of image denoising methods
Guan Meijing1,2, Zhu Jie1,2, Wu Yanru1,2
(1. Department of Computer Science, Tibetan University, Lhasa, Tibet 850000, China;
2.National & Local Joint Engineering Research Center for Tibetan Information Technology)
Abstract: The image would be polluted by random noise during the process of acquisition or transmission, causing interference to subsequent image segmentation and feature extraction. The common noise is divided into salt and pepper noise, Gaussian noise and mixed noise. In order to better perform image subsequent processing, it is necessary to denoise the noisy image. This paper introduces several commonly used image denoising methods, such as median filtering, BM3D, mean filtering, wavelet denoising, etc. Through the comparison of the basic ideas and algorithm flow of these image denoising methods, the effects and advantages and disadvantages of the methods in processing noise are analyzed and summarized.
Key words: image denoise; salt and pepper noise; Gaussian noise; wavelet denoising
0 引言
图像在采集、传输过程中因环境、成像设备、人为等因素的影响会受到不同噪声的干扰[1],导致采集的图像质量下降,给后续的特征提取、文本检测、图像分割等图像处理环节造成不可估计的影响,因此,需要对图像进行去噪处理。图像去噪作为计算机视觉研究领域中一个重要的研究方向,其目的是尽可能地减少或消除噪声对图像的干扰,使处理后的图像尽可能接近原始图像[2]。图像去噪的实质是对数据本身恢复和重建,以起到排除污染的作用,常用于科学研究的两种噪声类型为椒盐噪声和高斯噪声[3]。
目前已有许多文献给出了比较成熟的去噪方法,本文主要分析研究几种常用的去噪方法的去噪效果和优缺点。对去噪效果的评价主要有主观评价和客观评价两个方面,主观评价主要是通过人为视觉观测,客观评价主要有信噪比、结构相似度和峰值信噪比等指标,较好的去噪方法应该在主观评测和客观评价两个方面均有不错的表现。
1 椒盐噪声的去噪算法
椒盐噪声又称脉冲噪声,一般由成像设备,解压或传输过程等产生的黑点或白点噪声,所谓“椒盐”,椒就是黑,即“胡椒”噪聲,盐就是白,即“盐”噪声[4]。椒盐噪声对于后续的图像特征提取、识别及分割等过程会产生不同程度的影响,因此,为了保证后续处理过程的准确性,必须进行去噪。
比较成熟的去除椒盐噪声的方法如中值滤波,其是最为经典的一种去噪方法[5],中值滤波是一种非线性信号处理技术,它基于排序统计理论,主要通过用干净的点代替污染的点达到去噪效果。其具体操作是:首先确定待处理像素点的邻域,常用的有3*3或5*5的矩形邻域,然后将待处理像素点邻域内的所有像素按灰度值排序,对排好序的序列取中值,用中值代替原来中心点像素的灰度值,同时对整个邻域中灰度值相差较大的像素点用周围相近的像素值代替,也就是将图像中干净的像素点代替噪声点实现去噪[6]。该算法的优点是简单高效,缺点是由于中值滤波对所有像素点采用统一处理方法进行滤波,虽然去除了噪声,但也改变了非噪声像素点的值,给图像造成了一定程度的模糊,降低了原始图像的分辨率。
传统的中值滤波虽然简单易于实现,但由于它对图像所有像素点都进行同样的滤波操作,导致图像整体变模糊,针对这个问题,严盟[7]提出一种开关中值滤波算法,该算法的基本思想是:只对图像中的噪声点进行滤波处理,而信号点保持不变,其他操作步骤仍然采用传统中值滤波。因此,在进行滤波之前必须通过一些准则来判断图像中哪些像素为噪声点,哪些为非噪声点,常通过设定的阈值区分:对于固定值椒盐噪声来说,某像素点的像素值不为255或0则一定是信号点,但是对于像素值为255或0的像素点可能是噪声点,也可能是信号点,这需要由一种复杂的检测标准来判断是否为噪声点[8]。由于椒盐噪声最大的特点是随机性,所以像素点的极值可能不止两个而是多个,因此判断某像素点是否为噪声点需要较复杂的准则,判断准则的不合理也会导致去噪效果不理想。
BM3D算法[9]是一种基于三维变换域滤波的算法,是目前最好的图像去噪算法之一,能比较好的解决去噪后图像模糊的问题,许多有效的去噪算法都是以BM3D算法作为基础提出来的。该算法主要分为两步,第一步是基础估计,把待处理图像分成固定大小的子模块,对图像中的每一块进行逐块估计,通过块与块之间的相似程度对其分组,并将这些块聚集到一个三维数组中,再对三维数组进行3D变换,最后通过聚集对有重叠的块进行加权得到图像的基础估计;第二步是利用第一步得到的基础估计图像,对每一块进行第二次估计,再次通过块匹配找到与它相似的块在基础估计图像中的位置,匹配之后得到两个三维数组,对形成的两个三维数组进行联合维纳滤波,最后通过对重叠块的估计进行加权平均得到最终去噪图像[10]。三维块匹配算法流程图如图1所示。
实验结果表明,BM3D算法与传统去噪算法相比有着更高的峰值信噪比,但也存在许多不足:图片的复杂度较高或不同的噪声强度可能会导致块匹配不准确且增加了时间复杂度。
对于处理复杂度和对比度较高的图像时,传统的三维块匹配算法在去噪的同时会导致图像的边缘和纹理细节的部分丢失,可能会出现边缘振铃效应。为了更好的完善传统BM3D算法在去除椒盐噪声时的不足,肖佳[11]等人提出了一种改进的BM3D去噪算法。该算法的主要原理是:在进行基础估计之前首先对噪声图像利用SOBEL算子得到图像的平滑区域和边缘区域,对平滑区域使用传统的BM3D算法沿垂直方向和水平方向两个方向搜索相似块,对边缘区域沿垂直方向和边缘方向分别搜索相似块,然后根据搜索到的相似块进行块匹配分组,之后再次进行协同滤波,滤波完成之后对其聚合,随后再依次进行基础估计和最终估计,最终得到去噪图像。改进算法的核心是针对图像中存在的微小细节、奇异点、尖锐或弯曲的图像边缘,使用大量的匹配块,沿边缘方向而不是水平方向搜索相似块,在搜索邻域时,根据图像的不同特性采用不同形状的块进行匹配。改进后的BM3D算法流程图如图2所示。
实验结果表明,改进的BM3D算法采用沿垂直和边缘方向的方法搜索相似块,在每个阶段可以获得更多的相似块,相似块越多越能完整地表达去噪图像的细节和纹理特征,整个过程获得的相似块数量是传统BM3D算法的三倍,采用该方法去噪后的图像视觉效果较好,图像边缘和细节保留较完整,也具有较高的峰值信噪比。
2 高斯噪声的去噪算法
高斯噪声的概率密度函数服从高斯分布(即正态分布),通常是因为照明不足或温度突变等原因引起的噪声,对图像的整体都有巨大的影响[12]。去噪实验采用高斯噪音,能尽量做到对真实噪声的近似和仿真,以更好的验证各种去噪方法的降噪性能。
均值滤波因其对简单图像去噪的高效性,作为一种常用的高斯噪声处理办法,通过对某邻域窗口内所有像素点的灰度值取平均值,将该均值更新为当前像素点的灰度值,最简单的如以3*3大小的滤波窗口对当前像素点进行滤波,利用该邻域的平均值来表示该像素点的值,达到去噪效果。常用的均值滤波器有:算术均值滤波器、几何均值滤波器、谐波均值滤波器和逆谐波均值滤波器。算术均值滤波器通过简单的平滑能够有力地抑制噪声,同时也由于平均引起图像模糊,模糊程度与邻域半径成正比。几何均值滤波器与算术均值滤波器在图像平滑度方面比较有优势,在滤波过程中对图象细节也有较好的保留。谐波均值滤波器对椒盐噪声中的白点噪声效果更好,但是对于黑点噪声的处理效果较差,所以它更适合处理高斯噪声这类噪声点特征一致的噪声。逆谐波均值滤波器在处理椒盐噪声方面表现良好,但它的不足是必须要知道噪声是暗噪声还是亮噪声,才能选择合适的滤波器阶数符号,如果因噪声判断不准导致选择了不合适的阶数符号,不仅去噪效果不理想,还可能破坏原始图像[13]。综合以上几种均值滤波方法,均值滤波在去噪的同时也能保证处理后的图像边缘模糊程度较轻,但是经过均值滤波之后的图像整体仍然比较模糊,会导致图像部分细节丢失。
小波变换作为一种经典的去噪方法,在有效的去除高斯噪声之后尽量保留原始图像的细节。由于信号点和噪声点的频率不同,通常信号点的频率较低,而图像的细节和边缘的频率较高,且噪声点往往也集中在高频区域,所以,可以通过使用小波变换先分离出信号点和噪声点,然后对其去噪,能夠较完整的恢复图像细节[14]。其主要原理是,将信号通过小波变换后产生两种小波系数幅值,其中由信号产生的小波系数幅值较大,而由噪声点产生的小波系数幅值较小,并且噪声点的小波系数幅值小于信号点的小波系数幅值。对小波系数设置一个合适的阈值,大于阈值的小波系数是由信号产生的,予以保留,而小于阈值的小波系数是噪声点产生的,将其置为零并舍去,如此就达到了去噪目的[15]。但由于小波变换是根据图像的高低频来分割信号和噪声点的,随着分辨率的降低,噪声的小波变换值也逐渐减小,而随着分辨率的不断提高,噪声的小波变换值增大,噪声和信号之间的频率太接近可能导致分离不够精确[16]。所以,小波变换在有效去除噪声后很难保证图像分辨率。
维纳滤波作为另一种经典的去噪方法,对于复杂图像去噪后的图像边缘和细节有很大部分的丢失,结合小波去噪和维纳滤波的优缺点,张天瑜[17]提出一种基于维纳滤波的小波图像去噪算法,该算法的主要思想是:首先利用小波变换将图像分解为不同频率的子图像,重构原始图像信号,然后使用改进阈值函数设置并选取合适的阈值区分噪声点和信号点,最后进行去噪。该算法能够在抑制高斯噪声的同时保留更多的边缘细节,但是该方法的难点在于维纳滤波过程中阈值的设置和阈值函数的选择,阈值设置不当或阈值函数选择不当会影响去噪效果。
相比以上算法,一种高斯滤波算法能更好的实现高斯去噪,该算法思路为:利用高斯模板对待处理像素点邻域内所有像素的灰度值加权求和,加权的结果代替待处理像素点的灰度值,达到去噪效果。利用这种线性平滑滤波的方式,能更好的保留图像的边缘和细节信息[18]。该算法简单、易于实现,且具有更好的视觉效果和更高的准确性。