APP下载

基于轻量深度残差网络的图像多类型噪声去除算法

2021-09-15赵二刚

计算机应用与软件 2021年9期
关键词:高斯残差卷积

秦 毅 赵二刚

1(重庆电子工程职业学院人工智能与大数据学院 重庆 401331)

2(南开大学电子信息与光学工程学院 天津 300071)

0 引 言

目前,大多数情况下的图像在采集或传输过程中存在引入噪声的情况,降低了图像的质量。由于受到不同传输路径或者传感器等因素的影响,含噪图像中的噪声类型也不同,甚至同一幅图像中存在多种噪声类型[1]。常见的图像噪声类型包括高斯白噪声、泊松噪声及泊松-高斯噪声等[2]。为了提高图像视觉效果和后续图像处理的准确率,图像去噪技术成为广大科研人员研究的热点问题。

对于含噪图像,先检测噪声的类型,然后利用不同的针对算法进行噪声消除。现有的噪声消除方法有很多,大致分为基于空间域、基于变换域和基于学习三类。基于空间域去噪算法[3]可以得到较高的峰值信噪比,但在边缘信息和纹理细节方面保留较少;基于变换域去噪算法[4]可以很好地保留图像的几何信息,但是其计算较为复杂,计算时间较长;基于学习的方法是将深度神经网络用于图像去噪,从而实现保留边缘纹理信息的同时提高去噪精度。Remez等[5]提出了一种新的完全卷积深度神经网络结构,通过引入网络类感知来提高高斯或泊松噪声的去噪能力。Zhang等[6]构建了一个20层前馈卷积神经网络,利用残差学习和批量归一化来加速训练过程,提高盲高斯去噪的性能。Tai等[7]设计了一种新的神经网络MemNet,使用特征映射连接和跳过连接模块来进行图像超分辨率、高斯去噪。Wang等[8]提出了一种多尺度扩张卷积神经网络,基于多尺度扩张卷积在保存有价值的上下文信息的基础上提高去噪精度。Tian等[9]提出了一种新的增强卷积神经去噪网络方法,通过使用残差学习和批量归一化技术来解决训练困难的问题,并加速网络的收敛。

目前,大多数现有网络仅解决单一类型的噪声而设计。针对这一问题,本文提出了一种基于轻量深度残差网络的图像多类型噪声去除算法,其中的去噪网络是由改进的残差模块组成,采用级联训练的方式保证了网络去噪的精确度。为了能够在去噪过程中提取更多的边缘细节,还设计了一个边缘感知损失函数。而且,在提出的网络中引入深度可分离模块,在保证高精度的同时,减少参数量,提高计算效率。

1 残差网络学习模型

深度卷积神经网络的提出有效地解决了图像处理中的一系列难题。从理论上讲,提高网络的性能依赖于增加网络的宽度和深度,引导网络学习更多层次的特征信息。但是,深度的增加会导致梯度弥散、梯度爆炸及退化问题,而深度残差网络可以在一定程度上解决上述问题。

残差神经网络ResNet[10]是在2015年被提出的,该网络由残差块构成,主要通过跳跃连接将模型中的某一层激活信息迅速反馈给更深层。图1给出了传统网络和残差网络的结构示意图。可以看出,残差网络是在传统网络的基础上引入跳跃连接,而且ResNet中存在恒等映射和残差映射两种映射关系。恒等映射是将浅层a(l)的信息x在保持输出不变的情况下通过跳跃一层或者n层传递到更深层a(l+n)的节点;残差映射是指目标输出值H(x)=F(x)+x与输入值x之间的差值,即中间层输出值F(x)。ResNet网络训练的目标是将残差结果逼近于0。残差网络的跳跃式结构,颠覆了传统神经网络只能够以第a(l)层输出作为第a(l+1)层输入的惯例,使某一层的输出可以跳跃n层作为后面某一层的输入。因此,由于残差块的存在使得神经网络的层数可以超越之前的约束,获得足够深的网络层,为高级语义特征提取和分类提供了可行性,最终提高了网络的去噪能力。

(a) 传统网络 (b) 残差块网络

2 去噪残差网络

2.1 去噪网络模型

本文提出的去噪残差网络是在ResNet的基础上,对残差模块进行适当的修正,如图2所示。本文提出的简化残差模块是将批量归一化层和ReLU层进行移除,该修正的目的是保证基于特征映射的ResNet网络性能的同时,降低网络的复杂度,使残差模块更轻量化。

(a) 标准残差模块 (b) 简化残差模块

通过图2(b)中的简化残差模块来构建去噪残差网络(Simplified ResNet,S-ResNet)。考虑到随着网络的深入,训练和超参数调整变得更加困难,本文采用级联训练,将整个训练分为几个阶段并逐个进行。去噪残差网络的训练从简单的3层CNN模型开始,第一层由64个9×9滤波器组成,第二层由32个5×5滤波器组成,第三层只有一个5×5过滤器。残差模块中的每个卷积层由32个3×3滤波器组成。所有的卷积层都采用同一个步幅,权重系数由标准差为σ=0.001的高斯分布中随机获得。在训练3层CNN之后,开始逐步级联残差模块,如图3所示。通过设定阈值,只有当前阶段的训练结束后,才可进入下一阶段,从而保证网络可以级联到更深的网络。在每个阶段,插入一个新的残差模块,最后一层不再进行插入。因此,去噪残差网络的训练从3层开始,并进行到n层。预先存在层的权重系数从前一个阶段继承,新插入的残差模块的权重由高斯分布随机初始化。在去噪残差网络中的每个阶段只有几个权重系数是随机初始化,因此收敛将相对容易。所有层使用固定学习率η=0.000 1。

图3 去噪残差网络的级联训练

由于新的卷积层会减小特征图的尺寸,因此在每个新的3×3层中填充2个值为0的像素,从而使得级联训练的所有阶段都与输出具有相同的大小,共享训练样本。当级联5个残差模块时,生成的去噪残差网络将具有13个卷积层。实验表明,该网络可以适应高斯白噪声、泊松噪声及泊松-高斯噪声等类型的噪声,而且具有优越的去噪精度。

2.2 深度可分离的去噪残差网络

为了进一步减少去噪残差网络的规模和计算成本,本文提出了深度可分离的残差网络模式。在分类网络中,标准卷积层被分解为深度卷积和1×1逐点卷积,从而明显提升网络的计算效率。如图4所示,具有M个输入信道和N个K×K滤波器的标准卷积层可以转换为一个具有M个K×K滤波器的深度卷积层和一个具有N个1×1滤波器和M个输入信道的逐点卷积层。假设输入图像的特征图尺寸为W×H,则计算量由M×K×K×N×W×H减少为M×W×H×(K×K+N)。受这个想法的启发,提出了深度可分离的残差模块,如图5所示。在深度可分离的残差模块中,模块中的标准卷积层被深度可分离卷积层和逐点卷积层所取代,然后对深度可分离的残差模块中的所有卷积层添加ReLU激活。

图4 标准卷积(左)由深度卷积(中)和逐点卷积(右)代替

(a) 简化残差模块 (b) 深度可分离残差模块

为了训练深度可分离的去噪残差网络(Depthwise Separable Simplified ResNet,DSS-ResNet)[11],直观的方法是从头开始应用级联训练。由于已经对去噪残差网络进行了训练,所以采用另一种节省训练时间的方法,即增量进化。该方法是从现有的已经训练过的去噪残差网络中采用深度可分离残差模块替换简化残差模块的方式获取深度可分离的去噪残差网络。为了保证网络可以很好的收敛,在渐进进化过程中,残差模块被逐步替换。在每个阶段,只有一个残差模块被深度可分离残差模块替换,然后进行微调,如图6所示。与级联训练类似,新插入的深度可分离残差模块的权重系数是随机初始化的,其他层的权重则是继续选择继承的方式。替换操作从尾部开始,以确保结果对整个网络的影响较小。在实施过程中,首先训练出一个13层的去噪残差网络,然后将其逐步发展为深度可分离的去噪残差网络。学习率与级联训练相同,每个进化阶段的微调将持续10个时期。

图6 深度可分离的去噪残差网络的增量进化过程

在增量演化之后,深度可分离的去噪残差网络中仍然存在三个标准卷积层,即第一、第二和最后一个。与去噪残差网络相比,深度可分离的去噪残差网络的总体复杂性大约能够降低2.5倍,去噪精度却没有明显的损失。

2.3 边缘感知损失函数

现有的去噪网络大多是为了减小训练集上的均方误差MSE。本文提出了一种边缘感知损失函数。在该函数中,边缘中的像素比非边缘像素具有更高的权重:

(1)

应用这种边缘感知损失函数有两个优点,(1) 在损失函数中添加边缘约束条件可以在噪声图像恢复过程中有效提取到边缘细节;(2) 边缘等高频信息在人眼视觉中非常敏感,提高边缘像素的去噪精度有助于提高感知质量。本文采用Sobel滤波器的梯度幅度方法来构造M。

3 实 验

本文所有实验在一台配置为Intel(R) Core(TM)i5-3320 CPU @2.60 GHz和4 GB RAM的机器上进行,并在MATLAB 2014a环境下实现。选取PASCAL VOC 2010[5]数据集进行实验,并且将训练图像和测试图像分开,将1 000幅测试图像用于测试提出的噪网络的性能,其余图像用于训练。训练过程中,裁剪33×33的噪声块和相应的17×17无噪声像素块用于网络的训练。

为验证提出的网络可以适用于多种噪声类型的去除性能,本文采用具有不同噪声水平的随机高斯、泊松噪声和泊松-高斯噪声图像进行测试。对于高斯噪声,选择不同的噪声方差σ,σ∈{10,25,50}。在使用泊松噪声破坏图像之前,将输入图像的像素值按设定的峰值δ缩放,δ∈{1,4,8}。对于泊松-高斯噪声,则选择方差σ∈{0.5,3,6},峰值δ=10×σ。为了评价算法的去噪性能,采用图像处理中常用的峰值信噪比(PSNR)和结构相似性指数(SSIM)两种指标进行估计。

3.1 消融研究

表1-表2给出了不同的残差网络模型在去噪方面的性能对比。可以看出,相对于标准的残差网络,提出的去噪残差网络在PSNR、SSIM方面的性能均有所提升。同时,观察到深度可分离的去噪残差网络比去噪残差网络在图像去噪方面的性能有所下降,但是在计算成本和网络规模方面有着明显缩小,而使用边缘感知损失函数的DSS-ResNet网络虽然在PSNR指标上不如S-ResNet网络,但是在SSIM方面却得到了最优值。

表1 不同的残差网络模型在PSNR方面的对比 单位:dB

表2 不同的残差网络模型在SSIM方面的对比

3.2 图像去噪实验

为了进一步验证提出算法的优越性,本文将在PASCAL VOC 2010数据集上的测试结果与其他去噪算法进行了对比。表3-表5给出了提出的S-ResNet与现有去噪算法的测试结果。为了公平比较,使用相同的数据集重新训练其他网络。可以看出,本文网络在高斯白噪声、泊松噪声及泊松-高斯噪声的去噪性能明显都要优于去噪算法,而且网络规模也相对较小。

表3 高斯噪声下不同去噪算法的PSNR和SSIM对比

表4 泊松噪声下不同去噪算法的PSNR和SSIM对比

表5 泊松-高斯噪声下不同去噪算法的PSNR和SSIM对比

图7给出了不同去噪算法在处理同一幅像素为512×512图像时所需的计算时间,可以发现,本文算法去噪时间仅需17.92或8.33 ms,而其他算法则需要55.47~353.19 ms。

图7 不同去噪算法的计算时间

图8-图10展示了提出的算法在不同类型噪声下的性能表现。DenoiseNet、DN-CNN、DuRN、MC2RNet、DLNet等网络和本文的去噪网络模型均可以生成保留自然度的增强图像,但是本文方法在整体性能上要优于其他算法,而且在噪声图像恢复过程中提取到更多的边缘细节,使得恢复的图像在人眼视觉感知中具有更高的质量。

(a) 噪声图像 (b) 文献[5] (c) 文献[6] (d) 文献[12] (e) 本文算法

(a) 噪声图像 (b) 文献[5] (c) 文献[13] (d) 本文算法

(a) 噪声图像 (b) 文献[14] (c) 本文算法

4 结 语

本文提出了一种基于轻量深度残差网络的图像多类型噪声去除算法。该算法采用级联的方式训练高效的深度残差网络,利用边缘感知损失函数提高图像的感知质量。为了降低计算成本和减少网络参数量,提出了可分离的深度残差网络模块。测试结果表明,与现有的去噪网络相比,在所有类型的噪声(包括高斯噪声、泊松噪声和泊松-高斯噪声)下,本文网络具有更好的精度和效率。

猜你喜欢

高斯残差卷积
基于全卷积神经网络的猪背膘厚快速准确测定
基于残差-注意力和LSTM的心律失常心拍分类方法研究
融合上下文的残差门卷积实体抽取
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
基于残差学习的自适应无人机目标跟踪算法
基于深度卷积的残差三生网络研究与应用
数学王子高斯
天才数学家——高斯