基于小波变换的彩色图像FISTA去噪

2020-03-05 09:47程凡强朱永贵
关键词:彩色图像正则小波

程凡强,朱永贵

(中国传媒大学数据科学与智能媒体学院,北京 100024)

1 引言

线性逆问题在天体物理学、光学、信号/图像处理和统计学等学科建设中应用广泛,反问题的跨学科性质通过大量的文献得以证明并迅速发展。本文使用快速迭代收缩阈值算法(FISTA)结合小波变换得到一种新的算法,使用该算法对彩色图像进行去噪处理。对于这一类问题,在研究之前,需要从一个基本的线性逆问题入手,但此问题需要离散化以后才能进行,下面就对该问题进行离散化。这个离散的线性系统的形式为

Ax=b+w

(1.1)

当A∈Rm×n和b∈Rn已知时,w是未知噪声(扰动)向量,x是待估计的未知真信号/图像。例如,在图像模糊问题中,b∈Rn代表模糊图像,x∈Rn是未知真图像,假设其大小与b相同,即m=n。b和x都是通过列字典序的方式形成的。在这些应用中,矩阵A代表了模糊算子,由观测到的模糊噪声图像b估计真图像x的问题称为图像去模糊问题。

1.1 背景

解决问题(1.1)的经典方法是最小二乘法(LS)[1],用以下公式使数据误差达到最小化,即

当m=n(如图像处理应用中的特殊情况)以及A是非奇异矩阵时,LS只是辅助解A-1b。在图像去模糊中,A经常是病态的[2],在这种情况下,LS的解通常有一个巨大的范数,因此导致所得到的解毫无意义。为了克服这个困难,需要用正则化方法使原问题变成“良态”问题,从而使解稳定、唯一。正则化的基本思想是用一个“邻近的”条件良好的问题来代替原来的条件不好的问题,则该问题的解就近似于所需要的解。其中最开始流行的一种正则化是由Tikhonov提出的,后来被命名为Tikhonov正则化[3],又称为L2正则化方法,其实质就是加了二范数的平方,即

(1.2)

上述最小化问题中的第二项是控制解的范数的正则化项。正则化参数λ>0在测量的保真度和噪声灵敏度之间提供了一个权衡。L最常见选择是接近一阶或二阶导数算子的恒等式或矩阵;可以参见文献[4,5,6]。

后来,在研究图像或信号处理中,人们又发现了另一种正则化项,叫作L1正则化,它的形式是

(1.3)

1.2 贡献

凸优化问题(1.3)可通过内点法求解[11]。然而,在大多数应用中,问题几乎都是大规模的密集的矩阵数据,这基本排除了使用复杂的内点法。因为这些问题的存在,推动了人们对求解(1.3)的更简单的算法搜索。经过多年探索,人们找到了一种公认的效果较好的方法,那就是迭代收缩阈值算法,其中每次迭代都涉及矩阵向量乘法,并且涉及和之后是收缩软阈值步骤;请参见文献[12,13,14,15]。

2 基本事实

在给出这个优化算法之前,先给出一些基于梯度的基本事实。

2.1 梯度方法

考虑连续可微函数f∈Rn→R的无约束最小化问题,如下

(U) min{f(x):x∈Rn}

解决(U)的最简单方法之一是梯度法,其生成序列{xk}是由

x0∈Rn,xk=xk-1-tk▽f(xk-1)

(2.1)

其中tk>0是一个合适的步长。梯度迭代(参见文献[16,17])可以被看作线性化函数f在xk-1处的近似正则化[18],并且等价为

2.2 迭代收缩阈值算法(ISTA)

在求解拥有L1正则化项的问题时(这是这类问题的一种特殊情况),最常用的方法就是ISTA方法,它被看作是梯度法的扩展,因此,ISTA方法所采用的思想与梯度法基本一致。在每次迭代时都用到矩阵向量乘法,然后涉及和之后就是软阈值步骤。

下面给出ISTA的一般步骤是

xk+1=Γλt(xk-2tAT(Axk-b))

(2.2)

其中Γ是一个合适的步长,且Γα:Rn→Rn是由下式定义的运算符

Γα(x)i=(|xi|-α)+sgn(xi)Γ

(2.3)

在众多的优化文献中,ISTA的收敛性分析已经在不同的文献中得到了很好的研究,包括各种修改与改进;可以参见文献[7,9,19],它的重点是确定序列{xk}收敛到(1.3)解的条件。ISTA的优点在于它的简单性;但却忽视了本身收敛的缓慢性。

这就是该算法的核心部分,那么接下来给出完整的ISTA算法:

ISTA算法:输入:L:=L(f) - ▽f的Lipschitz常数第零步:给定初始值x0∈Rn.第k(k≥1)步:计算xk=pL(xk-1)(2.4)

其中pL(·)是更一般的ISTA方法。

在下一节中,将给出本文所做的具体贡献,在原有算法的基础上进行改进,对彩色图像进行处理,得到的效果很是不错。

3 彩色图像处理

在给出彩色图像处理的程序与效果图之前,我们还需要知道以下基本事实。

ISTA方法的出现,对于求解线性逆问题是一个极大的突破,很好的解决了“病态”问题,能够使这类问题都有唯一解。然而,美中不足的就是收敛速度确实太慢,所以后人又在此基础上进行了改进,发现并提出了很多种方法,但是应用较多的或者是最常用方法就是FISTA。

当正则化项为零时,模型(1.2)或(1.3)和ISTA就简化为梯度法。这是一种“最优”的一阶方法。值得注意的是,文献[20]中开发的方法在每次迭代时不需要多一个梯度评估(即与梯度方法相同),只是进行了一次巧妙的选择,找到了一个易于计算的附加点而已。

在本节中,将会呈现新方法,既然作为ISTA的改进版,它必须保持原有的计算简单性,而且还有比原来更快的收敛速度,显然这些都已经满足。

3.1 小波去燥模型

在各种各样的模型中,小波去燥模型是研究的重中之重,这种模型的离散化形式如下

(3.1)

其中B∈Rm×n是观测到的模糊噪声图像,W:Rm×n→Rm×n是小波变换,X是原始图像(“真”图像),λ是正则化参数。

处理L1范数正则化准则的基本原理是大多数图像在小波域中具有稀疏表示。在去噪领域中,小波理论受到了许多学者的重视,他们应用小波进行去噪并获得了非常好的效果。这样就不得不说一下小波变换所具备的特点:

(1)低熵性。小波系数的稀疏分布,使得图象变换后的熵降低,从而更好的刻画细节特征;

(2)多分辨率。由于采用了多分辨率的方法,所以可以非常好的刻画信号的非平稳特征,如边缘、尖点、断点等;

(3)去相关性。因为小波变换可以对信号进行去相关,且噪声在变换后有白化趋势,所以小波域比时域更有利于去噪;

(4)选基灵活性。由于小波变换可以灵活选择变换基,从而对不同应用场合,对不同的研究对象,可以选用不同的小波母函数,以获得最佳的效果。

由于其特点,在后来的去噪模式中,逐步取代了傅里叶变换的地位。小波去噪的方法主要包括三个基本的步骤:第一,对含噪声信号/图像进行小波变换;第二,对变换得到的小波系数进行某种处理,以去除其中包含的噪声;第三,对处理后的小波系数进行小波逆变换,得到去噪后的信号。

注:小波去噪方法的不同之处集中在第一步。

3.2 快速迭代收缩阈值算法(FISTA)

当求解问题(3.1)时,采用ISTA方法是个较为不错的方法,只是迭代较为缓慢,因此,在此基础上进行了改进,找到一个加速因子,把它应用到ISTA方法中,得到的这个新的方法在计算量上并没有增加多少,但是收敛速度成几何倍增加,效果也令人满意。

下面就给出FISTA算法:

FISTA算法:输入:L:=L(f) - ▽f的Lipschitz常数第零步:给定初始值y1=x0∈Rn,t1=1.第k(k≥1)步:计算xk=pL(yk)(3.2)tk+1=1+1+4t2k2(3.3)yk+1=xk+(tk-1tk+1)(xk-xk-1)(3.4)

上述算法与ISTA的主要区别在于迭代收缩算子pL(·)不仅只用前一个点xk-1,而是使用前两个点,即xk-2,xk-1,这样,就能得到这个算法中的点yk。显然这两个方法的主要计算工作量并没有发生变化,即在运算符pL(·)中。而(3.3)和(3.4)中tk+1,yk+1对所需的额外计算就显得微不足道了。

4 算法代码及实验结果

在本节中,将给出基于小波去噪的彩色图像FISTA的算法及对应实验结果。为了更好的表现所给代码的去噪效果,我们把原图一起进行比较,比较结果如下:

clc

close all

clear all

addpath(‘utils’);

X=

double(imread(‘images/woman1.jpg’));%double(imread(‘images/Lena.bmp’));%double(imread(‘images/cameraman.pgm’))/255;

X=X/255;

subplot(1,3,1)

imshow(X,[ ]),title(‘Original Image’);

sigma=0.1;

Bobs=X+sigma*randn(size(X));

B=Bobs;

subplot(1,3,2)

imshow(B,[ ]),title(‘Noised Imgae’)

iwav=@(x)Wavedb1Phi(x,1);% Inverse Wavelet Transform

wav=@(x)Wavedb1Phi(x,0);% Wavelet Transform

pars.MAXITER=20;

alpha_1=12;%1e-4;

X_out=

denoise_wavelet_FISTA(B,wav,iwav,1/alpha_1,pars);%denoise_wavelet_FISTA(B,wav,iwav,1e-4,pars);

u=X_out;

subplot(1,3,3)

imshow(u,[]),title(‘Denoised Results’);

Rel=norm(u(:)-X(:))*100/norm(X(:))

SNRValue=SNRZHU1(X,u)

SNRValue1=snr(u,X)

图1 Rel=15.0587

图2 SNRValue=16.4443

图3 SNRValue1=12.5203

从上面的图片1-3中不难看出,去噪效果还是很明显的,而且很好的保留了原图像的细节,图1为原始图像、图2加噪图像和图3去噪图像,上述结果分别为去噪图像与原始图像的差、去噪图像与原始图像的信噪比(两种方法),一般来说,信噪比指的是放大器的输出信号与同时输出的噪声的比。信噪比越大,说明混在信号里的噪声越小,声音回放的音质量越高,否则相反。

5 总结

在图像处理应用中,我们不能直接作用于图像,或者说通常意义下的图片,因此需要将其模型化处理,这样就与线性反问题联系到一起了。在解决这类问题的时候,用传统的方法(即最小二乘法)解决起来非常麻烦,而且经常求不出解,这就是我们所说的“病态”问题,为了得到最优解,我们需要将方程进行处理,然后得到我们需要的结果。目前较为流行的方法就是加正则项,使原来的“病态”问题变成“良态”问题,这样就能求解了,而且解也是唯一的。当然正则化项是多种多样的,如本文提到的L1、L2正则化项,还有未涉及到的TV正则化项,等,这些都是根据不同情况加上的正则化项。

本文解决的问题是在小波变换下对含有L1正则化项的反问题,通过FISTA算法处理彩色图像,从主观来说,基于小波去噪的彩色图像FISTA算法修复效果更好,具有更强的竞争力。这种方法的出现使得图像处理变得更加简单、高效、清晰。

猜你喜欢
彩色图像正则小波
半群的极大正则子半群
基于多小波变换和奇异值分解的声发射信号降噪方法
构造Daubechies小波的一些注记
π-正则半群的全π-正则子半群格
Virtually正则模
基于二维直方图的彩色图像全局阈值分割方法研究
基于MATLAB的小波降噪研究
基于FPGA的实时彩色图像边缘检测
任意半环上正则元的广义逆
基于DCT—DWT—SVD的彩色图像安全存储方案