基于矩阵低秩逼近的自然图像去噪
2021-01-18陈杰杨艳
陈杰,杨艳
(四川大学计算机学院,成都 610065)
0 引言
科技的日新月异发展使得消费级图像捕获设备变得廉价且得到大量使用。然而许多情况下,高质量图像的获取仍然比较困难,普通消费级设备甚至一些专业设备在一些情况下捕获的现实世界图像仍然保留着大量噪声,使得获取的图像质量不高,也影响了基于图像的后续应用。图像去噪是一个经典的信号复原问题,由于光电传感器误差,传输过程的电子热运动等原因。获取的图像中存在噪声是无法避免的,但可以通过一些方法从带噪图像中尽量恢复原始图像信号,提高图像信噪比。图像去噪的方法经过多年的发展。许多去噪方法针对添加人工模拟的全局加性高斯噪声的灰度图像进行去噪。这些方法旨在从已有的噪声图像y=x+n恢复出清洁图像成分x,其中n是噪声水平为σ的加性高斯噪声。经过去噪算法的处理,噪声图像中隐含的清洁图像信息更明显地显现出来,且图像的峰值信噪比等量化指标得到了提高,图像获得了更好的视觉效果。然而在真实世界图像中,噪声的分布未知且构成复杂,其可能产生于电子热运动、量化误差、光电传感误差等多个来源。针对全局加性高斯白噪声的去噪算法对噪声的建模不足以模拟真实噪声的分布。同时,真实世界图像无噪图像及噪声的获取比较困难,现有一般获取真实无噪图像真值是通过多次拍摄同一静态场景然后对每个像素取平均值得到,这种方法可以得到可以用作真值的近似无噪图像。
1 相关算法
现有的图像去噪算法从各方面进行了尝试,包括基于频域转换[1-2]、基于稀疏表示[12,17]、基于字典学习[6]、基于神经网络[5-11]等方法。基于频率域进行去噪的方法通过傅里叶变换或小波收缩等方法噪声图像转换到频率域进行处理,假设噪声均属于高频范围,通过消除频率域中的高频成分保留低频成分来消除噪声。这对于一些被高频噪声及周期噪声污染的平坦区域为主的图像非常有效,然而这种方法无法很好地分离高频信号和噪声,会模糊纹理细节,并且可能会产生振铃效应引入人为瑕疵。基于稀疏编码的方法利用噪声图像学得一个字典矩阵[6-7,11],然后利用矩阵字典得到图像的稀疏表示,重建图像后与原图进行对比得到残差,再分解残
差,并利用残差中的信息更新字典和稀疏表示,迭代这一过程,当残差的值小于某个设定阈值或者迭代足够多的次数后,残差即余下的噪声,重构的图像即为去噪后的清洁图像。文献[6]中的KSVD便是经典的基于稀疏编码的算法,但KSVD学习字典的时间过长,且字典不能泛化使用,其分块处理的思想也没有利用图像的非局部自相似性先验。文献[7,11]中从清洁图像中获取真实无噪图像的先验信息,将外部图像分解为子块建模并学习得到一个高斯混合模型,利用该高斯混合模型的各个协方差矩阵的SVD得到字典,利用该起点进行去噪,文献[7]中同时对无噪自然图像和带噪图像进行学习,使用无噪自然图像和带噪图像的混合字典对待去噪图像进行稀疏表示,而文献[11]中只使用无噪图像学得的GMM模型生成的字典。基于空间滤波器的方法主要是利用某种设计的滤波器或滤波方法及前后处理过程对图像进行滤波,经典的滤波方法有中值滤波(可以去除椒盐噪声)、均值滤波、双边滤波、引导滤波等。文献[15]中的BM3D利用非局部自相似性及维纳滤波进行去噪,得到了非常好的效果,其另一版本CBM3D[10]可用于彩色图像去噪。基于神经网络的方法[3-5,13-14]由于今年来计算能力的进步而得到了极大发展。文献[4]中的去噪自动编码器可以在输入受到一些噪声污染的情况下仍然保持不变的输出,也就是说,其拥有一些去噪效果。但文献[4]中采用的是多层感知机,在一些小尺寸简单图片(如MNIST数据集)中可以有良好的去噪效果。文献[3]采用了文献[4]中的思想,将文献[4]中的结构进行堆叠,并在损失函数中引入稀疏正则项使得隐藏单元变得稀疏以最小化复原损失。文献[18]中采用残差学习及卷积网络,可以对未知水平的加性高斯噪声进行去除,其模型对图片残差进行学习,网络模型输出噪声图像。文献[19]中的FFDnet采用卷积神经网络结构和指定噪声水平图的方法能够处理在空间上方差水平变化的噪声。基于低秩矩阵逼近的方法利用自然图像的低秩特性[16,23],将矩阵的秩作为一个正则项加入目标函数,然后通过优化方法直接求解潜在原始图像。文献[13]中结合矩阵的低秩特性和图像的非局部自相似性先验,对高斯噪声和脉冲噪声叠加的图像进行去噪,能够很好地恢复原始图像。自然图像的非局部自相似性先验在很多研究中得到了应用,图1中展示了自然图像中存在的非局部自相似特性。
图1 自然图像中存在的非局部自相似性
可以看到,自然图像中有大量自相似的模式存在,这表示了自然图像中存在的信息冗余特征,我们可以利用这些冗余特征进行噪声的估计与消除。图像的-非局部自相似特性在文献[7,9,10,15]等研究中得到了充分的应用,其有效性也得到证明。本文中利用非局部自相似性搜索以参考块为中心的窗口中与参考块相似的块,并将其向量化构成矩阵表示以X的 t处为参考块左上角时得到的相似块矩阵,表示从图像t处提取的第m个离参考块最近的向量化后的相似块向量,其中m=1时表示参考块本身。相似块矩阵的相似度量有多种方式(L-p范数距离、余弦距离等),本文中采用如下的方式度量图像图块之间的相似度。
其中ref和neighbor分别表示参考块和邻近块向量化后得到的向量。
一般的图像去噪算法中,通常向清洁图像中添加加性高斯白噪声,然后针对高斯白噪声进行噪声估计和去噪算法的设计。然而真实噪声图像中的噪声并不满足全局均匀的高斯噪声分布,在图像的不同局部,噪声的分布呈现明显的差异性(见图2,数据来自Nam数据集[8])。这种差异性使得针对全局加性高斯白噪声去噪的算法在真实噪声图像上的去噪效果减弱。在本文中,我们根据图像局部差异,利用图像非局部自相似特性构成的相似块矩阵,计算图像局部的方差差异,并利用该差异进行局部差异化的低秩求解。
2 算法实现
2.1 优化目标建模与求解
已知Y是噪声污染下的真实噪声图像,Y∈RT×1,T是图像的总像素数,Y=X+N,X是噪声图像中隐含的无噪图像信息,N是图像噪声。我们需要从已有的观察图像Y中得到隐含的无噪图像X,可以利用的先验为图像的非局部自相似和低秩先验。我们假设真实噪声图像的噪声是图像空间相关的局部噪声,因此采用局部自适应的低秩约束来约束总体目标,结合全局保真项,将优化目标建模如下。
图2 左侧展示了高斯噪声(右上)与真实噪声(右下),右侧统计了噪声图像中100个局部区域的方差进行对比
上式中,X是一个Rp2×m的矩阵,σr(X)表示X的第r个奇异值,r0=min(p2,m)。
使用 logdet(·)替换rank(·)函数,最终的优化目标函数可以写作:
其中d是约束参数,Nt是图像位置t处的自相似块矩阵的噪声水平估计项。
2.2 优化问题求解
在写出目标函数后,我们使用交替迭代优化的方法求解目标函数,依次更新X,N。首先初始化固定噪声参数N中全局噪声参数约束σ,σt在求解X子问题时根据相似块矩阵得出,X采用自适应均值滤波进行预处理以去除可能存在的极值噪声。
固定噪声参数后,X求解子问题可以写作:
引入辅助变量Lt=ÊtX求解该优化问题,重写X子问题为:
根据ADMM算法可以得到:
通过如下推导可以得到X的闭合解:
因此有:
将其代入式(11)中,得到X的闭合解:
根据文献[20],矩阵的低秩问题采用SVD方法求解,Lt可以采用下式迭代求解:
最后,拉格朗日乘子λt按照下式迭代更新:
Nt是噪声变量,Nt=aσ+bσt,其中σ是全局噪声约束,通过整体图像像素计算得出,σt是局部噪声,通过局部自相似块矩阵计算求解:
其中Y初始噪声图像,X(k)是第k次迭代过程中分离出地无噪图像。
2.3 算法流程
由上面的求解可知本文算法是对优化目标迭代求解,首先将噪声图片进行相似块匹配,为提高算法速度,不会将每个像素位置都作为参考块中心进行相似块搜索,而是以一定步长进行参考块选取。得到各个相似块矩阵后,对各个相似块矩阵进行低秩逼近,通过SVD分解消除部分噪声得到其主要成分。记录构成相似块矩阵的各个局部图块的位置,将去噪后的相似块矩阵分解成局部图块,将局部图块的值叠加到原来的图像上,局部图块重复的部分记录重复次数。最后将重叠处的叠加的值除以重叠次数,最终得到无噪图像。
(1)输入带噪图像Y,并构造一个与Y相同大小的零矩阵Z。
(2)初始X=amf(Y),amf(·)是自适应中值滤波函数,初始拉格朗日乘子λ=0。
(3)在X中滑动选取参考块,在参考块t周围搜索M个最相似的块,构成相似块矩阵ÊtX。
(4)对相似块矩阵进行迭代求解,得到一个与相似块矩阵大小相同的低秩矩阵。(式(11))
(5)将得到的去噪低秩矩阵分解成局部块然后叠加到Z的对应位置中。
(6)参考块是否选取完毕,是转(7),否转(3)。
(7)通过式(10)更新X,通过式(17)更新拉格朗日乘子。
3 实验
本文将提出的实验方法与神经网络方法CBDNet[11]以频率域方法DDID[1]算法进行比较。本文实验软件平台为Windows10、MATLAB 2018b。实验硬件平台配置为 Intel Core i7-8750H、主频 2.2GHz、六核 CPU、8G运行内存。
实验采取的真实噪声图像数据集为Nam数据集[8],此数据集采集了11个静态场景的室内图像,对每个场景固定相机位置拍摄500次后取平均值作为该场景的无噪图像真实值,其图像尺寸为7000×5000。我们从中随机截取512×512大小的图片40张作为实验数据。实验设置 b=0.0001,a=4,sigma=5,d=3。
表1 去噪算法对比
可以看到,由于真实噪声都比较微弱,因此去噪算法整体PSNR值都比较高。CBDNet和本文算法在保留细节纹理方面优于DDID算法。CBDNet在视觉效果方面与本文算法效果相近,但CBDNet在去噪时可能会产生一些微弱的人为瑕疵,并且对微弱噪声的去除不够彻底(如图3上)。本文算法在去除噪声的同时对局部自相似块的局部自适应低秩求解,使得在拥有良好噪声去除效果的同时保持了图片微弱的纹理特征。
4 结语
本文对低秩图像去噪方法进行了改进,结合自然图像的非局部自相似特性和局部噪声分布差异提出了一种新的去噪方法。实验结果显示本文算法能够有效地去除真实图像噪声,相对于噪声图像的PSNR值平均提高3~5dB。但本文方法的迭代收敛速度还有待进一步提高。本文采用自相似块矩阵的方差作为局部噪声的差异描述是一种有效但不一定最优的途径,还可以尝试利用局部图块的梯度等方法来描述噪声局部差异。
图3 去噪效果对比