明 勇,罗学刚,王华军,杨 强, 何 东
(1.成都理工大学 地球物理学院,四川 成都 610059;2. 攀枝花学院 数学与计算机学院, 四川 攀枝花 617000;3. 成都广播电视大学,四川 成都 610051)
数字图像在传输和拍摄等过程中遭受不同类型的失真干扰,导致图像质量下降,难以得到真实图像数据,严重影响图像的使用.为了还原图像真实表达,在过去的数十年里,学者们提出了大量的图像去除噪声的方法.
近年来,非局部均值(non-local means, NLM)去噪算法[1]在不损失图像细节的情况下表现出良好的去噪性能,受到广大学者的关注.NLM去噪算法利用局部图像块(patch)冗余结构信息,根据图像块之间的相似性度量准则,然后采用归一化结构相似性权重获得去噪估计值.由于图像块比单个像素更好地表达图像结构信息,其性能优于其他经典去噪算法.然而,NLM算法在效率与参数设定方面存在一定的问题,严重阻碍了算法在工业上的应用.
针对这些问题,人们提出了不少改进NLM的方法.Deledalle等人采用了一种基于最大似然估计(probabilistic patch based, PPB)通过更新去噪估计权值,达到了较好的降噪效果[2].胡金蓉等人提出在离散余弦变换的低频系数子空间内度量像素间的相似性,降低算法计算复杂度[3].Tasdizen等人提出的主邻域字典NLM降噪方法,通过主成分分析PCA将图像块投影到低维子空间并在低维子空间中度量像素点之间的相似性,改进了降噪性能并降低了计算复杂度[4].NLM算法参数优化问题,众多学者提出对NLM关键参数(平滑核参数、相似邻域的尺寸和搜索区域的大小)进行优化,提高去噪效果[5-7].
应用PCA降维的去噪方法可以有效地将观测图像分解为图像信息分量和噪声分量,减小了图像噪声干扰,更好地利用图像块间的结构信息,性能有显著提高,并且该方法具有降低计算复杂度的优势.因此,PCA-NLM是一种具有较强改进优势的方法之一.但该方法在PCA降维提取图像结构信息分量时,采用统一固定参数保留图像主特征分量,未能较好地利用图像区域特征,特别是对于纹理区域,在去噪时容易产生过平滑而丢失图像细节纹理信息.
根据NLM降噪模型,设定失真图像为g,由围绕观察像素i的搜索窗口内全部像素的加权平均得到估计值,定义为:
其中,
N(pj)代表以j为中心大小为M×M的图像块像素灰度值,h控制指数函数的衰减程度.
PCA-NLM去噪方法[8]实质是将原始含噪声信息的观测数据空间映射到低维主分量空间,然后利用映射后的主分量进行度量邻域块的相似性,克服了非局部均值滤波中噪声干扰引起的相似性度量不够准确的问题,增强了抗噪能力.
在式(2)中的每个像素对应的图像块中都具有噪声信息,无法得到真实的图像结构信息,其计算的权重不够准确.PCA通过构建主成分分析的降维矩阵将噪声去除,即协方差矩阵的前d个主成分的投影向量,用行向量表示图像块像素为Np=[Ik1,Ik2,…,Ikn],得到协方差矩阵Xobs=Np·(Np)T.根据矩阵的特征值分解算法,Xobs也可以表示为:
Xobs=UΛUT,
(3)
式中,Λ为特征值矩阵(矩阵尺寸与X一致) ,形式由式(4)构成.
在该矩阵中,对角线元素λn为X的自相关矩阵Xobs的特征值,特征值大小决定了该特征向量是否为主成分,可简化表示为Λv=[λ1,λ2,…,λn],其对应的向量U=[u1,u2,…,un]为特征向量.所以,通过特征值从大到小进行排序,提取对应的前m(m Up=[u1,u2,…,um]. (5) 由于噪声从测量空间到特征空间映射时,主要集中在对应特征值较小的特征向量里,剔除特征值小的特征向量,可以有效地去除噪声.因此,式(5)中的Up此时可以认为降低了U中的噪声信息. 将特征值所对应的特征向量构成变换矩阵Up投射到图像块Np后得到的特征空间的新向量. NPCA(pi)=Up•Np(pi). (6) 利用降维新向量对NLM权重计算进行修改,得到PCA-NLM的权值公式为: 式中, 原始NLM是一个含有大量冗余信息的高维向量,采用PCA对其有效降维可以提高整体算法效率,同时还可以去除图像本身存在的噪声干扰,是一种优良的改进方法.然而,PCA主要是利用特征值将图像子窗口投影到特征空间,对应纹理和细节丰富的区域,特征向量对应的特征值区分并不明显,直接提取前m个向量构成特征矩阵.在纹理和细节丰富区域,固定的参数得到降维矩阵在去除噪声同时也把大量的纹理细节结构信息丢失,去噪效果不够理想. 针对PCA-NLM存在的问题,本文利用结构张量提取纹理描述将图像分为平坦区、边缘区和纹理区三部分,根据纹理描述标量值自适应地选取m个向量构成的降维特征矩阵参与运算,提高去噪能力同时排除了相似度低图像块的计算.通过仿真实验,从视觉和去噪性能比较中都可以验证改进算法对于纹理区域具有较好的去噪效果. 图像的局部结构信息通常采用边缘与梯度来描述,但图像的梯度或边缘在噪声干扰下并不准确,为了更精细地刻画图像的边缘结构特征,采用局部结构张量来描述. 给定图像f,梯度为g=f(a,b),图像中某一像素点f(a,b)在K*K领域块(n)的局部梯度向量为G=(g1,g2,…,gn),则局部结构张量定义如下: 对J进行SVD分解可以得到, 定义一种新的边缘纹理特征描述函数F: PCA-NLM去噪采用图像最小误差提取投影基提取主成分,达到提高去噪效果的目的.然而,为了简便和快速,算法对图像所有区域都采用固定维数提取前m列特征向量构成特征矩阵.没有考虑到图像结构信息特殊性,本小节描述一种利用边缘纹理特征描述函数自适应选取PCA维数的方法. 针对式(5)的降维矩阵Up,定义一种选取PCA维数的方法: (10) 经典的NLM算法以整个图像区域为搜索范围,寻找结构相似度高的图像块.考虑到图像块的结构相似度具有空间集中性,为了减少计算复杂度,改进算法都将搜索范围限定在中心像素点的S区域内.然而,每个像素所在的图像块需要和搜索窗口的其他所有图像块通过高斯加权的欧氏距离计算相似性获取权重,计算量大,导致方法难以应用到实际项目中. 本节提出一种基于边缘纹理特征描述函数采用二分k均值聚类将图像块使用F(x)的值把整个图像划分为平坦区、边缘区和纹理区三类区域.在相似性计算时,剔除非同类的图像块,避免不必要的计算,提高算法的运行速度. 二分k均值算法是一种改进的k-均值聚类算法[9],适用于无法确定初始质心的聚类算法.算法流程为:先用k均值算法将需要分类的数据分为两簇,然后再从其中某簇中继续使用k均值算法进行分裂操作,直到簇数到达设定值结束.F(x)值的聚类划分利用二分k均值首先将纹理边缘与平坦区域分开,阈值为T1,然后再次将纹理与边缘像素点分开, 阈值为T2. 原算法的方形搜索窗si修改为: 根据边缘纹理特征描述值F(i)得出像素i的簇,利用对应的阈值过滤掉其他两种类型的搜索区域,减少计算,同时也不会影响去噪效果. 为了验证改进算法性能,选用了3个典型图像Barbaba、 Pepper和Lena,图像加入标准差为σ∈{10,20,40}的零均值高斯白噪声.在实验中,本文改进算法分别与cNLM[1],PCA-NLM[8]从速度和性能两方面做定性比较与分析.其中,cNLM代表优化参数的经典NLM算法,PCA-NLM代表改进去噪性能方法.为了公平比较,三种算法的搜索窗口和图像块的大小参考文献[5]分别设置为21×21和9×9. 采用PSNR(Peak Signal-to-Noise Ratio)和SSIM (Structural Similarity Index)两个指标对去噪结果进行定量比较.SSIM是一种新的图像质量评价指标[10],考虑到图像结构信息,计算方法见式(13),取值范围为[0,1],其值越大越接近,当图像完全一致时,SSIM为1. 表1记录了3种算法不同σ取值下的PSNR、SSIM比较结果.改进算法从PSNR、SSIM两个指标数值上看,性能都优于cNLM算法.表1的结果不难发现,改进算法和PCA-NLM去噪性能比cNLM有一定的提高.纹理细节丰富的Barbaba图像PSNR和SSIM值较cNLM和PCA-NLM提高更明显. 图1(a)为图像Barbara的头巾部分.图1(b-d)为当σ=20,各个算法去噪视觉效果图.由于头巾的纹理细节较丰富, cNLM和改进算法比PCA-NLM保留图像的结构与细节更强.改进算法保留了PCA-NLM的优点同时在细节丰富区域更好地保留纹理细节信息,其边缘区的图像结构信息保留更完整. 表1改进算法与cNLM和PCA-NLM在PSNR和SSIM上的性能比较 Tab. 1Theperformancecomparisonoftheproposedmethod,cNLMandPCA-NLMonthePSNRandSSIM (a)原图 (b) 改进算法 (c) PCA-NLM (d) cNLM图1图像Barbara的头巾部分的去噪细节对比σ=20Fig. 1 The detail comparison of denoising for the scarf part of Barbara image on σ=20 表2记录了3种算法对Barbaba、Pepper和Lena 3图像在visual C++ 2010,Dell Inspiron,Core i5,4GB内存的测试环境中平均花费时间.从表2中可以看出,cNLM计算时间花费较大,PCA-NLM降维以后计算量下降明显,但由于需要降维计算其运行时间也较高,改进算法不仅降维,同时还根据边缘纹理描述函数剔除大量不必要计算的图像块,节约了时间.随着图像大小的增加,时间优势越明显. 表2 各种算法不同图像大小的平均耗时比较(单位:秒) 本文针对PCA-NLM去噪方法容易丢失图像纹理细节的问题,提出一种基于纹理特征描述的改进PCA非局部均值去噪方法.通过一种基于局部结构张量的边缘纹理描述表征了图像块的结构特征,利用该描述完成了自适应地获取PCA降维参数,并将图像划分为平坦区、边缘区和纹理区三种类型,有效地剔除相似性低的像素点提高运行速度.在实验中,本文改进算法分别与cNLM、PCA-NLM去噪算法比较,从PSNR、SSIM两个指标和去噪视觉比较上看,该方法更好地保留了图像细节信息同时有较好的加速,整体去噪效果也有一定的提升.2 改进PCA-NLM去噪方法
2.1 局部结构张量与纹理描述
2.2 自适应PCA改进去噪
2.3 加速策略
3 实验结果与分析
4 结论