【超分辨率】OverNet: Lightweight Multi-Scale Super-Resolution with Overscaling Network

论文名称:OverNet: Lightweight Multi-Scale Super-Resolution with Overscaling Network
论文下载地址:https://arxiv.org/pdf/2008.02382.pdf
论文代码地址:https://github.com/pbehjatii/OverNet-PyTorch


论文标题:
【超分辨率】OverNet: Lightweight Multi-Scale Super-Resolution with Overscaling Network_第1张图片


1.论文概述

  • OverNet被提出是为了解决以下几个问题:首先,网络深度和宽度的增加所带来的计算复杂度上的挑战。其次,对于不同的尺度需要专门训练对应尺度的模型,模型泛化能力差也增加了内存要求。

  • OverNet是一种轻量化的模型,尽管它的网络层数很多。在OverNet中主要做了如下方面的改进:

    1. 作者引入了一个轻量化的特征提取器。该特征提取器采用了一种新的递归结构,通过使用跳跃和密集连接来强制信息的有效复用。
    2. 为了最大化特征提取器的性能,作者提出了一种新的重建模块。该模块可以从超尺度(Overscaled)特征图中生成高精度的超分辨率图像。并且该模块可以作为一个独立结构应用到现有的其他SR方法上,以提升它们的性能。
    3. 作者引入一个多尺度损失函数来提高模型的跨尺度泛化能力。
  • 通过大量的实验表明,作者提出的模型优于其他最新的方法。同时模型的参数量和计算开销较小。
    【超分辨率】OverNet: Lightweight Multi-Scale Super-Resolution with Overscaling Network_第2张图片

2.论文提出的背景

现有的基于学习的SR方法大多具有如下缺点:

  • 网络深度和宽度的增加的同时给计算开销和内存带来了挑战。这使得现有网络很少的应用到实践中,尤其是移动设备和嵌入式设备。
  • 随着网络深度的增加,连续的非线性操作使得低级特征信息逐渐消失。这些低级特征信息却是网络重建高质量图像的关键。
  • 大多数网络将不同尺度因子视为独立的问题,为每个尺度训练单独的模型。这使得模型的跨尺度泛化能力较低,增加了计算开销。

基于上述的问题,作者提出了Overscaling Network(OverNet)。它主要由两个部分组成:一个轻量化的特征提取器和用于重建的超尺度模块(OSM)。

3.论文提出的方法

在这一节中将介绍OverNet的主要组成部分,OverNet的网络架构如图1所示:
【超分辨率】OverNet: Lightweight Multi-Scale Super-Resolution with Overscaling Network_第3张图片

  • Problem formulation:
      由于SR本身是一个ill-posed problem问题,所以,SR没有一个确定的最优解。但是我们可以通过参数 θ θ θ F \mathcal{F} F参数化( F \mathcal{F} F为LR到HR的映射函数),并在给定损失函数 L \mathcal{L} L的情况下找到可能的 θ θ θ来进行重建。
    θ ∗ = arg ⁡ min ⁡ θ ∑ L ( F ( I L R , θ ) , I H R ) ( 1 ) \boldsymbol{\theta}^{*}=\arg \min _{\boldsymbol{\theta}} \sum \mathcal{L}\left(\mathcal{F}\left(I^{L R}, \boldsymbol{\theta}\right), I^{H R}\right) \quad\quad\quad\quad\quad\quad\quad\quad (1) θ=argθminL(F(ILR,θ),IHR)(1)
      本文中 F \mathcal{F} F由两部分组成:(1)特征提取器 H \mathcal{H} H: h = H ( I L R , θ h ) \quad \mathbf{h}=\mathcal{H}\left(I^{L R}, \boldsymbol{\theta}_{h}\right) h=H(ILR,θh);   (2)overscaling模块 O \mathcal{O} O I ^ H R = O ( h , θ o ) \quad\hat{I}^{H R}=\mathcal{O}\left(\mathbf{h}, \boldsymbol{\theta}_{o}\right) I^HR=O(h,θo);其中 I ^ H R \hat{I}^{H R} I^HR即为重建的图像。

3.1特征提取器

作者提出了一个基于残差模块(Residual Blocks,RBs)的结构,并将该结构集成到了Local Dense Groups(LDGs)和Global Dense Group(GDG),如图1所示。

  • Residual Blocks:
      作者在这里提出了一种新的残差模块,而并不是使用标准的残差模块。在该模块中所使用的是更宽的低秩卷积。这些卷积扩大了非线性前的激活空间,使更多的信息通过它并减少了细节损失。为了使网络聚焦于更多的信息特征上,作者在这些卷积之后使用通道注意力机制来利用特征通道间的相互依赖性。如图所示:
    【超分辨率】OverNet: Lightweight Multi-Scale Super-Resolution with Overscaling Network_第4张图片
      受到早前研究的启发[29, 30] ,作者让模块学习一个标量乘法器 λ \lambda λ来平衡由身份映射(Identity map)和在残差模块中的激活操作所携带的信息量。假设 x i x_i xi x o x_o xo表示第 k k k个RB模块的输入和输出,则该RB模块的处理过程可以表示为:
    x o = λ o S E ( W A ( x i ) ) + λ i x i \mathbf{x}_{o}=\lambda_{o} S E\left(W A\left(\mathbf{x}_{i}\right)\right)+\lambda_{i} \mathbf{x}_{i} xo=λoSE(WA(xi))+λixi
  • Local and global dense groups:
      如图1所示,多个RB模块的组合形成一个Local Dense Group。在Local Dense Group内部中,一个RB模块的输入与它之前的所有RB模块的输出进行拼接,然后通过一个1x1的卷积进行融合。对LDG中的所有RBs重复这种递归操作。通过这种方式,我们可以以渐进地方式采用1x1的卷积层集合所有的局部信息。为了增加模型的容量,在Global Dense Group(GDG)中采用了一种相似的递归操作(观察图一可以发现,在GDG内,LDGs采用了上述一样的递归操作来提取特征),但是在GDG中引入了LDGs之间的跳跃连接。为了便于获取局部信息,网络的最终输出将收到所有LDGs输出(组成的)拼接(信息)。 因此,模型从多个层中获得特征。归因于这种多层表示和许多快捷连接操作,这种策略使得信息得以有效传播。受到MemNet的启发,在GDG的输出后使用一个1x1的卷积来自适应融合输出信息,因为直接的使用拼接所得的特征将极大地增加计算复杂度,这些分层特征被公式化为:
    f D = conv ⁡ 1 × 1 ( [ f 0 , … , f D − 1 ] ) \mathbf{f}_{D}=\operatorname{conv}_{1 \times 1}\left(\left[\mathbf{f}_{0}, \ldots, \mathbf{f}_{D-1}\right]\right) fD=conv1×1([f0,,fD1])
    其中, [ f 0 , … , f D − 1 ] \left[\mathbf{f}_{0}, \ldots, \mathbf{f}_{D-1}\right] [f0,,fD1]表示通过拼接LDGs输出产生的特征图。
      为了确保在重建步骤之前没有信息丢失,作者引入了长跳连接来获取原始信息并加强了从特征提取器的输出到第一个3x3卷积层的梯度反向传播(这里说的长跳连接是指连接在3x3卷积层之上的那条连接)。作者还引入了一个全局平均池化和一个1x1卷积,以便从聚合的信息中完全捕获通道相关的依赖性。重建步骤前的最终输出公式化为:
    h = λ 0 f D + λ 1 σ ( conv ⁡ 1 × 1 ( GAP ⁡ ( conv ⁡ 3 × 3 ( I L R ) ) ) ) \mathbf{h}=\lambda_{0} \mathbf{f}_{D}+\lambda_{1} \sigma\left(\operatorname{conv}_{1 \times 1}\left(\operatorname{GAP}\left(\operatorname{conv}_{3 \times 3}\left(I^{L R}\right)\right)\right)\right) h=λ0fD+λ1σ(conv1×1(GAP(conv3×3(ILR))))
    其中σ表示ReLU激活函数,GAP表示全局平均池化, λ 1 \lambda_{1} λ1 λ 2 \lambda_{2} λ2表示可学习参数。(起到和在RB模块中的标量乘法器一样的作用)

3.2 Overscaling模块

  在这里,作者假设Overscaling对相同像素产生多个值,这些值充当集成预测的作用,因此结合这些值来产生最终的图像时减少了噪声。
  作者假设这个网络处理的最大尺度因子为 N N N,首先生成最终图像的中间表示,这个中间表示由超尺度映射 H O H R H^{OHR} HOHR组成,其超尺度因子为 ( N + 1 ) (N+1) N+1(采用更高的尺度因子可以提升性能,但是会增加计算开销,所以作者将尺度因子设为N+1,在提升性能和增加开销之间做了权衡)。具体操作为:

  1. 给定从 I L R I^{LR} ILR中提取的特征h,作者使用一个3x3的卷积层对特征h进行处理,之后通过在[2]中提出的子像素卷积pixelshuffle将特征h提升(提升尺度)得到 H O H R H^{OHR} HOHR
    H O H R =  pixelshuffle  ( conv ⁡ 3 × 3 ( h ) ) H^{O H R}=\text { pixelshuffle }\left(\operatorname{conv}_{3 \times 3}(\mathbf{h})\right) HOHR= pixelshuffle (conv3×3(h))
  2. 将中间表示 H O H R H^{OHR} HOHR,用一个3x3的卷积处理,然后通过双三次插值下采样为目标尺度图像。
  3. 为了获得超尺度模块的最终输出,作者使用了连接原始 I L R I^{LR} ILR图像的第二个长跳连接并通过双三次插值将原始 I L R I^{LR} ILR图像上采样为目标图像,然后与第二步所得结果进行求和得到最终的HR图像。

整个过程可以由下式表示:
I ^ H R = bicubic ⁡ ↓ ( conv ⁡ 3 × 3 ( H O H R ) ) + bicubic ⁡ ↑ ( I L R ) \hat{I}^{H R}=\operatorname{bicubic}_{\downarrow}\left(\operatorname{conv}_{3 \times 3}\left(H^{O H R}\right)\right)+\operatorname{bicubic}^{\uparrow}\left(I^{L R}\right) I^HR=bicubic(conv3×3(HOHR))+bicubic(ILR)

3.3 多尺度损失

  作者提出了一个多尺度损失来优化整个网络。首先,选择有限个尺度因子 S = { s 1 … s n } S=\left\{s_{1} \ldots s_{n}\right\} S={s1sn},这些尺度因子都在网络目标的尺度区间内。一旦网络重建HR图像,则通过一系列双三次插值来获得目标尺度下的HR图像, I ^ s H R = bicubic ⁡ ↓ ( I ^ H R , s ) \hat{I}_{s}^{H R}=\operatorname{bicubic}_{\downarrow}\left(\hat{I}^{H R}, s\right) I^sHR=bicubic(I^HR,s)。因此,目标损失函数为:
L = ∑ s ∈ S ∣ I ^ s H R − bicubic ⁡ ↓ ( I H R , s ) ∣ \mathcal{L}=\sum_{s \in S}\left|\hat{I}_{s}^{H R}-\operatorname{bicubic}_{\downarrow}\left(I^{H R}, s\right)\right| L=sS I^sHRbicubic(IHR,s)
该损失函数仍然是L1损失。与单尺度训练相比,同时在不同目标尺度上使用这种多尺度损失的训练为模型提供了额外的监督。因此,该模型被强制学习如何生成具有高度代表性的overscaled映射,从中可以精确地恢复任意尺度的HR图像,从而加强了网络跨尺度的泛化能力。

参考文章
https://zhuanlan.zhihu.com/p/237758545
https://blog.csdn.net/weixin_42096202/article/details/107955195

你可能感兴趣的:(论文阅读笔记,图像处理,1024程序员节,论文阅读,深度学习,计算机视觉)