【论文笔记2_超分辨】(IDN)Fast and Accurate Single Image Super-Resolution via Information Distillation Network

在这里插入图片描述


文章链接:(CVPR 2018)https://arxiv.org/abs/1909.11856v1
代码链接:https://github.com/Zheng222/IDN-Caffe



Abstract

近年来,深卷积神经网络(CNNs)在单图像超分辨率方面取得了令人瞩目的进展。然而,随着网络深度和宽度的增加,基于CNN的超分辨率方法在实际应用中面临着计算复杂度和内存消耗的挑战。为了解决上述问题,我们提出了一种深而紧凑的卷积网络,直接从原始低分辨率图像重建高分辨率图像。

总得来说,该模型由三部分组成,分别是特征提取块、串联在一起的信息蒸馏块重建块。一个蒸馏Block内包含有一个增强单元(enhancement unit )和一个压缩单元(compression unit),可以有效地提取局部长路径特征和局部短路径特征。

具体地说,所提出的增强单元将两种不同类型的特征混合在一起,并且压缩单元为序列块提取更多有用的信息。此外,由于每层滤波器数目相对较少,且使用群卷积,因此该网络具有执行速度快的优点。实验结果表明,该方法在时间性能上优于现有(2018)的state-of-the-art 方法。



1. Introduction

首先,文章回顾了下现有的SR方法,主要分为:基于插值、基于重建的方法和基于学习(example-based)的方法这三种。其中,前两种方法在放大倍数较大时表现不佳,所以最近主要以后面一种方法为主。部分现有基于学习的方法:

  • VDSR(CVPR, 2016)
  • DRCN(CVPR, 2016)
  • RED(NIPS, 2016):对称跳过连接、encoder-decoder
  • DRRN(CVPR, 2017)

现有模型存在的问题:

  1. 现在的为了追求性能,网络越来越深/宽,计算开销和内存消耗越来越大,没法在移动或嵌入式设备上应用;
  2. 如VDSR、DRCN等传统卷积网络采用了级联网络的策略(cascaded network topology)有这使得每一层的特征图都无差别得向后传递。Hu等人通过实验指出,如果能自适应地调整通道数,可以进一步提升网络性能。

在这里插入图片描述



2. Network Structure

在这里插入图片描述
该信息蒸馏网络IDN由特征提取块(FBlock)、串联了多个的信息蒸馏块(DBlocks)重建块(RBlock) 这三部分组成。



2.1 特征提取块(FBlock)

特征提取部分由两个 3 × 3 3\times3 3×3 Conv组成,其中Conv层后跟的激活函数为LeakyReLU。用公式表示如下:

B 0 = f ( x ) \begin{aligned} B_0=f(x) \end{aligned} B0=f(x)


2.2 信息蒸馏块(DBlocks)

信息蒸馏块是整篇文章的重点,主要由增强单元压缩单元组成。在网络中,经过浅层特征提取之后,有n个信息蒸馏块串联在一起,其中第 k k k个信息蒸馏块的输出 B k B_k Bk用公式表示为:

B k = F k ( B k − 1 ) , k = 1 , 2 , … , n \begin{aligned} B_k=F_k(B_{k-1}), k=1,2,\dots,n \end{aligned} Bk=Fk(Bk1),k=1,2,,n


2.2.1 增强单元(Enhancement unit)

在这里插入图片描述

增强单元内部也是分为两个模块。第一个模块由3个 3 × 3 3\times3 3×3的Conv+LeakyReLU组成。第 k k k个增强单元的模块1如下所示:

P 1 k = C a ( B k − 1 ) , k = 1 , 2 , … , n \begin{aligned} P^k_1=C_a(B_{k-1}) , k=1,2,\dots,n \end{aligned} P1k=Ca(Bk1),k=1,2,,n

其中, B k − 1 B_{k-1} Bk1为上一个块的输出, C a C_a Ca是这3个卷积操作。

接着,将输出在通道维度进行切片,其中前 1 / s 1/s 1/s用于和输出concat在一起,剩下的 1 − 1 / s 1-1/s 11/s继续送往下面的3个Conv+LeakyReLU。
R k = C ( S ( P 1 k , 1 / s ) , B k − 1 ) , P 2 k = C b ( S ( P 1 k , 1 − 1 / s ) ) , \begin{aligned} R^k=C(S(P^k_1,1/s), B_{k-1}),\\ P^k_2=C_b(S(P^k_1,1-1/s)) , \end{aligned} Rk=C(S(P1k,1/s),Bk1),P2k=Cb(S(P1k,11/s)),


值得注意的是,这两个卷积块中的输出通道数 D i , i = 1 , … , 6 D_i,i=1,\dots,6 Di,i=1,,6 分别存在以下的关系: D 3 − D 1 = D 1 − D 2 = d D 6 − D 4 = D 4 − D 5 = d D 4 = D 3 \begin{aligned} D_3-D_1=D_1-D_2=d\\ D_6-D_4=D_4-D_5=d\\ D_4=D_3 \end{aligned} D3D1=D1D2=dD6D4=D4D5=dD4=D3


最后,将两者的输出做element-wise相加:
P k = R k + P 2 k , \begin{aligned} P^k=R^k+P^k_2, \end{aligned} Pk=Rk+P2k,


2.2.2 压缩单元(Compression unit)

压缩单元其实就是 1 × 1 1\times1 1×1的Conv,从而降低通道数起到“压缩”的效果。



2.2 重建块(RBlock)

见Figure. 2最后一的紫色块,重建块为 17 × 17 17\times17 17×17的反卷积层。


2.3 element-wise相加

最后,将重建出来的与经过bicubic的LR做element-wise相加,输出为最终SR结果。


3. Experiments

网络设置部分,IDN采用看4个信息蒸馏块DBlocks,并且分别设超参数 D 3 = 64 、 d = 16 、 s = 4 D_3=64、d=16、s=4 D3=64d=16s=4

在这里插入图片描述
在这里插入图片描述



4. Conclusion

可以看到该IDN网络相比当前的state-of-the-art 方法在PSNR不输的情况下,运行速度上有了非常大的提升,几乎都有一到两个数量级的差距了。个人感觉其主要创新点在于Enhancement unit的那个slice操作,在通道层面对其进行切分,一部分继续输入卷积层,另一部分与只经过浅层特征提取的特征图concat,然后两者再做element-wise相加。至于“蒸馏”的实现主要是由 1 × 1 1\times1 1×1 Conv实现的 (有点疑惑,这也能叫蒸馏吗?欢迎留言讨论) ,效果上看的确不错但感觉在这一点上创新性并不大。




【其他超分辨方向论文】

【1】(RDN)Residual Dense Network for Image Super-Resolution

【2】(RCAN)Image Super-Resolution Using Very Deep Residual Channel Attention Networks

【3】(DRN)Closed-loop Matters: Dual Regression Networks for Single Image Super-Resolution

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值