【图像去噪】论文精读:MemNet: A Persistent Memory Network for Image Restoration


前言

论文题目:MemNet: A Persistent Memory Network for Image Restoration —— MemNet:用于图像恢复的持久记忆网络

论文地址:MemNet: A Persistent Memory Network for Image Restoration

论文源码:https://github.com/tyshiwo/MemNet

ICCV 2017!延长记忆网络MemNet!DRRN相同团队出品!

Abstract

最近,非常深的卷积神经网络 (CNN) 在图像恢复中引起了相当大的关注。然而,随着深度的增长,这些非常深的模型很少实现长期依赖问题,这导致先验状态/层对后续状态几乎没有影响。受人类思想具有持久性这一事实的启发,我们提出了一个非常深的持久记忆网络(MemNet),它引入了一个由递归单元和门单元组成的记忆块,通过自适应学习过程明确地挖掘持久记忆。递归单元学习不同感受野下当前状态的多级表示。前一个内存块的表示和输出被连接起来并发送到门单元,该单元自适应地控制应该保留多少先前的状态,并决定应该存储多少当前状态。我们将MemNet应用于三个图像恢复任务,即图像去噪、超分辨率和JPEG去块。综合实验证明了 MemNet 的必要性及其对所有三个任务的一致性优势。代码可在 https://github.com/tyshiwo/MemNet 获得。

摘要总览:

  • motivation:增强前面层与后面层的联系。对比的方法显然是层间关系不紧密的网络。
  • 模型:MemNet;递归单元和门单元构成记忆块
  • 三个图像恢复任务通用网络。

1. Introduction

图像恢复[29]是低级计算机视觉中的一个经典问题,它从噪声或模糊的图像估计未损坏的图像。损坏的低质量图像 x 可以表示为:x = D( ̃x) + n,其中 ̃x 是 x 的高质量版本,D 是退化函数,n 是添加的噪声。通过这种数学模型,对图像去噪[2,5,9,37]、单幅图像超分辨率(SISR)[15,38]和JPEG去块[18,26]等许多图像恢复任务进行了广泛的研究。

作为三个经典的图像恢复任务,图像去噪旨在从噪声观测中恢复干净的图像,通常假设具有标准差σ的加性高斯白噪声;单图像超分辨率从低分辨率(LR)图像中恢复高分辨率(HR)图像;JPEG去块去除JPEG压缩[7]引起的阻塞伪影。

最近,由于强大的学习能力,非常深的卷积神经网络 (CNN) 被广泛用于解决图像恢复任务。Kim等人为SISR[20]构建了一个名为VDSR的20层CNN结构,并采用残差学习来缓解训练难度。为了控制非常深的模型的参数个数,作者进一步引入了一个递归层,并提出了一个深度递归卷积网络(DRCN)[21]。为了迭代训练难度,毛等人。 [27] 将对称跳跃连接引入 30 层卷积自动编码器名为RED的网络用于图像去噪和SISR。此外,张等人。 [40] 提出了一种去噪卷积神经网络 (DnCNN) 来同时解决图像去噪、SISR 和 JPEG 去块。

传统的普通cnn,如VDSR[20]、DRCN[21]和DnCNN40,采用单路径前馈架构,其中一个状态主要受其直接前一种状态的影响,即短期记忆。CNN、RED [27] 和 ResNet [12] 的一些变体(图 1(b))具有跳过连接,以传递多个层的信息。在这些网络中,除了短期记忆之外,一个状态也受到特定先验状态的影响,即限制长期记忆。本质上,最近的证据表明哺乳动物大脑可能会保护先前获得的新皮层回路知识 [4]。然而,上述 CNN 模型都没有这种机制来实现持久内存。随着深度的增长,他们面临着缺乏长期记忆的问题。
在这里插入图片描述
图 1. 先前的网络结构 (a,b) 和我们的内存块 ©。蓝色圆圈表示具有生成短期记忆展开结构的递归单元。绿色箭头表示来自先前直接传递到门单元的内存块的长期内存。

为了解决这个问题,我们提出了一个非常深的持久记忆网络(MemNet),它引入了一个记忆块,通过自适应学习过程显式地挖掘持久记忆。在 MemNet 中,特征提取网络 (FENet) 首先从低质量图像中提取特征。然后,将几个内存块与密集连接的结构叠加,解决图像恢复任务。最后,采用重构网络(ReconNet)来学习残差,而不是直接映射,以简化训练难度。

作为 MemNet 的关键组件,内存块包含一个递归单元和一个门单元。受神经科学 [6, 25] 的启发,递归连接普遍存在于新皮层中,递归单元学习当前状态在不同感受野(图 1© 中的蓝色圆圈)下的多级表示,这可以看作是短期记忆。从递归单元生成的短期记忆和前一个内存块1(图1©中的绿色箭头)生成的长期记忆被连接起来并发送到门单元,这是一个非线性函数来维护持久内存。此外,我们提出了一个扩展的自监督 MemNet,它融合了内存块的所有中间预测以提高性能。

总之,这项工作的主要贡献包括:

  • 一个内存块来完成门控机制,以帮助弥合长期依赖关系。在每个内存块中,门单元自适应地学习不同内存的不同权重,这控制应该保留多少长期记忆,并决定应该存储多少短期记忆。
  • 这是一个非常深入的端到端持久记忆网络(80个卷积层)用于图像恢复。密集的连接结构有助于补偿中/高频信号,并确保内存块之间的最大信息流。据我们所知,到目前为止,它是图像恢复最深的网络。
  • 相同的MemNet结构在图像去噪、超分辨率和JPEG去块方面达到了最先进的性能。由于强大的学习能力,即使使用单个模型,我们的 MemNet 也可以被训练来处理不同级别的损坏。

贡献解析:图1表明了长久记忆模型的主要结构,以及与常规结构的对比。图1(a) 为传统CNN结构(短期记忆);图1(b)为简单的跳跃连接(REDNet); 图1(c) 为长期记忆块。

  • 门控机制控制最终输出权重,即哪些信息应该长期记忆
  • 端到端网络,非常深(80层),越深对高频信息的保留和重建越好

一个创新结构,一个最深的层数。很自然的延伸出两个阅读文字时的问题:

  1. 记忆块如何实现的,以及为什么更好(这时应该马上反应到去看具体结构以及略读实验效果)
  2. 80层网络,这样的深度是如何训练的?因为肯定比之前没有这么深的网络训练更困难。

2. Related Work

ImageNet[31]中AlexNet[22]的成功开始了视觉深度学习时代,流行的网络GoogleNet[33]、Highway network[32]、ResNet[12]表明网络深度是至关重要的。

作为早期的尝试,Jain等人[17]提出了一种简单的CNN,从噪声观测中恢复干净的自然图像,并取得了与小波方法相当的性能。作为SISR的先驱CNN模型,超分辨率卷积神经网络(SRCNN)[8]通过全卷积网络预测非线性LR-HR映射,显著优于经典的浅层方法。作者进一步提出了一个扩展的 CNN 模型,称为伪影减少卷积神经网络 (ARCNN) [7],以有效地处理 JPEG 压缩伪影。

为了合并特定于任务的先验,Wang 等人。采用级联稀疏编码网络充分利用图像的自然稀疏性[36]。在[35]中,提出了一种深度双域方法,将JPEG压缩方案中的先验知识与双域稀疏编码实践相结合。郭等人。 [10] 还提出了一种双域卷积网络,该网络在 DCT 和像素域中联合学习非常深的网络。

最近,非常深的 CNN 在图像分类恢复方面变得流行。Kim等人[20]堆叠了20个卷积层来利用大型上下文信息。残差学习和可调梯度裁剪用于加快训练速度。Zhang等人[40]将批处理归一化引入到DnCNN模型中,共同处理多个图像恢复任务。为了减少模型的复杂性,DRCN模型引入了递归监督和跳过连接来缓解训练难度[21]。利用对称跳跃连接,Mao等人[27]提出了一种用于图像去噪和SISR的非常深的卷积自编码器网络。最近,Lai等人[23]提出了LapSRN来解决SISR的速度和精度问题,该问题直接对LR图像进行直接操作,逐步重建HR图像的子带残差。Tai等人[34]提出了深度递归残差网络(DRRN)来解决模型参数和精度的问题,在多路径模型中递归地学习残差单元。

3. MemNet for Image Restoration

3.1. Basic Network Architecture

在这里插入图片描述
我们的 MemNet 由三部分组成:特征提取网络 FENet、多个堆叠内存块,最后是重建网络 ReconNet(图 2)。让我们将 x 和 y 表示为 MemNet 的输入和输出。具体来说,FENet使用卷积层从噪声或模糊输入图像中提取特征,
B 0 = f e x t ( x ) (1) B_{0}=f_{e x t}(\mathbf{x})\tag{1} B0=fext(x)(1)
其中 fext 表示特征提取函数,B0 是要发送到第一个内存块的提取特征。假设M个内存块被堆叠为特征映射,我们有
B m = M m ( B m − 1 ) = M m ( M m − 1 ( … ( M 1 ( B 0 ) ) … ) ) (2) B_{m}=\mathcal{M}_{m}\left(B_{m-1}\right)=\mathcal{M}_{m}\left(\mathcal{M}_{m-1}\left(\ldots\left(\mathcal{M}_{1}\left(B_{0}\right)\right) \ldots\right)\right)\tag{2} Bm=Mm(Bm1)=Mm(Mm1((M1(B0))))(2)
其中 Mm 表示第 m 个内存块函数,Bm-1 和 Bm 分别是第 m 个内存块的输入和输出。最后,我们的模型不是学习从低质量图像到高质量图像的直接映射,而是使用 ReconNet 中的卷积层来重建残差图像 [20, 21, 40]。因此,我们的基本 MemNet 可以表述为,
y = D ( x ) = f rec  ( M M ( M M − 1 ( … ( M 1 ( f ext  ( x ) ) ) … ) ) ) + x (3) \begin{array}{l} \mathbf{y}=\mathcal{D}(\mathbf{x}) \\ =f_{\text {rec }}\left(\mathcal{M}_{M}\left(\mathcal{M}_{M-1}\left(\ldots\left(\mathcal{M}_{1}\left(f_{\text {ext }}(\mathbf{x})\right)\right) \ldots\right)\right)\right)+\mathbf{x} \end{array}\tag{3} y=D(x)=frec (MM(MM1((M1(fext (x))))))+x(3)
其中 frec 表示重建函数,D 表示我们基本 MemNet 的函数。

给定一个训练集 {x(i), ̃x(i)}N i=1,其中 N 是训练补丁的数量, ̃x(i) 是低质量补丁 x(i) 的真实高质量补丁,我们的基本 MemNet 与参数集 Θ 的损失函数为
L ( Θ ) = 1 2 N ∑ i = 1 N ∥ x ~ ( i ) − D ( x ( i ) ) ∥ 2 (4) \mathcal{L}(\Theta)=\frac{1}{2 N} \sum_{i=1}^{N}\left\|\tilde{\mathbf{x}}^{(i)}-\mathcal{D}\left(\mathbf{x}^{(i)}\right)\right\|^{2}\tag{4} L(Θ)=2N1i=1N x~(i)D(x(i)) 2(4)

网络结构:

  • 特征提取:FENet
  • M个记忆块:Memory block
  • 重建网络:ReconNet
  • 连接方式:输入与ReconNet残差连接;FENet的输出与中间的堆叠M个记忆块全连接(读到这感觉像DenseNet的连接方式)
  • 损失函数:与DnCNN一致。MSE的一半

3.2. Memory Block

我们现在介绍我们的内存块的详细信息。内存块包含一个递归单元和一个门单元。

递归单元用于对非线性函数进行建模,该函数充当大脑中的递归突触 [6, 25]。在这里,我们使用 ResNet [12] 中引入的残差构建块,并展示了强大的对象识别学习能力,作为递归单元中的递归。第m个内存块中的剩余构建块表示为,
H m r = R m ( H m r − 1 ) = F ( H m r − 1 , W m ) + H m r − 1 (5) H_{m}^{r}=\mathcal{R}_{m}\left(H_{m}^{r-1}\right)=\mathcal{F}\left(H_{m}^{r-1}, W_{m}\right)+H_{m}^{r-1}\tag{5} Hmr=Rm(Hmr1)=F(Hmr1,Wm)+Hmr1(5)
其中 Hr−1m , Hr m 分别是第 r 个残差构建块的输入和输出。当 r = 1 时,H0m = Bm−1.F 表示残差函数,Wm 是要学习的权重,R 表示残差构建块的函数。具体来说,每个残差函数包含两个具有预激活结构的卷积层[13],
F ( H m r − 1 , W m ) = W m 2 τ ( W m 1 τ ( H m r − 1 ) ) (6) \mathcal{F}\left(H_{m}^{r-1}, W_{m}\right)=W_{m}^{2} \tau\left(W_{m}^{1} \tau\left(H_{m}^{r-1}\right)\right)\tag{6} F(Hmr1,Wm)=Wm2τ(Wm1τ(Hmr1))(6)
其中 τ 表示激活函数,包括批量归一化 [16],然后是 ReLU [30],W i m, i = 1, 2 是第 i 个卷积层的权重。为简单起见,省略了偏置项。

然后,递归地学习几个递归来生成不同感受野下的多级表示。我们将这些表示称为短期记忆。假设递归单元中存在 R 个递归,递归单元中的第 r 个递归可以表示为,
H m r = R m ( r ) ( B m − 1 ) = R m ( R m ( … ( R m ⏟ r ( B m − 1 ) ) … ) ) , (7) H_{m}^{r}=\mathcal{R}_{m}^{(r)}\left(B_{m-1}\right)=\underbrace{\mathcal{R}_{m}\left(\mathcal { R } _ { m } \left(\ldots \left(\mathcal{R}_{m}\right.\right.\right.}_{r}\left(B_{m-1}\right)) \ldots)),\tag{7} Hmr=Rm(r)(Bm1)=r Rm(Rm((Rm(Bm1)))),(7)
其中执行Rm的r倍运算,{Hr m}R r=1是递归单元的多级表示。这些表示被连接为短期记忆:Bshort m = [H1m, H2m,。…, HR m]。此外,来自前一个内存块的长期记忆可以构造为:Blong m = [B0, B1,。…, Bm−1]。然后将这两种类型的记忆连接为门单元的输入,
B m gate  = [ B m short  , B m long  ] (8) B_{m}^{\text {gate }}=\left[B_{m}^{\text {short }}, B_{m}^{\text {long }}\right]\tag{8} Bmgate =[Bmshort ,Bmlong ](8)
门单元用于通过自适应学习过程实现持久内存。在本文中,我们采用 1×1 卷积层来完成门控机制,该机制可以学习不同记忆的自适应权重,
B m = f m gate  ( B m gate  ) = W m gate  τ ( B m gate  ) (9) B_{m}=f_{m}^{\text {gate }}\left(B_{m}^{\text {gate }}\right)=W_{m}^{\text {gate }} \tau\left(B_{m}^{\text {gate }}\right)\tag{9} Bm=fmgate (Bmgate )=Wmgate τ(Bmgate )(9)
其中 f gate m 和 Bm 分别表示 1 × 1 卷积层(由 W gate m 参数化)和第 m 个内存块的输出的函数。因此,长期记忆的权重控制应该保留多少先前的状态,短期记忆的权重决定了应该存储多少当前状态。因此,第 i 个内存块的公式可以写成,
B m = M m ( B m − 1 ) = f gate  ( [ R m ( B m − 1 ) , … , R m ( R ) ( B m − 1 ) , B 0 , … , B m − 1 ] ) (10) \begin{array}{l} B_{m}=\mathcal{M}_{m}\left(B_{m-1}\right) \\ =f_{\text {gate }}\left(\left[\mathcal{R}_{m}\left(B_{m-1}\right), \ldots, \mathcal{R}_{m}^{(R)}\left(B_{m-1}\right), B_{0}, \ldots, B_{m-1}\right]\right) \end{array}\tag{10} Bm=Mm(Bm1)=fgate ([Rm(Bm1),,Rm(R)(Bm1),B0,,Bm1])(10)

记忆块:

  • 递归单元:每个层的输出作为门控单元的输入,为长连接;直接传递到下一层的为段连接;于是门控单元的输入就为短链接和长连接堆叠。
    在这里插入图片描述
  • 门控单元:1×1卷积,给输入分配权重(自监督得到最优权重,在下一节)。

3.3. Multi-Supervised MemNet

在这里插入图片描述
为了进一步探索不同状态的特征,受 [21] 的启发,我们将每个内存块的输出发送到相同的重建网络 ^frec 以生成
y m = f ^ r e c ( x , B m ) = x + f r e c ( B m ) (11) \mathbf{y}_{m}=\hat{f}_{r e c}\left(\mathbf{x}, B_{m}\right)=\mathbf{x}+f_{r e c}\left(B_{m}\right)\tag{11} ym=f^rec(x,Bm)=x+frec(Bm)(11)
其中 {ym}M m=1 是中间预测。所有预测在训练期间都是有监督的,用于通过加权平均来计算最终输出:y =∑M m=1 wm · ym(图 3)。在训练期间自动学习最佳权重 {wm}M m=1,并且还监督集成的最终输出。我们的自监督 MemNet 的损失函数可以表述为,
L ( Θ ) = α 2 N ∑ i = 1 N ∥ x ~ ( i ) − ∑ m = 1 M w m ⋅ y m ( i ) ∥ 2 + 1 − α 2 M N ∑ m = 1 M ∑ i = 1 N ∥ x ~ ( i ) − y m ( i ) ∥ 2 (12) \begin{array}{l} \mathcal{L}(\Theta)=\frac{\alpha}{2 N} \sum_{i=1}^{N}\left\|\tilde{\mathbf{x}}^{(i)}-\sum_{m=1}^{M} w_{m} \cdot \mathbf{y}_{m}^{(i)}\right\|^{2} \\ +\frac{1-\alpha}{2 M N} \sum_{m=1}^{M} \sum_{i=1}^{N}\left\|\tilde{\mathbf{x}}^{(i)}-\mathbf{y}_{m}^{(i)}\right\|^{2} \end{array}\tag{12} L(Θ)=2Nαi=1N x~(i)m=1Mwmym(i) 2+2MN1αm=1Mi=1N x~(i)ym(i) 2(12)
其中 α 表示损失权重。

MemNet的实质是多监督网络,有门口单元控制得到每个记忆块经过重建网络的输出,然后将每个记忆块重建的输出按元素相加得到最终的输出(图3)。由于输出变了,损失函数就变成了本节所示的样子。

3.4. Dense Connections for Image Restoration

现在我们分析为什么MemNet中的长期密集连接可能有利于图像恢复。在非常深的网络中,在典型的前馈 CNN 过程中,一些中/高频信息可以在后一层丢失,前一层的密集连接可以补偿这种损失并进一步增强高频信号。为了验证我们的直觉,我们训练了一个没有长期连接的 80 层 MemNet,表示为 MemNet_NL,并与原始 MemNet 进行比较。两个网络都有 6 个内存块,导致 6 个中间输出,每个内存块包含 6 个递归。图 4(a) 显示了两个网络的第 4 个和第 6 个输出。我们计算它们的功率谱,将它们居中,通过放置同心圆来估计连续频率范围从低到高的光谱密度,并在图4(b)中绘制四个输出的密度。在这里插入图片描述
我们在图 4© 中进一步绘制了这些密度的差异。从左到右,第一个案例表示较早的层确实包含后面的层丢失的一些中频信息。第二种情况验证了通过密集连接,后一层吸收前一层的信息,甚至生成更多的中频信息。第 3 个案例表明在较早的层中,两个模型之间的频率相似。最后一个案例表明 MemNet 恢复了比没有长期连接的版本更多的高频。

本节通过消融实验和频谱图说明了网络深度和长连接对模型性能的影响。结论为:在记忆块够多时(6个),用长记忆连接比不用好。记忆块少时(4个),长记忆连接会保留更多中频信息;多时(6个),会重建更多的高频信息。很显然,MemNet的超参数为M(记忆块的个数)和R(递归层数),消融实验思路就有了,对比不同超惨的区别,以及是否用长记忆连接的区别。记忆块多一点,才能发挥长记忆连接的作用,也得具体看实验后到底是什么样的效果。

后面实验部分显示了,M10R10在超分任务Set5上最好。

4. Discussions

与高速公路网络的区别 首先,我们讨论了内存块如何完成门控机制并展示 MemNet 和 Highway Network 之间的差异——一个非常深的 CNN 模型,使用门单元来调节信息流 [32]。

为了避免非常深的普通网络中的信息衰减,受 LSTM 的启发,高速公路网络引入了绕过层和门单元,即
b = A ( a ) ⋅ T ( a ) + a ⋅ ( 1 − T ( a ) ) (13) \mathbf{b}=\mathcal{A}(\mathbf{a}) \cdot \mathcal{T}(\mathbf{a})+\mathbf{a} \cdot(1-\mathcal{T}(\mathbf{a}))\tag{13} b=A(a)T(a)+a(1T(a))(13)
其中 a 和 b 是输入和输出,A 和 T 是两个非线性变换函数。T 是用于控制 A 产生的多少信息应该存储到输出中的转换门; 1 - T 是决定应该保留多少输入承载门。

在 MemNet 中,连接短期和长期记忆。1 × 1 卷积层自适应地学习不同记忆的权重。与为每个像素学习特定权重的高速公路网络相比,我们的门单元为每个特征图学习特定的权重,有两个优点:(1)减少模型参数和复杂性; (2) 不太容易过度拟合。

与 DRCN 不同的是,MemNet 和 DRCN [21] 之间有三个主要区别。第一个是网络中基本模块的设计。在 DRCN 中,基本模块是一个卷积层;而在 MemNet 中,基本模块是实现持久内存的内存块。第二个是在 DRCN 中,基本模块(即卷积层)的权重是共享的;而在 MemNet 中,内存块的权重是不同的。第三个是 DRCN 中基本模块之间没有密集连接,这导致了链结构;而在 MemNet 中,导致多路径结构的内存块之间存在长期密集连接,这不仅有助于整个网络的信息流,而且鼓励训练期间的梯度反向传播。得益于良好的信息流能力,MemNet 可以在没有多监督策略的情况下轻松训练,这对于训练 DRCN [21] 是必不可少的。

与 DenseNet 不同的是,MemNet 的另一个相关工作是 DenseNet [14],它也建立在密集连接原则之上。一般来说,DenseNet处理物体识别,而MemNet被提出用于图像恢复。此外,DenseNet 以局部方式采用密集连接的结构(即密集块内),而 MemNet 采用全局方式(即跨内存块)的密集连接结构。在3.4 和 5.2节,我们分析并证明了 MemNet 中的长期密集连接确实在图像恢复任务中发挥着重要作用。

MemNet主要的启发来源于三部分:LSTM、DRCN和DenseNet。本节讨论了与传统的深度卷积网络、DRCN和DenseNet的差异。

  • 与highway Network的区别:主要使用了门控机制
  • 与DRCN的区别:记忆块为基本模块,而且用权重控制,且多个输出
  • 与DenseNet的区别:DenseNet是局部密集连接(在块内),而MemNet是块与块之间的密集连接,以记忆块为基本单元。强调了密集链接的有效性。

5. Experiments

5.1. Implementation Details

数据集 对于图像去噪,我们遵循[27]使用来自伯克利分割数据集(BSD)[28]的300张图像,称为训练集和验证集,生成图像补丁作为训练集。两个流行的基准,一个包含 14 个常见图像和具有 200 张图像的 BSD 测试集的数据集用于评估。我们通过将三个噪声水平之一(σ = 30、50 和 70)的高斯噪声添加到干净的补丁来生成输入噪声补丁。

对于SISR,按照[20]中的实验设置,我们使用291张图像的训练集,其中91张图像来自Yang等人[38],其他200张来自BSD训练集。为了测试,四个基准数据集Set5[1]、Set14[39]、使用 BSD100 [28] 和 Urban100 [15]。评估了三个比例因子,包括×2、×3和×4。输入LR图像由第一次双三次下采样生成,然后以一定比例对HR图像进行双三次上采样。

对于JPEG去块,使用相同的训练集进行图像去噪。与 [7] 一样,Classic5 和 LIVE1 被用作测试数据集。使用了两个JPEG质量因子,即10和20,JPEG去块输入是通过使用MATLAB JPEG编码器压缩具有一定质量因子的图像来生成的。

训练设置 按照方法[27]进行图像去噪,采用灰度图像;而对于SISR和JPEG去块,亮度分量被输入到模型中。由于完全卷积的架构,输入图像大小可以是任意的。考虑到训练时间和存储的复杂性,训练图像被分成31 × 31个步幅为21的补丁。MemNet的输出是估计的高质量补丁,分辨率与输入低质量的补丁相同。我们遵循 [34] 进行数据增强。对于每个任务,我们为所有不同级别的损坏训练一个单一模型。例如,对于图像去噪,使用了噪声增强。具有不同噪声水平的图像都包含在训练集中。同样,对于超分辨率和JPEG去块,分别使用尺度和质量增强。

我们使用 Caffe [19] 来实现两个 80 层 MemNet 网络,即基本版本和多级版本。在这两种架构中,构建了 6 个内存块,每个块包含 6 个递归(即 M6R6)。具体来说,在自监督 MemNet 中,生成 6 个预测并用于计算最终输出。α 平衡了不同的正则化,根据经验设置为 α = 1/(M + 1)。

方程式 4 和12 中的目标函数通过反向传播 [24] 的小批量随机梯度下降 (SGD) 进行优化。我们将 SGD 的 mini-batch 大小设置为 64,动量参数设置为 0.9,权重衰减设置为 10−4。所有卷积层都有 64 个过滤器。除了门单元中的1 × 1卷积层外,其他卷积层的核大小为3 × 3。我们使用[11]中的方法进行权值初始化。初始学习率设置为 0.1,然后每 20 个 epoch 除以 10。使用 1 个 Tesla P40 GPU,为 SISR 训练 91 张图像 [38] 的 80 层基本 MemNet 大约需要 5 天。由于空间约束和最近的基线,我们关注 Sec 5.2、5.4 和 5.6中的 SISR,和 Sec 5.3 和 5.5中的所有三项任务。

5.2. Ablation Study

表 1 显示了对长期和短期连接的影响的消融研究。与 MemNet 相比,MemNet NL 删除了长期连接(图 3 中的绿色曲线),MemNet NS 删除了短期连接(图 1 中第一个 R-1 个递归到门单元的黑色曲线)。保留从最后一个递归到门单元的连接以避免递归单元和门单元之间的中断交互)。这三个网络具有相同的深度(80)和过滤器数量(64)。我们看到,长期密集连接非常重要,因为 MemNet 明显优于 MemNet NL。此外,MemNet 实现了比 MemNet NS 更好的性能,这表明短期连接对于图像恢复也很有用,但不如长期连接强大。原因是长期连接跳过了比短期连接更多的层,它可以从非常早期的层到后面的层携带一些中/高频信号,如第3.4节所述。在这里插入图片描述

5.3. Gate Unit Analysis

我们现在说明我们的门单元如何影响不同类型的记忆。受 [14] 的启发,我们采用权重范数作为当前层对其前一层的依赖性的近似,该近似由来自所有过滤器 w.r.t 的相应权重计算得出。每个特征图:vl m =√∑64i=1(W gate m (1, 1, l, i))2, l = 1, 2,。…, Lm,其中 Lm 是第 m 个门单元输入特征图的数量,l 表示特征图索引,W 门 m 存储大小为 1 × 1 × Lm × 64 的权重,vl m 是第 m 个门单元的第 l 个特征图的权重范数。基本上,范数越大,它对这个特定特征图的依赖越强。为了更好地可视化,我们将规范归一化到 0 到 1 的范围内。图 5 显示了滤波器权重 {vl m}6m=1 与特征图索引 l 的范数。我们有三个观察结果:(1)不同的任务具有不同的范数分布。(2) 随着内存块数量的增加,权重规范的均值和方差变小。(3) 一般来说,递归单元(每条曲线中的最后一个 64 个元素)中最后一个递归的短期记忆贡献了其他两个记忆,长期记忆似乎在后期记忆块中发挥着更重要的作用,以从第一个 R - 1 递归中恢复有用的信号。在这里插入图片描述

5.4. Comparision with Non-Persistent CNN Models

在本小节中,我们将 MemNet 与三个现有的非持久 CNN 模型(即 VDSR [20]、DRCN [21] 和 RED [27])进行比较,以证明我们的持久记忆结构的优越性。VDSR 和 DRCN 是两个结构简单的代表性网络,RED 代表跳跃连接。表 2 展示了这些模型的已发布结果及其训练细节。由于不同工作之间的训练细节不同,我们选择 DRCN 作为基线,使用最少的训练图像取得了良好的性能。但是,与扩大网络以增加参数(过滤器编号:256 与 64)的 DRCN 不同,我们通过堆叠更多的内存块(深度:20vs. 80)来加深我们的 MemNet。可以看出,使用最少的训练图像(91)、滤波器数(64)和相对较少的模型参数(667K),我们的基本 MemNet 已经比以前的网络实现了更高的 PSNR。保持设置不变,我们的自监督 MemNet 进一步提高了性能。有了更多的训练图像(291),我们的 MemNet 显着优于现有技术。在这里插入图片描述
由于我们的目标是解决网络中的长期依赖关系问题,我们打算使我们的 MemNet 非常深。然而,MemNet 也能够平衡模型的复杂性和准确性。图 6 显示了 MemNet 中不同中间预测的 PSNR(例如,MemNet M3 表示第 3 个内存块的预测),用于 Scale×3on Set5,其中颜色条表示在 GPU P40 上处理 288 × 288 图像时推理时间(秒)。 VDSR [20] 和 DRCN [21] 的结果来自他们的论文。这里跳过 RED [27],因为它的大量参数可能会降低其他方法之间的对比。我们看到我们的 MemNet 已经使用更少的参数在第 3 个预测上取得了可比较的结果,并且通过略微增加模型的复杂性显着优于现有技术。在这里插入图片描述

5.5. Comparisons with State-of-the-Art Models

我们将自监督 80 层 MemNet 在三个恢复任务中分别与现有技术进行比较。

图像去噪 表 3 在两个基准上展示了定量结果,结果引用了 [27]。对于 BSD200 数据集,按照 RED [27] 中的设置,原始图像被调整为其一半大小。我们可以看到,我们的 MemNet 在所有情况下都实现了最佳性能。需要注意的是,对于每个测试图像,RED 旋转和镜像翻转内核,并多次执行推理。然后对输出进行平均以获得最终结果。他们声称这种策略可以带来更好的性能。然而,在我们的 MemNet 中,我们不执行任何后处理。对于定性比较,我们使用 PCLR [2]、PGPD [37] 和 WNNM [9] 的公共代码。结果如表7所示。正如我们所看到的,我们的MemNet比现有技术更好地处理高斯噪声。
在这里插入图片描述在这里插入图片描述

超分辨率 表 4 通过引用先前方法的结果总结了四个基准上的定量结果。MemNet 在几乎所有情况下都优于以前的方法。由于 LapSRN 没有报告尺度 ×3 的结果,我们改为使用符号“-”。图 8 显示了 SISR 的视觉比较。SRCNN[8]、VDSR[20]和DnCNN[40]使用他们的公共代码进行比较。MemNet 恢复了相对更清晰的边缘,而其他边缘的结果模糊。在这里插入图片描述
在这里插入图片描述
JPEG去块 表 5 显示了 Classic5 和 LIVE1 上的 JPEG 去块结果,引用了 [40] 的结果。我们的网络明显优于其他方法,与浅层网络(例如 ARCNN)相比,更深的网络确实提高了性能。图 9 显示了这三种方法的 JPEG 去块结果,它们由它们对应的公共代码生成。可以看出,MemNet 有效地去除了阻塞伪影并恢复了比以前的方法更高质量的图像。在这里插入图片描述在这里插入图片描述

5.6. Comparison on Different Network Depths

最后,我们展示了不同网络深度的比较,这是由于堆叠不同数量的内存块或递归造成的。具体来说,我们测试了四种网络结构:M4R6、M6R6、M6R8 和 M10R10,分别深度为 54、80、104 和 212。标签。图6显示了这些网络在比例因子×3的Set5上的SISR性能。它验证更深仍然更好,提出的最深网络M10R10达到34.23 dB,与M6R6相比提高了0.14 dB。
在这里插入图片描述
5.6感觉像是后补的内容,给人的感觉是M10R10在Set5 x3的时候最好,其他情况下M6R6最合理。但是,在确定了默认超参数为M6R6的时候,应该用主要的篇幅讨论为什么6个记忆块和每个记忆块有6个递归层,以体现参数的合理性,可以是指标最优,或者是平衡速度与性能。而且肯定与训练数据大小相关,那么在固定训练集的情况下,也应该是做大量测试讨论为什么M6R6,而本文只用了一小部分讨论。可能是当时,MemNet和其他SOTA比太好了,多展示量化指标和视觉比较也挺合理。

6. Conclusions

本文提出了一种非常深的端到端持久记忆网络(MemNet)用于图像恢复,其中内存块完成门控机制以解决先前 CNN 架构中的长期依赖关系问题。在每个内存块中,采用递归单元学习多级表示作为短期记忆。来自递归单元的短期记忆和来自前一个内存块的长期记忆都被发送到门单元,该门单元自适应地学习不同记忆的不同权重。我们使用相同的MemNet结构同时处理图像去噪、超分辨率和JPEG去块。综合基准评估很好地证明了我们的 MemNet 优于现有技术的优越性。

总结复习巩固:
在这里插入图片描述
在这里插入图片描述

再看一遍图强化一下记忆(默认参数为M6R6),然后马不停蹄地来到复现文章!

本文对应的复现文章:复现完修改


至此本文结束。

如果本文对你有所帮助,请点赞收藏,创作不易,感谢您的支持!

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十小大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值