椒盐噪声图像降噪算法设计

2023-04-17 13:31
电视技术 2023年12期
关键词:中值均值边缘

慕 阳

(南昌理工学院,江西 南昌 330044)

0 引言

计算机科学和图像处理技术在快速发展中,尤其最近几年,随着计算机算力的提高,众多图像处理相关的算法能够不断运用到实际中,图像在医学成像、模式识别等各个领域取得了相当广泛的应用,随着最近几年神经网络的兴起,图像技术的应用更是百花齐放、争奇斗艳。然而,图像数据在各个阶段都有可能发生改变,改变图像原有的像素数据,这样会使得图像丧失原有的视觉效果,带来更多的干扰,造成不好的视觉感受。尤其是图像的一些细节信息,比如物体的边缘纹理等高频信息。根据图像产生噪声的原因,可以将图像的噪声信息划分为不同的种类。针对不同种类的噪声,需要采取不同的降噪方案,采取最适合的方案就够取得较好的处理效果。总之,需要对图片进行一系列的操作从而降低图像中的干扰信息,以便能够将经过降噪处理的图片作为其他步骤的原始图片,以实现更好的数据分析、处理和利用。图像降噪要考虑的问题就是如何在尽可能减少图像中噪声对图像造成的干扰的同时,尽可能保留图像的原始特征,如纹理信息、边缘细节信息、形状信息以及拓扑结构等。

1 图像降噪算法相关理论

1.1 均值滤波算法

均值滤波是最常用和最基础的先行滤波算法,它的算法思想很简洁,但可以从简洁中扩展出更多更复杂的改进算法,用来针对不同类型的噪声,获得更好的去噪效果。均值滤波的大致思想如下:针对某一特定位置像素,规定一个半径范围,对范围内的像素计算平均值后得到一个数值,用来替换当前的中心像素值,对整体图像的每个像素值都进行上述计算[1]。一般基于图片数据的局部性原理考虑,经常采取比较小的半径来尽量控制数据间的相似性,增加使用平均值替换中心元素的合理性,又为了计算方便,常选择半径为1 或2 的方形范围。

1.2 传统中值滤波算法

传统的中值滤波由最简单的均值滤波算法改进而来。两种算法的基本思想和实现步骤大致相同[2]。相较于均值滤波而言,中值滤波的改进在于计算的并不是半径范围内的均值,而是使用范围内的中值作为替换中心像素的值,取到的像素中值一定属于原本的图像,相比于均值滤波有更大的合理性。用数学语言表示如下:用f(x,y),g(x,y)分别表示原始图像和处理后的图像,W为二维模板,即选取的范围,与上述均值滤波中介绍的类似,通常采用半径为1 或2 的方形范围,即3×3 或5×5 的方形范围,最终的输出结果就是g(x,y)=med{f(x-k,y-l)},k,l∈W。其中W的形状还可以选作线状、圆形或其他各种形状,但处理效果可能不佳,一般还是使用方形,还可以方便计算,简化算法。简单的中值滤波仍然存在许多缺点,在噪声密度很大的情况下(基于日常经验,噪声密度很大的标准大概是噪声出现的概率大于20%),在取到的范围内噪声数值过多,通过计算范围得到的中值也依然有很大概率是噪点像素值,这时处理的效果就会大打折扣[3]。此时可以在中值滤波的基础上进行进一步改进。

2 边缘提取算法

2.1 Canny 算子提取图像边缘

对图像进行边缘检测研究的过程中,有研究人员提出一个优秀的图像边缘提取算法应该满足两个标准。一是能够有效地抑制图像噪声,因为图像噪声和图像细节、纹理、图像边缘信息在图像信息中都属于高频信息,如果直接单纯地对图像的高频信息进行提取,势必会将噪声也当作图像的边缘信息,造成不太理想的边缘检测效果[4]。因此,在对图像进行基于频率域的高频信息提取操作之前,应该先对图像进行一定程度的降噪。二是图像边缘提取算法应该尽可能精确地确定边缘的位置,毕竟算法的最终目的是提取图像边缘,一定要使提取出的边缘数据与原图像数据的偏差尽可能地小。依据上述两个基本标准,得到的最优化逼近算子就是Canny 边缘检测算法。还有很多与之类似的其他算法步骤也与之类似,都是先对图像采用某些降噪手段,对图像进行平滑处理以减少图像噪声信息,再对图像进行求导数。Canny 算法的具体步骤如下:首先,用高斯滤波器平滑图像,其次,用一阶偏导的有限差分来计算梯度的幅值进行非极大值抑制,最后,用双阈值算法检测和连接边缘[5]。

2.2 神经网络算法提取图像边缘

整体嵌套边缘检测(Holistically-Nested Edge Detection,HED)网络模型是在VGG16 网络结构的基础上设计而来[6]。HED 网络是一种多尺度多融合的网络结构。多尺度的直观解释就是对图像在多个不同维度进行处理,每一个维度都可以得到一副处理后的图像,直观表现为把VGG16 网络的每一组的最后一个卷积层的输出取出来作为一个阶段处理结果供最后的图像使用[7]。每一层都可以看作图像经过一定处理后的处理结果。不过因为每一组得到的图像的长宽尺寸不同,所以还需对每一部分的输出图像进行进一步处理,这里采用转置卷积/反卷积对每一组得到的图像再做一遍处理。通俗地说就是把神经网络在每一组的输出图像做尺寸放大处理,让每一组输出图片扩大为原来的2n-1 倍,即第一部分不变,第二部分输出图像扩大为原来的2 倍,第三部分扩大为原来的4 倍,以此类推。这样在每个尺度(VGG16 的每一组就是一个尺度)上得到的图像都是相同的大小,方便后续进一步处理。

3 图像降噪算法设计

3.1 改进的自适应中值滤波算法

本文中改进的自适应中值滤波算法与改进前的自适应中值滤波算法类似,在思想上大致分为两个阶段。第一个阶段是先对图片进行噪声检测,确定滤波范围中心点的像素是否可以看作图像噪声。第二阶段,根据第一阶段的判断结论对中心点像素进行进一步的处理。如果判断结果为滤波中心像素属于原始图像像素,即中心像素是图像的原始像素数据,那么就可以不用替代当前的中心像素。如果中心点是图像噪声,还要看滤波范围内的中值是否还是噪声,如果不是,可以直接使用中值进行替换,如果还是可以看作噪声,可以按照自适应中值滤波算法,扩大滤波半径,然后继续以上步骤,观察范围内中值是否属于图像噪声。但是若图像噪声分布较多,一直扩大滤波半径再重复上述算法依然不能用中值替代原始像素,这时可以使用除了噪声点外的其他像素的均值作为替代。当滤波半径范围扩大一定程度之后中值像素依然是噪声,说明图像的噪声含量巨大,就不再寻找滤波范围内的中值,转而计算滤波范围内除了噪声像素点之外的其他像素的均值,用它来替代中心像素。改进的自适应中值滤波算法的具体步骤如下。

Wij为正被处理的、中心在(i,j)处的滤波窗口,W0为默认的初始窗口大小,Wmax为允许的最大窗口大小。fij为(i,j)处的灰度值,fmin为Wij中的极小灰度值,fmax为Wij中的极大灰度值,fmed为Wij中的灰度中值。

步骤1:如果fmin<fij<fmax,输出fij,否则转到步骤2。

步骤2:如果fmin<fmed<fmax,输出fmed,否则转到步骤3。

步骤3:如果Wij+2 ≤Wmax,增大窗口,Wij=Wij+2,转到步骤1,否则转到步骤4。

步骤4:输出最大窗口中除了所有到极小灰度像素和极大灰度像素之外的灰度均值favg(k为极值灰度像素的数量)fmin<f(x,y)

相较于标准的自适应中值滤波算法,该算法克服了两个违背数据局部性原理的缺点。

第一,自适应中值滤波算法是先判断中值像素再判断中心像素是否为噪声,若中值像素是噪声,会直接扩大滤波范围,就会出现当中心像素属于原始图像数据而中值像素是噪声情况下会直接扩大滤波范围,之后再用更大滤波范围内的中值来替代原本合理的中心像素,显然这种做法违背了数据相关性,滤波范围越大,数据间的相关性就越低,这时取得的中值像素一定不如非噪声的原始中心像素合理[8]。

第二,如果图像的噪声比例非常多,滤波范围内找到的中值可能一直都是噪声,这时就需要不断扩大滤波范围。滤波范围越大,像素间的相关性越低,直接替代中心像素的合理性越低,会造成图像的细节边缘信息被模糊[9]。况且,在噪声含量很多的情况下,可能一直扩大到规定的最大滤波半径发现中值依然是噪声,这时直接使用中值来替代中心像素显然不合理。而改进算法可以在滤波范围扩大一次之后若没有找到合理的可替换中值像素,就直接用非噪声像素均值来替换,尽可能地保持了像素数据间的相关性,在非极端情况下并不会将噪声作为替换中心像素的数据,算法有了更多的合理性。

3.2 基于神经网络的图像边缘提取算法设计

Canny 算法过程中需要确定几个参数,人为地确定不同的参数使之能够尽可能获得逼近理想效果的处理结果[10]。而且在实际使用过程中,经常会在原有算法基础上做进一步的基于实际使用场景的优化,这时势必会引入更多的参数,参数的增多将导致难以确定固定的数值使算法达到较好的效果,只能通过多次尝试不同参数值观察处理效果,最后选择一个较好结果。但随着参数个数的增多,各种参数间的组合种类越多,使得人为工作量大大增加。这些参数的手动设置同样会大大降低算法的健壮性,很难在不同的场景下使用相同的参数值取得较好的效果,边缘检测效果会大打折扣。

对图像的边缘进行数学建模难度很大,代码实现难度较大,且得到的算法的健壮性较低,取得的检测效果不够理想。可考虑采用基于神经网络的边缘提取技术,采用神经网络结构,包括卷积层、池化层、全连接层及softmax 层,下面依次介绍每个结构的作用和原理。

池化层中可以采用多种不同但类似的方法,比如最大池化、均值池化、中值池化等[11]。采取不同的算法,最后的输出结果也不尽相同。每个算法的侧重点和想要提取的图像特征不同,一般采用最大池化的较多。池化层在对图像数据进行特征提取的同时,也对图像数据进行了压缩,只保留图像的关键特征信息,舍去一些可能相比较没那么重要的特征,通过多层池化可以大大压缩图像数据,使得每个卷积层的学习成本大大降低,提高整体算法的运行效率。保留图像的主要特征,还可以防止预测结果的过拟合,使得整个算法的主要精力放在相对比较重要的特征上面。而且,使用池化层而不是卷积来降低图像尺寸的好处是池化层不需要保留参数,直接使用某个固定函数对图像进行像素运算,可以大大减少网络的参数量,大大降低网络的训练成本。

全连接层的核心操作就是矩阵向量乘积y=Wx,经过W的处理,实际上就是将一个特征空间映射到另一个特征空间的过程。而W就是这个变化过程的中间步骤,起到的就是空间映射的作用。从另一种角度也可以说目标向量y是原始向量x的关于W加权和。在日常的使用过程中,全连接层一般放在网络的最后几层,用来对前面经过处理后的特征做进一步的整合,整合处理后特征之间的关联性,尽可能地发现特征间的规律,对特征加权计算之后输出作为输出图像。与卷积层相比,卷积层相当于对图像特征做一些弱化和抽离,将图像特征打散,而全连接层是将打散并提取学习强化后的特征做一个整合,是一种特征强化的方法。强化整合后的特征集合可以作为一个图片的特征表达[12]。

4 结语

本文主要讨论了针对椒盐噪声的图像降噪算法的设计,讨论了本算法与传统的中值滤波算法的区别和优势,总结了算法在传统算法上做出的改进,基于神经网络的图像边缘提取算法的网络结构和实现细节及原理。使用改进的自适应中值滤波算法和基于神经网络提取边缘算法结合的方式相较于传统的自适应中值滤波有明显的改进,在一些指标上和直观的视觉体验上都有明显的优势。改进的自适应中值滤波算法与传统的自适应中值滤波算法相比效率有了更大的提升,最后的降噪结果也有明显的提升,遵循了数据的局部性原则,尽可能地保留了图像的边缘细节信息。所述降噪算法的优化对图像数据的处理与优化起到了促进性的作用。

猜你喜欢
中值均值边缘
Lagrange中值定理的巧妙应用
微分中值定理教法研讨
一张图看懂边缘计算
后中值波电流脉冲MIG焊工艺
均值不等式失效时的解决方法
均值与方差在生活中的应用
关于均值有界变差函数的重要不等式
对偶均值积分的Marcus-Lopes不等式
函数矩阵的增减性及中值定理
在边缘寻找自我