论文引用格式:Ding Y H, Wu H, Kong F L, Xu D and Yuan G W. 2023. A dual of real image noise-related blind denoising technique. Journal of Image and Graphics, 28(07):2026-2036(引用格式:丁岳皓, 吴昊, 孔凤玲, 徐丹, 袁国武. 2023. 面向真实图像噪声的两阶段盲去噪. 中国图象图形学报, 28(07):2026-2036)[0 引 言图像去噪是底层视觉研究的重要领域,也是许多图像处理任务的预处理步骤。去噪算法的好坏直接关系到后续图像处理的效果,如图像分割、目标识别和边缘提取等(于虹和甄彤,2020)。图像去噪的实质是对数据本身的恢复和重建(管美静 等,2020),经典的加性噪声模型一般可以表示为I'=I+n,图像去噪任务就是将原始图像I'中的噪声n去除,得到不含噪的图像I。在真实场景中,通过数字设备采集的图像都含有噪声,这些噪声通常来源广泛。在采集图像时,由于采集对象的纹理过于复杂,采集到的图像会有较多噪声。此外,受拍摄场景的影响,如亮度不均匀(过明/过暗)、物体运动和拍摄抖动等也会使图像产生噪声。另外,图像在传输过程中受传输介质影响也会产生多种真实噪声。这些噪声还会经过图像采集设备的机内系统处理,如去马赛克、图像灰度校正和压缩等(谢舒闽 等,2020)。因此,受各种内部和外部因素的影响,在采集图像时容易产生特别复杂的真实噪声,且可能不是仅服从一种分布水平,这与去除特定分布噪声有很大不同。近年许多基于深度学习的图像去噪算法都仅用于去除加性高斯白噪声。这种噪声模型的表示简单,去除也相对容易。在训练这种图像去噪算法时,只需在清晰图像上加上特定分布水平的噪声,即可得到用于训练的清晰图像与噪声图像对。这种去噪算法仅在去除特定分布水平噪声上有较好表现(王瀚深,2021),而真实场景下的噪声可能与加性高斯白噪声有很大不同。真实图像的噪声分布水平往往是未知的,而且在去噪时使用过高或过低的噪声水平都会导致最终的去噪效果不佳,若使用的噪声水平低于真实水平,真实图像上的噪声就会去除不干净,若高于真实水平就会有丢失边缘信息和图像细节信息的风险。因此,传统的卷积神经网络去噪器通常不能很好地处理真实场景下的噪声图像(谢舒闽 等,2020)。而现有的一些去除真实图像噪声的方法在去噪效果上还有很大不足(刘金山,2021),且为了获得更好的去噪效果,这些网络的结构大多很复杂,需要花费大量的时间来训练网络,但实际的去噪效果却没有明显提高。同时,设计层次非常深的神经网络结构容易出现过拟合和非凸优化问题(徐少平 等,2019)。所以,本文提出一种去除图像噪声的神经网络去噪模型,使用两阶段的网络结构对真实场景中的图像进行去噪,并在常用的图像去噪数据集上有较好的评价指标数值与视觉表现。本文的贡献如下:1)设计了一个两阶段的面向真实场景图像的盲去噪网络模型TMNet(two-stage modular denoising net)。第1阶段用于噪声水平的估计,第2阶段对图像进行非盲去噪。2)设计了一个可以提取多尺度特征的模块结构。根据不同的真实场景,通过改变模块的个数可以保证去噪效果的同时减少网络参数。1 相关工作1.1 传统去噪算法传统的用于图像降噪的方法主要分为基于空间域和基于频率域两种。基于空间域的算法常见的有双边滤波(Tomasi和Manduchi,1998)、非局部均值去噪(Buades等,2005)和引导滤波(He等,2013)等。双边滤波算法同时考虑图像的距离因素和像素值差异,在去噪时可以很好地保存图像边缘细节,但效率不是太高,花费的时间也比较长。引导滤波(导向滤波)通过一幅引导图对图像进行去噪处理,引导图可以是图像本身或其他单独的图像。非局部均值在去噪时使用图像包含的全部信息,虽然可以有效去除图像中的高斯噪声,但计算复杂度很高、耗时长,在实际应用中不适用。基于频域的算法主要有傅里叶变换和小波变换(Chang等,2000)等。这类算法在有用信号和干扰信号的频谱没有重叠的前提下,才能将有用信号和干扰信号完全分开,但实际上很难分开。除此之外,还有一些其他常见的传统去噪算法。利用稀疏编码去噪的KSVD(k-singular value decomposition)(Aharon等,2006)和TWSC(trilateral weighted sparse coding)算法(Xu等,2018b),利用滤波去噪的BM3D(block-matching and 3D filtering)算法(Dabov等,2008)以及利用外部先验去噪的EPLL算法(Zoran和Weiss,2011)和利用低秩去噪的WNNM(weighted nuclear norm minimization)算法(Gu等,2014)等。尽管传统方法在图像去噪的某些方面,如去除特定噪声水平的加性高斯白噪声,已经取得不错的性能,但大多数都需要手动设置参数以及单个降噪任务的特定模型(刘利平 等,2021)。1.2 基于深度学习的去噪算法由于传统的去噪方法存在许多不足,同时深度学习已经在图像处理领域取得较好的效果,因而基于深度学习的图像去噪方法得到了迅猛发展。在去除特定噪声方面,Jain和Seung(2008)首先提出用卷积神经网络(convolutional neural network,CNN)处理自然图像的去噪问题,说明特定形式的CNN可以被视为图像去噪的马尔可夫模型推断的结果的一种近似,但是神经网络模型可以避免马尔可夫模型在概率学习和推断过程中的计算困难,从而降低计算的复杂度。Burger等人(2012)提出用多层感知机的方法实现神经网络去噪,并说明如果训练集足够,MLP(multi-layer perceptron)模型可以达到图像去噪的当前最优水平。MLP模型对噪声类型不敏感,对于不同类型的噪声,只要对带有该类噪声的图像进行处理,即可得到较好的结果。Chen和Pock(2017)提出一种可训练的非线性反应扩散模型TNRD(trainable nonlinear reaction diffusion),但在捕捉图像结构的全局特征方面有限。Zhang等人(2017)提出较深层的CNN网络DnCNN(denoising convolutional neural network)。为了解决网络层数加深导致的梯度弥散效应,DnCNN并不对图像进行学习,而是以输出与噪声的范数为损失函数来训练网络。Kim等人(2016)提出使用非常深的网络进行模型预测,使用残差学习的方法直接预测超分的残差,极大地加速了模型的训练过程,也使得最终输出中保留的细节较好。Zhang等人(2018)又提出了FFDNet(fast and flexible denoising convolutional neural network),将噪声强度与含噪图像一起输入网络,得到了较好的去噪效果,但真实图像噪声的分布情况是未知的。Tai等人(2017)提出一种长期记忆网络MemNet(memory network),采用密集链接的方法,最大限度地使信息在不同记忆单元之间流动,同时,网络中的记忆模块使用递归单元和门控单元,对靠前记忆单元传来的信息和本记忆单元内的信息进行权重分配,结合为记忆块最终输出。吴从中等人(2018)提出结合残差学习和感知损失的图像去噪方法,有效解决了图像去噪后边缘过光滑,易产生伪影的问题。这些去噪算法的去噪对象都为特定分布的加性高斯白噪声,使用这些方法去除真实噪声时效果并不理想。于是,人们研究的重点又转移到设计去除真实图像噪声上来。Guo等人(2019)提出一个去除真实噪声的去噪算法CBDNet(convolutional blind denoising network),使用两阶段结构,分步对真实图像进行去噪。RIDNet(real image denoising network)(Anwar和Barnes,2019)利用残差结构上的残差来缓解低频信息的流动,并利用特征注意来挖掘信道的相关性,在合成图像和真实图像的定量和定性上都达到了当时的最高水平。Zhao等人(2019)提出一种金字塔真实图像去噪网络PRIDNet(pyramid real image denoising network),使用通道注意力机制对图像不同通道上的特征进行提取,并自适应地调整通道重要性。Tian等人(2020)使用批量重归一化对图像进行去噪, 通过增加网络宽度来提高网络的学习能力。Cheng等人(2021)提出一种基于子空间注意力模块的图像降噪算法,取得了较好的去噪效果。此外,基于深度学习的真实图像去噪方法还有利用相机管道模型去噪的CycleISP算法(Zamir等,2020a)、并行卷积流多尺度模型MIRNet(Zamir等,2020b)以及使用强化学习进行去噪的Path-Restore(Yu等,2022)模型等。以上方法都使用了较多的网络层数,导致训练速度缓慢。另一些网络虽然使用较少的网络层数,但在去噪效果上不太理想。对此,设计了一个两阶段的真实图像去噪器,在噪声估计阶段使用通道注意力提高噪声水平估计性能,在非盲降噪阶段使用多尺度模块,可以通过模块的增减来控制网络层数,同时在去噪效果上也具有较好的表现。2 算法模型用于去除特定分布水平噪声的去噪算法如DnCNN,FFDNet,MemNet等,都是用一次端到端的算法直接去除图像噪声,但真实图像噪声分布水平是未知的,使用一次端到端的算法难以对真实图像有很好的去噪效果。所以需要首先对真实图像上的噪声分布水平进行估计,再将估计出来的噪声分布水平与真实图像一起输入算法的下一步骤,这样真实图像去噪问题就简化为去除特定分布水平的高斯噪声。另外,现有去噪算法在去除特定分布水平噪声上效果显著,对本文的去噪算法有先验作用。由此本文的去噪网络模型分为两个阶段:第1阶段对噪声图像的噪声水平估计;第2阶段对图像进行非盲去噪处理。算法模型如图1所示。10.11834/jig.211020.F001图1算法模型图Fig.1Algorithm model diagram2.1 噪声水平估计阶段这个阶段的任务是对真实图像上的噪声进行水平估计。真实噪声图像模型可表示为y=x+n(x),式中,y表示真实噪声图像,x表示干净图像,n(x)表示真实噪声,且n(x)~N(0,σ2(x))。由于网络中非盲降噪阶段的任务是去除真实噪声图像上的噪声n(x),但其分布水平参数σ未知,降噪模型无法准确地学习到噪声图像到干净图像的映射关系,所以将其噪声水平估计阶段的结果作为分布水平参数σ输入非盲降噪阶段。对此,本文设计了一个噪声水平估计子网。这一阶段使用4层的全卷积神经网络对输入图像的噪声水平进行估计,这一部分不使用池化层,也不进行BN(batch normalization)操作,而是仅使用卷积核大小为3 × 3的卷积层,并在每层后都进行相应的padding操作,使每一层得出来的特征大小都相同。由于注意力机制可以有效提取网络特征,提高网络性能,所以在最后一个卷积层前使用通道注意力机制(squeeze and excitation,SEblock)(Hu等,2019)对噪声水平估计得到的特征进行通道加权处理,最后将估计出的噪声水平和输入图像一起作为本阶段的输出。通道注意力结构如图2所示,其中“⊗”表示逐通道乘法。10.11834/jig.211020.F002图2SEblock结构Fig.2The structure of SEblock对于一个输入图像x,本文算法在噪声水平估计阶段的数学模型可表示为x1=conv(SE(conv4(x))) (1)式中,conv表示卷积加ReLU(rectified linear unit),SE(squeeze and excitation)表示通道注意力模块,x1表示噪声估计水平阶段的输出。2.2 非盲降噪阶段2.2.1 多尺度去噪模块在这一阶段构造了一个多尺度结构,其中一个分支是两个卷积核大小为3 × 3的卷积层,另一个分支也同样是两个卷积核大小为3 × 3的卷积层,但是与第1个分支不同的是,对它使用了膨胀卷积的策略。膨胀卷积通过对特征注入空洞来获得更大的感受野,两个卷积层的膨胀率都为2,并使用相应的填充策略,使图像特征的大小保持相同。最后将两个分支获得的特征结合起来,并结合残差连接一起作为下一网络层的输入。这样,得到的多尺度结构一方面使用膨胀卷积获得较为庞大的特征信息,另一方面又保留了局部的特征信息,再将两种信息结合,这样就可以获得更加全面的特征。设计的多尺度模块结构如图3所示,图中颜色较浅的层是使用膨胀卷积的部分,“⊕”表示对相同通道进行相加。10.11834/jig.211020.F003图3多尺度模块结构Fig.3The structure of multiscale module2.2.2 非盲降噪阶段这个阶段将第1阶段的输出作为输入,即其输入包括输入图像以及在输入图像上估计出来的噪声水平,因而在去噪模型的第2个阶段仅需去除输入图像上特定分布的噪声。由于残差网络在图像去噪上的不错表现,在这一阶段,残差结构扮演着重要的角色。先使用一个卷积核大小为3 × 3的卷积层,后面跟着3个多尺度结构,并在网络最后使用两个残差结构以及两个普通卷积层调整最后输出的维度。每个残差结构由两个卷积层构成,并在第1个卷积层后使用ReLU操作,在第2个卷积后的输出和残差块的输入进行相加后再次使用ReLU。这样,一个残差块就部署完成。与第1阶段一样,本文算法在第2个阶段未使用BN和池化,并且同样使用了相应的padding操作,使特征大小在整个网络中都不改变。在非盲降噪阶段使用模块化结构,可以根据真实场景的复杂情况,对网络深度进行调整。在拍摄条件较差的情况下,如光源不足、设备性能不高以及拍摄对象有大量的纹理细节,都会导致采集到的真实图像中的噪声增多,此时可以通过增加网络中的模块数来获得更好的去噪效果。本文算法在非盲降噪阶段数学模型为x2=conv2(Res2(MD3(conv(x1)))) (2)式中,x1表示非盲降噪阶段的输入,conv表示卷积加ReLU操作,MD表示本文设计的多尺度模块,Res表示残差模块,x2表示本阶段的输出。2.2.3 损失函数图像去噪领域常用的损失函数主要有L1损失函数和L2损失函数。L1损失函数是图像中每个像素真实值与预测值的绝对值之和,L2损失函数是图像中每个像素真实值与预测值之间插值的平方和。由于L2损失函数对误差取平方,会放大真实值与预测值的误差,而且对相对较大的误差放大的更加明显,惩罚力度更大,因而使用L2损失函数可能会导致图像边缘模糊和细节信息丢失等。因此本文算法使用L1损失函数对模型进行优化,具体为L(w)=1N∑i=1NTMNet(xi)-yi (3)式中,TMNet(⋅)表示本文算法,w表示网络所有要学习的权重参数,x表示原始图像,y表示图像对应的ground-truth。3 实验结果3.1 去噪效果比较为了验证本文算法的去噪效果,与常见的传统去噪算法KSVD、TWSC和BM3D以及基于深度学习的图像去噪算法DnCNN、CBDNet和DRNet(Li等,2017)进行比较。3.1.1 SIDD数据集本文使用SIDD(smartphone image denoising dataset)数据集(Abdelhamed等,2018)作为训练数据集。该数据集的图像为png文件,是使用5个不同相机,在4种相机参数下,分别拍摄200个场景,每个场景连续拍摄150幅图像并进行一定处理后制作的图像去噪数据集。实验时将200个场景中的160个场景作为训练集,剩下的40个场景作为测试集。对SIDD Benchmark上的40个图像对进行测试,去噪结果如图4所示。10.11834/jig.211020.F004图4SIDD数据集去噪结果Fig.4Denoising results on the SIDD dataset ((a) noisy images; (b) denoised images)本文方法在SIDD验证集上的峰值信噪比(peak signal-to-noise ratio,PSNR)为51.63 dB,结构相似性(structual similarity,SSIM)(Wang等,2004)为0.995 8。表1是本文方法获得的去噪结果与FoE(fields of experts)(Roth和Black,2005)、CBDNet和KSVD等方法在SIDD Benchmark上去噪结果的比较。可以看出,本文方法在峰值信噪比和结构相似性上都有不错的表现。10.11834/jig.211020.T001表1不同方法在SIDD数据集上的去噪结果对比Table 1Comparison of denoising results of different mothods on SIDD dataset方法sRGBRAWPSNR/dBSSIMPSNR/dBSSIMDnCNN23.660.58343.300.965MLP24.710.64143.170.965TNRD24.730.64342.770.945FoE25.580.79243.130.969BM3D25.650.68545.520.980WNNM25.780.80944.850.975KSVD26.880.84243.260.969EPLL27.110.87040.730.935CBDNet33.280.868--本文38.540.94650.990.99注:加粗字体表示各列最优结果,“-”表示无数据 。3.1.2 Nam数据集Nam数据集(Nam等,2016)由11个静态场景和相应的无噪声图像组成,这些图像是通过500 个噪声图像在同一场景中的平均值获得的,图像为png文件。表2是本文方法与CDnCNN-B、BM3D和CBDNet在Nam数据集上的去噪效果比较。图5是使用本文去噪方法在Nam数据集上的去噪结果。10.11834/jig.211020.T002表2不同方法在Nam数据集上的去噪结果对比Table 2Comparison of denoising results of different mothods on Nam dataset方法PSNR/dBSSIMCDnCNN-B37.490.927 2BM3D39.840.965 7CBDNet40.020.968 7本文40.450.989 8注:加粗字体表示各列最优结果。10.11834/jig.211020.F005图5本文算法在Nam数据集上的去噪结果Fig.5Denoising results of our algorithm on the Nam dataset ((a) noisy images; (b) denoised images)3.1.3 PolyU数据集PolyU(the Hong Kong Polytechnic University)数据集(Xu等,2018a)包含100个噪声图像和平均图像对,图像为JPG文件。表3是本文方法与CBDNet、DIDN(deep iterative down-up convolutional neural network)(Yu等,2019)和AINDNet(Kim等,2020)在PoyU数据集上的对比。图6是本文方法在PolyU数据集上的去噪结果。可以看出本文去噪方法在PolyU数据集上表现良好。10.11834/jig.211020.T003表3不同方法在PolyU数据集上的去噪结果对比Table 3Comparison of denoising results of different mothods on PolyU dataset方法PSNR/dBSSIMCBDNet36.930.945 7AINDNet37.220.946 0DIDN37.320.952 3本文37.340.980 1注:加粗字体表示各列最优结果。10.11834/jig.211020.F006图6本文算法在PolyU数据集上去噪结果Fig.6Denoising results of our algorithm on the PolyU dataset ((a) noisy images; (b) denoised images)3.1.4 DND数据集DND(darmstadt noise dataset)数据集(Plötz和Roth,2017)是使用第2种方法制作而成,也是目前图像去噪领域比较常用的数据集。表4是本文方法与CDnCNN-B、BM3D、NI(neat image)、NC(noise clinic)( Lebrun等,2015)、DRNet(Li等,2017)和Path-Restore等方法在DND数据集上的比较结果。可以看出,本文方法的图像去噪评价指标都有明显提高。虽然PRIDNet和NBNet算法的评价指标更好,但与本文算法的差异并不明显。本文算法模型较为简单,且由于多尺度模块的设计,本文模型的部署也更为灵活。图7显示了各方法在DND数据集上已去噪的图像,以及它们的PSNR数值(单位dB)。10.11834/jig.211020.T004表4不同方法在DND数据集上的去噪结果对比Table 4Comparison of denoising results of different mothods on DND dataset方法sRGBPSNR/dBSSIMCDnCNN-B32.430.790 0EPLL33.510.824 4TNRD33.650.830 6MLP34.230.833 1BM3D34.510.850 7FoE34.620.884 5WNNM34.670.864 6NI35.110.877 8NC35.430.884 1DRNet35.890.935 1KSVD36.490.897 8FFDNet+37.610.941 5TWSC37.960.941 6CBDNet38.060.942 1Path-Restore39.000.954 2本文39.230.949 4PRIDNet39.420.952 8NBNet39.890.955 0注:加粗字体表示各列最优结果。10.11834/jig.211020.F007图7不同方法在DND数据集上的去噪结果(dB)Fig.7Denoising results of different mothods on the DNDdataset (dB) ((a) EPLL (28.06); (b) BM3D (29.33);(c) WNNM (29.80); (d) KSVD (31.41); (e) FFDNet(34.47); (f) TWSC (34.50); (g) CBDNet (35.43);(h) Path-Restore (36.32); (i) ours (37.16))3.1.5 补充实验本文算法是一个两阶段的真实图像去噪算法,需要对真实图像进行噪声水平估计,为了验证噪声水平估计对真实图像去噪效果的影响,通过是否使用噪声水平估计,分别对图像进行去噪处理。具体做法是在BSD68(Berkeley segmentation data)数据集上添加不同分布水平的高斯噪声(σ分别为15,25,50),并对其进行降噪,实验结果如表5所示。实验表明,使用噪声水平估计的算法在去除噪声时效果更加明显,说明在去除真实图像噪声时对噪声进行水平估计是必要的。10.11834/jig.211020.T005表5噪声水平估计对去噪结果的影响Table 5Influence of noise level estimation on denoising results噪声水平估计PSNR/dBσ = 15σ = 25σ = 50无30.2129.0826.26有30.2629.1126.31注:加粗字体表示各列最优结果。为了证明加深网络即增加网络参数并不能明显提升所有图像的去噪效果,尤其对于纹理细节相对较少的图像,去噪效果的提升并不明显。在Nam数据集中挑选4幅纹理细节明显不同的图像,通过使用不同数量的多尺度模块设置网络深度,再对挑选出的图像进行去噪处理,去噪结果如图8所示。其中,结果1使用了2个多尺度模块,结果2使用了3个多尺度模块。10.11834/jig.211020.F008图8网络参数对去噪效果的影响Fig.8The influence of network parameters on denoising results ((a) original pictures; (b) result 1; (c) result 2)3.1.6 消融实验本文去噪网络模型大量使用了长、短跳跃连接,一方面因为残差结构在去除图像噪声上有良好表现;另一方面,使用跳跃连接可以将模型中的深层信息和浅层信息融合起来,减少由于模型层数的增加而导致的信息丢失。本文模型在输入图像与最后的输出之间使用了跳跃连接,这是比较长的跳跃连接,表示为长连接。在多尺度结构中的模块输入和输出部分也使用了跳跃连接,这是比较短的跳跃连接,表示为短连接。此外,在噪声水平估计阶段使用了通道注意力机制,也会影响实验的结果。为了证明跳跃连接和通道注意力机制的有效性,在SIDD验证集上进行消融实验,结果如表6所示。10.11834/jig.211020.T006表6消融实验Table 6Ablation experiments长跳跃短跳跃SEBlock水平估计PSNR/dB----51.30--√√51.36-√√√51.46√√--51.61√√-√51.64√√√√51.70注:加粗字体表示最优结果。“-”表示不使用,“√”表示使用。3.2 实验细节由于SIDD数据集原始图像分辨率过高,本文将图像随机切分为256 × 256像素的patch,再对数据进行4 000轮训练,在前1 500轮学习率为10-4,之后每隔1 000轮,学习率降低1/10。所有的实验均在NVIDIA GTX 2080ti GPU上使用pytorch框架完成。4 结 论本文设计了一个用于去除真实图像噪声的深度学习网络模型,网络中的卷积操作大多都是3×3卷积,网络训练速度较快。由于残差结构在图像去噪中的优良表现,本文网络也使用丰富的残差结构。此外,本文将膨胀卷积与普通卷积相结合,从不同感受野中得到更为丰富的特征信息。在4个真实图像去噪数据集上的实验结果表明,本文设计的去噪网络相较于其他更深更复杂的网络在去除真实图像噪声上效果明显。本文设计的两阶段盲去噪网络使用简单的网络结构可以实现真实图像的有效降噪,但与其他较深的去噪网络模型相比,在去噪效果上仍有差距,更深更复杂的网络相较于本文的网络可以获得更为丰富的图像信息。因此,如何在尽量减少图像信息丢失的同时,保证网络结构的简单和灵活性是今后的主要研究方向。

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读