APP下载

一种2D-VMD与NLM结合的芯片图像去噪算法研究

2021-06-30金旭荣李昊怡

计算机测量与控制 2021年6期
关键词:像素点高斯分量

樊 博, 金旭荣, 田 瑞,李昊怡

(1.国网宁夏营销服务中心(计量中心),银川 750002;2.四川大学 电气工程学院,成都 610065)

0 引言

随着电力物联网的蓬勃发展,智能电表作为其中重要的末端感知设备,其可靠性检测受到越来越多的重视。而芯片型号识别是可靠性检测的重要一环,智能电表在其生产过程中,可能会出现芯片误用、安装位置错误等问题[1]。目前,基于机器视觉的智能电表元器件检测技术发展较快[2],它结合数字图像处理技术,能快速、准确地检测智能电表芯片型号。但原始的芯片图像在采集过程中易受到各种噪声影响,如高斯噪声、白噪声、颗粒噪声等。这些噪声会模糊芯片图像的字符信息,从而增加智能电表的检测难度。为了降低芯片图像中夹杂的噪声影响,最大程度地还原图像信息,保留图像的原始特征,去除无用信息,增强清晰度[3],需要对芯片图像进行去噪。

目前芯片图像去噪算法主要分为空间域去噪和变换域去噪[4],空间域去噪包括:中值滤波[5]、维纳滤波[6]、非局部均值滤波(NLM, non-local mean)[7]等。空间域滤波有着计算简单和处理速度快的优点,但不能达到很好的去噪效果。变换域去噪包括基于小波变换的算法[8]、经验模态分解[9]( EMD,empirical mode decomposition)和变分模态分解[10](VMD,variational mode decomposition)等。变换域滤波的去噪效果较为明显,但去噪后的图像容易丢失细节,导致图像的清晰度不高。

近年来,变换域去噪算法在图像处理领域得到了广泛的应用。Nunes[11]等人提出二维经验模态分解对图像信号进行处理,但该算法存在对噪声较为敏感、缺乏坚实的理论基础及需要对插值进行选择等不足。为了克服上述的缺陷,Dragomiretskiy[12]等提出VMD的扩展版本,即二维变分模态分解(2D-VMD)。2D-VMD是一种自适应、非递归的分解算法,类似于一维变分模态分解,它能将二维图像分解成多个具有不同中心频率的固有模态函数(IMF,intrinsic mode function)。Dragomiretskiy等学者将2D-VMD应用到雾霾图像的去噪处理上,并根据原始图像和重构图像的峰值信噪比(PSNR,peak signal-to-noise ratio)确定分解的模态个数,但存在需要预设K取值范围的问题。文献[13]利用2D-VMD和中值滤波结合的算法对图像进行去噪处理,相比经典的滤波算法,虽然PSNR值有了一定提升,取得较好的降噪效果,但需要人为设置模态个数K值,缺乏自适应性。

空间域滤波中的非局部均值滤波是近年来去噪效果较好的一种滤波算法,它利用图像之间的相似性,通过加权平均的方式处理待滤波像素点,能在去噪的同时保持图像自身的结构信息,非常适用于处理局部信息相似度较高的图像。

针对空间域滤波和变换域滤波的优缺点,结合芯片图像局部信息相似度较高的特点,本文将变换域中的2D-VMD算法和空间域中的NLM算法结合,提出一种应用于智能电表芯片图像的去噪算法。首先利用2D-VMD将含有噪声的芯片图像分解为多个不同的模态分量,根据中心频率观察法确定分解层数K,克服了人为设置K的缺点;然后分别计算每个模态分量与原始图像的SSIM,根据预设的SSIM阈值选择有效的子模态进行重构,去除噪声项;最后使用NLM滤波对重构后的图像进行处理,达到二次去噪的效果,减少噪声对芯片字符的干扰。

1 二维变分模态分解

类似一维VMD,2D-VMD可以将二维信号非递归、完全自适应地分解为多个具有不同中心频率的子模态。2D-VMD以分解模态的估计带宽之和的最小值为优化目标,对应的二维约束变分模型可表达为:

(1)

式中,sk={s1,s2,…,sK}为分解后的K个模态分量(IMF),ωk={ω1,ω2,…,ωK}为对应的中心频率。

在式(1)中引入二次惩罚函数和拉格朗日乘数将约束性变分问题转换为非约束变分问题。式(1)的扩展的拉格朗日表达式可表示为:

(2)

(3)

通过Parseval傅里叶变换,将式(3)表示为:

∀ω∈ϖk,ϖk={ω|[ω,ωk]}

(4)

(5)

拉格朗日乘子λ,则更新表达式为:

(6)

然后对IMF进行傅里叶逆变换并计算信号残差。重复上述迭代过程,直到信号残差值满足式(7),输出各个子模态。

(7)

芯片图像的噪声信息主要存在于高频带中,2D-VMD能够有效分离原始图像中的有效分量和高频噪声分量,将高频成分滤波后,重构回去就能够得到达到抑制高频噪声的目的。

2 非局部均值滤波

非局部均值滤波算法是一种去噪效果较好的空间域滤波算法[14]。它以图像中的某个待滤波像素点为中心,构成一个局部区域,寻找图像中与此局部区域相似的区域,根据这些区域内像素点进行加权平均达到滤除噪声的效果。

NLM滤波能充分利用图像本身的相似性,通过计算相似的图像块与当前噪声所在图像块之间的相似度,进而利用加权平均来恢复待滤波的像素点。而智能电表中的芯片图像较为特殊,一般由背景和字符组成,这就导致芯片图像中能利用的相似、冗余的信息较多,因此,利用非局部均值滤波对芯片图像进行处理的适用性较好,符合其滤波算法的相似性原理。恰当的利用这些信息可以有效的去除噪声,选择NLM滤波进行二级滤波处理能取得较为突出去噪效果。

3 2D-VMD与NLM级联去噪

2D-VMD与NLM级联算法流程如图1所示。该算法可分为两步:1)一级滤波:首先输入待滤波图像,利用2D-VMD将原始图像分解为多个子图;然后根据中心频率观察法确定分解层数K;引入结构相似性系数SSIM来衡量各个分解模态与原图像的相关性,并根据文中所提出的阈值的设置方法,通过预设的阈值确定分解模态中的噪声项并去除,如此将所有的模态计算过后,重构剩下的有效分量,一级滤波结束;2)二级滤波:对重构图像进行NLM滤波处理,进一步去除重构图像的剩余噪声。

图1 算法流程图

假设原始芯片图像为f(x,y),其中(x,y)∈Z2。根据式(1)~(7),原始芯片图像f(x,y)经过2D-VMD分解后,结果为k个具有不同中心频率的模态分量。

(8)

式中,sk为k个模态分量,ωk为各个模态分量对应的中心频率。

传统的2D-VMD算法需要人为设置K值,缺乏自适应性,而2D-VMD的分解层数K对图像分解效果的影响很大,选择合适的K能够有效地将噪声分量分离出来。若K值过小,则分解不充分,易导致模态混叠的问题;若K值过大,则分解过度,易产生冗余分量,不利于对模态分量的分析[15]。优化K值的关键是找到欠分解和过分解的临界点。2D-VMD是一种频域分解技术,模态中心频率的变化可以反映分解状态:过分解情况下会出现各模态的中心频率非单调递增[16]。

(9)

式(9)表明通过获取中心频率单调递增对应的最大K值,可以得到最优的K值。

经2D-VMD分解后,含噪图像被按照中心频率分解成K个模态分量,而噪声分量和有效分量的分布是不确定的,不能通过固定顺序来筛选有效分量,为此需要模态评价指标来确定有效分量和去除噪声分量。为了去除噪声模态,本文选择使用SSIM来客观评估原始图像和模态之间的相似性。SSIM的值越大则两幅图像越相似。SSIM定义为:

k∈[1,K]

(10)

从图1中可以看出进行2D-VMD滤波之后,再进行NLM滤波,阈值的设置需要考虑细节的保留和噪声的消除,在去掉噪声的情况下尽可能多地保留图像的细节。经多次实验得知,噪声分量可以被较好分离在某一个模态,且含有的有效信息很少,与含噪图像的相似性很低。其余分量因为包含了原图像的轮廓、边缘等信息其相似性与含噪图像的相似性较大。经SSIM数据对比得知,噪声分量的SSIM值小于最大SSIM值的1/10,为此得到了阈值计算公式:

(11)

结合式(10)、(11),SSIM(f,sk)

在重构图像g(x,y)中建立一个以待滤波像素点i为中心的邻域矩阵g(i),寻找出以相似像素点j为中心的邻域矩阵g(j),将两者高斯加权的欧式距离作为它们之间的相似度距离l(i,j),如式(12)所示:

(12)

(13)

式(12)中,λ>0是高斯核标准差,式(13)中r和d分别表示邻域矩阵的半径和边长。利用式(14)和(15)计算像素点i和像素点j的相似度,即权重ω(i,j)。

X(i) = ∑je-l(i,j)/h2

(14)

(15)

式(14)中,X(i)为归一化系数。h为控制高斯函数衰减速度的平滑系数,h越小图像的边缘信息保持较好,但去噪效果不明显。h越大去噪效果越好,但会使图像模糊。h估计值的选取会直接影响图像去噪的结果[17]。

根据式(12)~(15),通过加权求和公式即可算出该像素点的估计值:

NL[g](i)=∑ω(i,j)g(j)

(16)

其中:权重ω(i,j)应满足0<ω(i,j)≤1及∑ω(i,j)=1两个条件。

利用估计出的像素值代替重构图像中的原始像素值即可得到最终的去噪图像g′(x,y)。

算法的实现方法如算法1所示的伪代码,其中VMD_2D(·)表示2D-VMD分解函数,NLM(·)为NLM去噪函数。

算法1:2D-VMD和NLM级联去噪

输入:含噪图像f,搜索窗口r,邻域窗口t

k←2

whilek<20 do

s,ω←VMD_2D(f,k,α←5000)//进行2D-VMD分解

D←Diff(ω)//计算中心频率序列的差分

fori=1→kdo

ifD(i++)<0 then//判断非单调递增是否出现

break

end if

end for

ifi>kthen

break

end if

k←k+1

end while

K←k-1//得到最优的K值

s←VMD_2D(f,K,α←5000)//使用自适应参数进行2D-VMD分解

ssim←SSIM(f,s)//计算每个分量和原图的结构相似性

T=max(ssim)/10//计算模态选择的阈值

fori=1→Kdo //去除噪声分量,并重构信号,进行一级去噪

ifssim(i++)>=Tthen

g←g+s(i-1)

end for

end function

4 实验结果分析

4.1 评估指标

图像去噪的评价指标有均方误差值(MSE)和峰值信噪比(PSNR)。客观参数指标能够客观、科学地分析所提算法性能的可靠性和准确性。PSNR的值越高,所含噪声越少。MSE的值越小,去噪后的图像和原图像的差别越小。两者的计算公式如下:

(15)

(16)

式中,f(i,j)和g(i,j)分别表示原始图像和去噪后图像的像素点,n为每个像素的比特数,对于灰度图像,n=8。

4.2 实验芯片图像的实验结果与分析

本文算法将2D-VMD与NLM滤波进行有机结合,利用2D-VMD将图像分解为具有不同中心频率的K个模态分量,自适应地将图像中的高频噪声进行抑制。充分利用NLM滤波在图像均质区域可以取得良好抑噪效果的特点,对一级滤波2D-VMD处理后的图像进行二级滤波,达到图像去噪的目的。

为了验证本文算法的可行性,进行了仿真实验。实验选取大小为410×320的实验芯片图像,添加了方差为0.02~0.06的高斯白噪声作为待去噪图像。实验选取均方误差值和峰值信噪比两个客观参数作为图像质量的评价指标,并与中值滤波、维纳滤波、高斯滤波等6种传统滤波方法作比较。实验环境为:Intel Core i7,16 GB内存和Windows 10操作系统,仿真软件为Matlab2016b。

为了成功分离出含噪图像中的噪声分量,便于对重构后的有效分量进行后续处理,如图2所示,选取标准芯片图像在噪声方差为0.05时的含噪图像作为待滤波对象。针对2D-VMD中K值的选择,本文采取中心频率观察法。如图3所示为不同的分解层数下,各个模态对应的中心频率值。从图中可以看出,当K=4时,中心频率呈单调递增的状态,而K>4中心频率出现了下降,即出现了过分解的情况。因此,临界点K=4是最优的参数。2D-VMD中设置惩罚参数α=5 000,模态数K=4,能取得最好的分解效果。

图2 原图和含噪声图像

图3 分解层数K的优化

为了能准确判断出分解模态中的有效分量和噪声分量,使用式(13)计算每个IMF的SSIM值,用以衡量和原图像的相似性。为了验证SSIM在评估图像相似性上的可靠性,使用噪声方差为0.05的随机高斯白噪声进行了5次实验,结果如表1所示。可以看到5次实验所得到的IMF与原图像的相似性是一致的,即IMF1和原图的相关性最大,剩余分量与原图的相关性很小。根据式(14),得到的筛选阈值为T=0.04,根据阈值得到有效分量为IMF1,较好地保留了原图像的信息。剩余的IMF2~IMF4即为原图像的高频成分,包括噪声等信息。

表1 K=4时各模态分量与原图的SSIM值

对有效分量进行叠加,并使用NLM滤波对重构后的图像进行细化滤波处理,得到了本文算法的滤波结果,其中,设置邻域窗口及搜索窗口的半径分别为3和5,高斯函数衰减速度的平滑系数h=0.02。而本文中所得到的有效分量仅有IMF1,因此将IMF1作为一级滤波的结果。图4为方差取0.05的高斯噪声下多种算法的视觉去噪效果对比。可以看到维纳滤波和均值滤波弱化了较多的字符细节,而中值滤波、高斯滤波和k近邻滤波细节保留较好,但是图像背景区域仍有一定噪声。相比传统的滤波算法,本文所提出的算法不但有最好的视觉效果,还更好地保留了芯片图像字符的特征,有效去除了字符上的噪点,较好保留了字符的轮廓信息。

图4 标准芯片图像去噪结果

表2为7种不同算法在高斯噪声均方差为0.02~0.06的PSNR值对比结果。可以看出,本文方法的PSNR值最高,也就是去噪后的图像含噪最少。同时,随着噪声方差的增大,所有方法的PSNR值都有所下降,但传统滤波算法的PSNR值受到的影响较大,其中6种传统滤波方法PSNR值的最大差值分别为3.668 4、3.090 4、2.800 6、4.329 3、4.292 2、4.185 8。中值滤波、二维统计滤波及k近邻滤波的PSNR值降低得较严重。而本文算法的最大差值为2.437。这说明所提出的算法具有良好的鲁棒性和稳定性,能更好地处理不同程度噪声的影响。表3为7种不同算法在高斯噪声均方差为0.02~0.06的MSE值对比结果。从表中可以看出,本文算法同样具有最好的性能指标。

同时,随着噪声方差的增大,所有方法的MSE值都有所增大,但传统滤波算法的MSE值受到的影响较大,其中六种传统滤波方法MSE值的最大差值分别为0.003 5、0.002 3、0.002 5、0.006 7、0.102 9、0.015 3。中值滤波、二维统计滤波及k近邻滤波的MSE值增大得较严重,说明这三种方法的误差较大。而本文算法的最大差值为0.002 0。相对于中值滤波、二维统计滤波和k近邻滤波有较大的优势。高斯滤波、维纳滤波及均值滤波的MSE值相对不高,但结合图4中这三种滤波方法的去噪结果,本文算法的视觉效果更优。这两个客观指标参数直观地呈现了本文算法的特点,前者能够较好地去除含噪图像中的高频噪声成分,将有效的信息分量保留下来,后者利用芯片图像自身的特点,能够取得较好的滤波结果。这说明经过本文算法处理后的图像能保留大部分原始图芯片像的字符信息,最接近原始图像。本文算法结合图4、表2及表3的结果,峰值信噪比最高,均方误差最小,从主观及客观的角度上取得了最优的效果。

表2 多种方法的PSNR值比较

表3 多种方法的MSE值比较

4.3 实际含噪图像的实验结果与分析

为进一步验证可行性,将本文算法应用于智能电表的硬件检测中,如图5所示,其中图像采集设备分辨率为1 920×1 080。对实际环境下采集到的3幅含噪图像进行去噪实验。图6所示为去噪结果,可以看出,与实验芯片图像的实验结果一致,本文算法同样取得了较好的去噪效果,噪声基本被滤除,也较好保留了字符的轮廓细节,减少了芯片上字符的噪点,芯片图像的模糊度较小,芯片图像中的背景与字符的对比度更加明显,这有助于提高字符识别的精度。说明本文所提出的算法适用于智能电表质量检测中芯片图像的去噪。

图5 实际图像采集设备

图6 实际含噪图像去噪结果

5 结束语

针对智能电表芯片图像在采集过程中受到噪声的影响,导致芯片字符模糊不清,字符识别精度低等问题,本文提出了一种2D-VMD和NLM滤波级联的芯片图像去噪算法。算法充分结合了2D-VMD的自适应性、能去除高频噪声的优点及NLM滤波利用图像相似块去除噪声的特点。一级滤波主要去除了芯片图像中的高频成分,二级滤波利用芯片图像中的相似信息滤除芯片字符上的噪点,进一步达到精确去噪的目的。由实验结果可知,本文方法无论在均方误差、峰值信噪比两个客观参数的数值结果方面,还是在去噪后图像的视觉效果方面,较传统的单一滤波方法都具有更有效的去噪性能。并且随着噪声的增加,本文方法的去噪效果越明显,进一步证明了本文算法的适应性和稳定性。但本文算法级联了两种滤波方法,导致计算量较大,因此如何进一步提高计算效率是今后的研究方向。

猜你喜欢

像素点高斯分量
基于局部相似性的特征匹配筛选算法
画里有话
一斤生漆的“分量”——“漆农”刘照元的平常生活
一物千斤
数学王子高斯
一种X射线图像白点噪声去除算法
论《哈姆雷特》中良心的分量
基于canvas的前端数据加密
图像采集过程中基于肤色理论的采集框自动定位
从自卑到自信 瑞恩·高斯林