【论文阅读】RFDN-Residual Feature Distillation Network for Lightweight Image Super-Resolution


论文地址

1、论文
2、源码


摘要

单图像超分辨率 (SISR) 的最新进展探索了卷积神经网络 (CNN) 实现更好性能的能力。尽管基于 CNN 的方法取得了巨大成功,但由于需要大量计算,将这些方法应用于边缘设备并不容易。为了解决这个问题,已经提出了各种快速和轻量级的 CNN 模型。信息蒸馏网络是最先进的方法之一,它采用通道分裂操作来提取蒸馏特征。然而,这种操作如何帮助设计高效的 SISR 模型还不够清楚。在本文中,我们提出了特征蒸馏连接(FDC),它在功能上等同于通道拆分操作,同时更加轻量级和灵活。多亏了 FDC,我们可以重新思考信息多重蒸馏网络(IMDN),并提出一种轻量级且准确的 SISR 模型,称为残差特征蒸馏网络(RFDN)。 RFDN 使用多个特征蒸馏连接来学习更具辨别力的特征表示。我们还提出了一个浅层残差块 (SRB) 作为 RFDN 的主要构建块,这样网络就可以从残差学习中获益最多,同时仍然足够轻量级。广泛的实验结果表明,所提出的 RFDN 在性能和模型复杂性方面与最先进的方法相比取得了更好的权衡。此外,我们提出了增强型 RFDN(E-RFDN),并在 AIM 2020 高效超分辨率挑战赛中获得第一名。代码将在 https:/github.com/njulj/RFDN 上提供。

1 简介

图像超分辨率 (SR) 是一项经典的计算机视觉任务,用于从低分辨率 (LR) 对应物重建高分辨率 (HR) 图像。这是一个不利的程序,因为许多HR图像可以退化为相同的LR图像。图像SR是一个非常活跃的研究领域,已经提出了许多方法来生成放大的图像[25,15]。在本文中,我们重点关注视频流等时间敏感应用中所需的轻量级图像 SR 的问题。

最近,各种基于卷积神经网络 (CNN) 的方法 [?,11,23,17,7,16,32] 被提出并取得了显著成果图像SR的性能。作为一项开创性的工作,董等人。 [4] 提出了超分辨率卷积神经网络(SRCNN),它是一个三层网络,直接对从 LR 到 HR 的映射进行建模。然后,金等人。 [12] 将 SR 网络的深度推至 20 并取得了比 SRCNN 更好的性能,这表明可以通过更深的网络提高放大图像的质量。 EDSR [17] 网络通过使用超过 160 层进一步证明了这一点。尽管更深的网络提高了 SR 图像的质量,但它们不适合真实场景。重要的是设计快速和轻量级的 CNN 模型,在 SR 质量和模型复杂性之间进行更好的权衡。

为了减少参数数量,DRCN [13] 和 DRRN [22] 采用了减少参数数量的递归网络通过参数共享有效地。但是,它必须增加网络的深度或宽度来补偿递归模块造成的损失。这些模型以增加操作次数和推理时间为代价来减小模型大小。在实际应用中,操作的数量也是一个重要的考虑因素,以便 SR 模型可以实时执行。因此,最好为实际场景设计足够轻量级和高效的专用网络。

为此,Ahn 等人。 [1] 通过使用级联网络架构提出了用于移动设备的 CARN-M,但它是以 PSNR 大幅下降为代价的。惠等。 [11] 提出了一种信息蒸馏网络(IDN),它明确地将中间特征沿着通道维度分成两部分,一个被保留,另一个由后续的卷积层进一步处理。通过使用这种信道拆分策略,IDN 可以聚合当前信息和部分保留的本地短路径信息,并在适度的大小下实现良好的性能。后来,IMDN [10] 通过设计在粒度级别提取特征的信息多蒸馏块 (IMDB) 进一步改进了 IDN。具体来说,频道拆分策略在 IMDB 中应用了多次。每次,保留一部分特征,将另一部分发送到下一步。 IMDN 在 PSNR 和推理时间方面都有不错的表现,并在 AIM 2019 约束图像超分辨率挑战赛中获得第一名 [30]。然而,IMDN 的参数数量比大多数轻量级 SR 模型(例如VDSR [12]、IDN [11]、MemNet [23])。

IDN和IMDN的关键组成部分是信息蒸馏机制(IDM),它明确地将前面提取的特征分为两部分,一部分被保留,另一部分被进一步提炼。我们认为 IDM 不够高效,它给网络设计带来了一些不灵活性。很难将身份连接与 IDM 结合起来。在本文中,我们将对信息蒸馏机制进行更全面的分析,并提出比 IDM 更轻量级和更灵活的特征蒸馏连接(FDC)。我们使用 IMDN 作为基线模型,因为它在重建质量和推理速度之间做出了很好的权衡,非常适合移动设备。但是IMDN还不够轻量化,SR性能还有待进一步提升。为了构建更强大的快速轻量级 SR 模型,我们重新思考 IMDN 的架构并提出残差特征蒸馏网络 (RFDN)。与 IMDN 相比,我们的 RFDN 通过使用特征蒸馏连接 (FDC) 更加轻量级。此外,我们提出了一种浅层残差块 (SRB),用作 RFDN 的构建块,以进一步提高 SR 性能。 SRB 由一个卷积层、一个相同的连接和最后一个激活单元组成。与普通卷积相比,它可以在不引入额外参数的情况下受益于残差学习 [8]。很容易将SRB与特征蒸馏连接结合起来构建更强大的SR网络。
本文的主要贡献可归纳如下:
1 我们提出了一种用于快速准确图像超分辨率的轻量级残差特征蒸馏网络 (RFDN),它实现了最先进的 SR 性能,同时使用比竞争对手少得多的参数。
2 我们对信息蒸馏机制 (IDM) 进行了更全面的分析,并重新思考了 IMDN 网络。基于这些新的理解,我们提出了比 IDM.
3 更轻量级和更灵活的特征蒸馏连接(FDC)。我们提出了浅层残差块(SRB),它将身份连接与一个卷积块结合起来,以在不引入任何额外参数的情况下进一步提高 SR 性能。
在这里插入图片描述

2 相关工作

最近,基于深度学习的模型在图像SR方面取得了显著的改进。这项开创性的工作由Dong等人完成[4],他们首先提出了一个三层卷积神经网络SRCNN,以端到端的方式共同优化特征提取,非线性映射和图像重建。然后Kim等人[12]提出了超深度超分辨率(VDSR)网络,该网络堆叠了20个卷积层以提高SR性能。为了降低模型的复杂性,Kim等人[13]引入了DRCN,递归应用特征提取层16次。DRRN [22] 通过将递归和残差网络方案结合起来改进了 DRCN用更少的参数获得更好的性能。赖等。 [14] 提出了拉普拉斯金字塔超分辨率网络(LapSRN),通过将原始 LR 图像作为输入并逐步重建 HR 图像的子带残差来解决速度和精度问题。泰等人。 [23] 提出了用于图像恢复任务的持久性记忆网络(MemNet),它解决了以前 CNN 架构中的长期依赖问题。为了降低计算成本并提高测试速度,Shi 等人。 [21] 设计了一种有效的亚像素卷积来提升 SR mdoels 末尾特征图的分辨率,以便大部分计算都在低维特征空间中执行。出于同样的目的,董等人。 [5] 提出了快速 SRCNN(FSRCNN),它采用转置卷积作为上采样层来完成后上采样 SR。然后 Lim 等人。 [17] 提出了 EDSR 和 MDSR,它们通过去除传统残差网络中不必要的模块实现了显着改进。基于 EDSR,Zhang 等人。通过将密集连接引入残差块,提出了残差密集网络(RDN)[34]。他们还提出了非常深的剩余注意力网络(RCAN)[32]和剩余非局部注意力网络(RNAN)[33]。戴等。 [3] 利用二阶注意机制通过考虑高于一阶的特征统计来自适应地重新缩放特征。郭等。 [6] 通过引入额外的约束开发了一种双回归方案,使得映射可以形成闭环,并且可以重建 LR 图像以增强 SR 模型的性能。尽管基于 CNN 的方法取得了巨大成功,但大多数不适用于移动设备。为了解决这个问题,Ahn 等人。 [1] 通过级联网络架构提出了移动场景的 CARN-M 模型。惠等。 [11]提出了信息蒸馏网络(IDN),明确地将前面提取的特征分为两部分。基于 IDN,他们还提出了快速轻量级信息多蒸馏网络 (IMDN) [10],这是 AIM 2019 约束图像超分辨率挑战赛 [30] 的获胜者解决方案。

3 方法

3.1 信息多蒸馏块

如图2a所示,信息蒸馏块(IMDB)[10]的主要部分是一个渐进式细化模块(PRM),其标有灰色背景。PRM 首先使用 3 × 3 卷积层提取输入特征,用于多个后续蒸馏步骤。对于每个步骤,对上述特征采用通道分割操作,并将输入特征分为两部分。一部分被保留,另一部分被送入下一个蒸馏步骤。给定输入特征 Fin,可以描述此过程
在这里插入图片描述

其中 Lj 表示第 j 个卷积层(包括激活单元),Splitj 表示第 j 个通道分裂操作,Fdistilled j 表示第 j 个蒸馏特征,Fcoarse j 是第 j 个粗特征,将进一步由后续层处理。最后,将所有蒸馏特征连接在一起作为PRM的输出
在这里插入图片描述

,其中 Concat 表示沿通道维度的连接操作。

3.2 重新思考 IMDB

Although PRM 实现了显着的改进,但效率不够高,并且由于信道拆分操作而引入了一些不灵活的问题。蒸馏特征由具有许多冗余参数的 3×3 卷积滤波器生成。此外,特征细化管道(沿着 PRM 的右分支)与通道拆分操作耦合在一起,因此很难仅对该管道使用标识连接。接下来,我们将重新思考信道拆分操作,并给出一个新的 PRM 等效架构来解决上述问题。

如图 2b 所示,3×3 卷积后接通道拆分层可以解耦为两个 3×3 卷积层 DL 和 RL。 DL 层负责生成蒸馏特征,RL 是进一步处理粗特征的细化层。整个结构可以描述为
在这里插入图片描述

上面的等式描述了每组split操作可以看作是两个并发工作的卷积层。我们将这种新架构称为 IMDB-R,它比原来的 IMDB 更加灵活。它对PRM的工作原理有了更清晰的认识,从而使我们能够获得更多关于如何设计更高效的SR模型的线索。

3.3 残差特征蒸馏块Residual feature distillation block

受IMDB重新思考的启发,在本节中,我们引入了残差特征蒸馏块(RFDB ) 比 IMDB 更轻巧、更强大。在图 2 中,我们可以看到信息蒸馏操作实际上是由一个 3×3 卷积以固定比例压缩特征通道来实现的。然而,我们发现使用 1×1 卷积进行通道缩减更有效,就像在许多其他 CNN 模型中所做的那样。如图 2c 所示,左侧的三个卷积被替换为 1×1 卷积,这显着减少了参数量。最右边的卷积仍然使用 3×3 核。这是因为它位于 RFDB 的主体上,必须考虑空间上下文才能更好地细化特征。为了清楚起见,我们将这些外部连接称为特征蒸馏连接(FDC)。

尽管有上述改进,我们还在网络中引入了更细粒度的残差学习。为此,我们设计了一个浅层残差块 (SRB),如图 2d 所示,它由一个 3×3 卷积、一个恒等连接和激活单元组成。 SRB 可以在不引入任何额外参数的情况下受益于残差学习。原始 IMDB 仅包含中级残差连接,这些连接对于网络而言过于粗糙,无法从残差连接中获益最多。相比之下,我们的 SRB 使更深的残差连接,即使是轻量级的浅层 SR 模型也能更好地利用残差学习的力量。我们使用建议的 RFDB 来构建我们的残差特征蒸馏网络(RFDN),这将在下一节中进行描述。

在这里插入图片描述

3.4 框架

我们使用与IMDN [10]相同的框架,如图1所示,残差特征蒸馏网络(RFDN)由四部分组成:
第一个特征提取卷积,多个堆叠残差特征蒸馏块(RFDBs),特征融合部分和最后的重建块。

具体来说,初始特征提取是通过 3×3 卷积实现的,以从输入 LR 图像生成粗特征。给定输入 x,这个过程可以表示为
F0 = h(x) (5)
其中 h 表示粗特征提取函数,F0 是提取的特征。

RFDN的下一部分是多个RFDB以链式方式堆叠,逐步细化提取的特征。这个过程可以表示为
Fk = Hk(Fk−1),k = 1,…,n (6)
其中 Hk 表示第 k 个 RFDB 函数,Fk−1 和 Fk 表示输入特征和输出特征分别是第 k 个 RFDB。经过 RFDB 的逐步细化,所有的中间特征都由一个 1×1 的卷积层组装而成。
然后,使用一个 3×3 的卷积层来平滑聚合后的特征,如下所示
在这里插入图片描述

其中 Concat 是沿通道维度的串联操作,Hasemble 表示 1 × 1 卷积,后跟 3 × 3 卷积,Fassemble 是聚合特征。

最后,通过重建生成SR图像,如下所示
y = R(Fassemble + F0) (8),
其中R表示重建函数,y表示网络功的输出。重建过程仅包括 3 × 3 卷积和非参数亚像素操作。

我们的 RFDN 的损失函数可以用
在这里插入图片描述

其中HRFDN表示我们提出的网络的函数,θ表示RFDN的可学习参数和||.||1 是 l1 范数。 ILR 和 IHR 分别是输入 LR 图像和相应的真实心率图像。
在这里插入图片描述

4 实验

4.1 数据集和指标

根据之前的工作 [17,32,11,1,10],我们使用最近流行的数据集 DIV2K [24] 来训练我们的模型。 DIV2K 数据集包含 800 张高质量的 RGB 训练图像。为了进行测试,我们使用了五个广泛使用的基准数据集:Set5 [2]、Set14 [27]、BSD100 [19]、Urban100 [9] 和 Manga109 [20]。我们使用峰值信噪比 (PSNR) 和结构相似性 (SSIM) [26] 来衡量超分辨率图像的质量。与现有作品 [12,22,17,34,32,1,11,10] 一样,所有值都是在从 RGB 通道转换的 YCbCr 通道的 Y 通道上计算的。

4.2 实现细节

我们通过向下生成训练 LR 图像- 在 MATLAB 中使用双三次插值对具有缩放因子(×2、×3 和×4)的 HR 图像进行采样。截至撰写本文时,IMDN 尚未发布训练代码。为了重现 IMDN 论文中报告的结果,我们使用了与原始论文不同的训练设置。更多细节将在第 4.5 节中讨论。在本文中,我们从 LR 图像中随机裁剪 64 个大小为 64 × 64 的块作为每个训练小批量的输入。我们通过随机水平翻转和 90 度旋转来扩充训练数据。我们通过设置 β1 = 0.9、β2 = 0.999 和 ε = 10−8 来使用 ADAM 优化器训练我们的模型。学习率初始化为 5 × 10−4,每 2 × 105 minibatch 更新减半。在训练最终模型时,×2 模型是从头开始训练的。模型收敛后,我们将其用作其他规模的预训练网络。消融研究中的所有模型都是从头开始训练的,以节省训练时间。我们在本文中实现了两个模型,分别命名为 RFDN 和 RFDN-L。 RFDN 使用 48 个信道,而 RFDN-L 使用 52 个信道来获得更好的重建质量。我们在 RFDN 和 RFDN-L 中都将 RFDB 的数量设置为 6。这些网络是通过使用 PyTorch 框架和 NVIDIA 1080Ti GPU 实现的。

4.3 模型分析

消融研究

在这里插入图片描述

为了评估所提出的特征蒸馏连接(FDC)和浅层残差块(SRB)的重要性,我们设计了四个块,分别堆叠为SR网络的主体部分(图1)。这四个块如图 3 所示,评估结果如表 1 所示。比较表 1 的前两行,我们可以发现 SRB 提高了性能(例如 PSNR:+0.12dB,SSIM:+0.0024 for Manga109) 而不引入任何额外的参数。在比较最后两行时,我们也可以观察到类似的改进,这表明浅层残差块的有效性。通过添加 FDC,base 方法的性能得到了大幅提升,例如 Manga109 的 PSNR 从 30.28 提高到 30.47(+0.19dB)。多亏了 FDC 和 SRB,我们的 RFDB 明显优于基块。

在这里插入图片描述

蒸馏率调查

我们调查了表 2 中特征蒸馏连接的蒸馏率。不同的蒸馏率表示特征蒸馏连接中不同数量的输出通道。如表 2 最后一行所示,当蒸馏率增加时,PSNR 和 SSIM 的增长趋势在每个数据集上是不同的。总的来说,0.5 的蒸馏率在 SR 性能和参数数量之间有一个很好的折衷,我们的 RFDN 和 RFDN-L 中采用它作为最终的蒸馏率。

模型复杂性分析

图 4 描述了 PSNR 与Set5×4 ​​数据集上的参数。图 4 中描述的模型包括 DRRN [22]、LapSRN [14]、VDSR [12]、MemNet [23]、IDN [11]、CARN-M [1]
和 IMDN [10]。在评估轻量级模型时,模型参数的数量是要考虑的关键因素。从表 3 中,我们可以观察到,与参数较少的最先进的轻量级模型相比,我们的 RFDN 实现了相当或更好的性能。如图 4 所示,虽然 IMDN 与之前的方法(例如 MemNet 和 IDN)相比取得了显着改进,但它的参数比大多数轻量级模型都多。相比之下,我们的 RFDN 使用更少的参数实现了比 VDSR、MemNet、IDN 和 IMDN 更好的性能。当使用更多特征通道时,我们的 RFDN-L 在保持适度模型大小的同时取得了比 RFDN 更好的结果。为了更全面地了解模型的复杂性,我们还在图 5 中展示了 Set5 × 4 数据集上 PSNR 与 Mult-Adds 的比较。正如我们所见,我们的 RFDN 和 RFDN-L 在使用时实现了比 IMDN 更高的 PSNR更少的计算。 IMDN 在 AIM 2019 约束超分辨率挑战 [30] 的参数和推理轨道中获得第一名,因此我们在 FPS 方面将我们的 RFDN 与 IMDN 进行比较。我们的 RFDN (44 FPS) 具有与 IMDN (49 FPS) 相当的推理速度,同时更准确、更轻便。此外,我们的方法比 IMDN 的计算量更少,可以节省更多的能量。
在这里插入图片描述

4.4 与现有技术的比较

我们将所提出的 RFDN 与各种轻量级 SR 方法在×2、×3 和×4 尺度上进行比较,包括 SRCNN [4] 、FSRCNN [5]、VDSR [12]、DRCN [13]、LapSRN [14]、DRRN [22]、MemNet [23]、IDN [11]、SRMDNF [31]、CARN [1] 和 IMDN [10] .表 3 显示了五个基准数据集的定量比较。我们可以发现提议的 RFDN 可以比 IMDN 做出更好的权衡。我们的 RFDN 使用 534/541/550K 参数进行×2/×3/×4 SR 时,可以使用最先进的方法获得可比或更好的结果。通过使用稍微更多的参数,我们的 RFDN-L 在大多数定量结果中取得了最好的结果,尤其是在大比例因子上。

在这里插入图片描述

4.5 关于实验设置

如第 4.2 节所述,我们在训练模型时使用略有不同的实验设置。为了更清楚地了解我们的改进RFDN,我们在相同的实验设置下从头开始训练RFDN和IMDN [10]。表 4 显示了五个基准数据集的性能比较。我们的RFDN在所有数据集上都优于IMDN,无论是PSNR还是SSIM,参数都少得多,这证明了我们的RFDN网络设计的改进确实提高了图像SR的性能。
在这里插入图片描述

4.6 针对AIM20挑战的增强型RFDN

如表5所示,我们的增强型RFDN(E-RFDN)在AIM 2020高效超分辨率挑战赛中获得了第一名[29]。具体来说,我们将RFDB中的CCA层替换为ESA块[18],并在E-RFDN中使用了4个这样的增强型RFDB(E-RFDB)。E-RFDN 中的功能通道数为设置为 50,特征蒸馏速率为 0.5。在E-RFDN训练过程中,从HR图像中随机裁剪大小为256×256的HR补丁,并将小批量大小设置为64。E-RFDN模型通过使用Adam优化器最小化L1损失函数来训练。初始学习率设置为 5 × 10−4,每 200 个时期减半。在1000个epoch之后,L2损失用于微调,学习率为1×10−5。DIV2K和Flickr2K数据集用于训练E-RFDN模型。我们在表 5 中包括了前五种方法,即” 测量卷积层所有输出的元素数量。与 AIM 2019 约束 SR 挑战赛中排名第一的方法 IMDN [28] 相比,我们的方法在运行时、参数、FLOP 和激活方面提供了显着的收益。更多细节和重用可以在 [2

5 结论

本文综合分析了轻量级图像超分辨率的信息提炼机理。然后,我们重新思考信息多蒸馏网络(IMDN),并提出更轻量级和灵活的特征蒸馏连接(FDC)。为了进一步提高超分辨率性能,我们还提出了将身份连接与一个卷积块合并的浅残差块(SRB)。通过使用浅残余块和特征蒸馏连接,我们构建了残差特征蒸馏网络(RFDN),以实现快速轻量级的图像超分辨率。大量实验表明,所提出的方法在定量和定性上都取得了最先进的结果。此外,我们的模型具有适度数量的参数和多个添加,因此可以轻松移植到移动设备上。

  • 26
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
残差块(Residual Block)是深度学习中的一种重要的网络结构,用于解决深层神经网络训练过程中的梯度消失和梯度爆炸问题。在TensorFlow中,可以通过自定义层或使用现有的库来实现残差块。 一个典型的残差块由两个主要部分组成:主路径(Main Path)和跳跃连接(Skip Connection)。主路径是指一系列的卷积层、批归一化层和激活函数层,用于提取输入数据的特征。跳跃连接是指将输入数据直接添加到主路径的输出上,以便在后续层中传递原始输入的信息。 以下是一个简单的残差块的TensorFlow实现示例: ```python import tensorflow as tf class ResidualBlock(tf.keras.layers.Layer): def __init__(self, filters, strides=1): super(ResidualBlock, self).__init__() self.conv1 = tf.keras.layers.Conv2D(filters, kernel_size=3, strides=strides, padding='same') self.bn1 = tf.keras.layers.BatchNormalization() self.relu = tf.keras.layers.ReLU() self.conv2 = tf.keras.layers.Conv2D(filters, kernel_size=3, strides=1, padding='same') self.bn2 = tf.keras.layers.BatchNormalization() self.downsample = tf.keras.Sequential([ tf.keras.layers.Conv2D(filters, kernel_size=1, strides=strides), tf.keras.layers.BatchNormalization() ]) def call(self, inputs, training=False): residual = inputs x = self.conv1(inputs) x = self.bn1(x, training=training) x = self.relu(x) x = self.conv2(x) x = self.bn2(x, training=training) if inputs.shape[-1] != x.shape[-1]: residual = self.downsample(inputs) x += residual x = self.relu(x) return x ``` 在这个示例中,我们定义了一个继承自`tf.keras.layers.Layer`的`ResidualBlock`类。在`__init__`方法中,我们定义了残差块的各个层,包括卷积层、批归一化层和激活函数层。在`call`方法中,我们实现了残差块的前向传播逻辑,包括主路径和跳跃连接的计算。 使用残差块时,可以将多个残差块堆叠在一起构成深层网络。这样可以有效地解决梯度消失和梯度爆炸问题,并提高网络的性能和训练效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值