Accelerating the Super-Resolution Convolutional Neural Network

论文链接: Accelerating the Super-Resolution Convolutional Neural Network, ECCV2016

FSRCNN与SRCNN都是香港中文大学Dong Chao, Xiaoou Tang等人的工作。FSRCNN是对之前SRCNN的改进,主要在三个方面:一是在最后使用了一个反卷积层放大尺寸,因此可以直接将原始的低分辨率图像输入到网络中,而不是像之前SRCNN那样需要先通过bicubic方法放大尺寸。二是改变特征维数,使用更小的卷积核和使用更多的映射层。三是可以共享其中的映射层,如果需要训练不同上采样倍率的模型,只需要fine-tuning最后的反卷积层。

由于FSRCNN不需要在网络外部进行放大图片尺寸的操作,同时通过添加收缩层和扩张层,将一个大层用一些小层来代替,因此FSRCNN与SRCNN相比有较大的速度提升。FSRCNN在训练时也可以只fine-tuning最后的反卷积层,因此训练速度也更快。FSRCNN与SCRNN的结构对比如下图所示。

SRCNN和FSRCNN计算复杂度对比

SRCNN 的处理过程如下:

  1. 对输入图片利用双立方采样做上采样,使得其分辨率为目标分辨率
  2. 然后分别利用 9x9, 1x1, 5x5 的卷积来提高图片质量。其中 1x1 卷积是用来把低分辨率(LR)图像向量非线性映射为高分辨率 (HR) 图像向量.
    计算复杂度为:
    O { ( f 1 2 n 1 + n 1 f 2 2 n 2 + n 2 f 3 2 ) S H R } O\left\{\left(f_{1}^{2} n_{1}+n_{1} f_{2}^{2} n_{2}+n_{2} f_{3}^{2}\right) S_{H R}\right\} O{(f12​n1​+n1​f22​n2​+n2​f32​)SHR​}
    计算复杂度和HR图像大小成线性比例,SHR。HR图像越大,复杂度越高。

FSRCNN 包含如下五个主要处理步骤:

  1. 特征提取:利用一个 5x5 卷积代替 SRCNN 中的双立方差值
  2. 压缩:利用 1x1 卷积把特征层从 d 压缩为 s,其中 s 小于 d
  3. 非线性映射:多个 3x3 网络层代替单个的宽网络层
  4. 扩大: 1x1 卷积把特征层从 s 扩大为 d
  5. 反卷积: 利用 9x9 过滤器重建 HR 图像

以上结构就是 FSRCNN(d,s,m). 其计算复杂度如下:
O { ( 25 d + s d + 9 m s 2 + d s + 81 d ) S L R } = O { ( 9 m s 2 + 2 s d + 106 d ) S L R } O\left\{\left(25 d+s d+9 m s^{2}+d s+81 d\right) S_{L R}\right\}=O\left\{\left(9 m s^{2}+2 s d+106 d\right) S_{L R}\right\} O{(25d+sd+9ms2+ds+81d)SLR​}=O{(9ms2+2sd+106d)SLR​}

可见复杂度和 LR 图像大小成线性比例,SLR,所以它的复杂度小于 SRCNN

网络中激活函数是 PReLU. PReLU意为带参数的ReLu,目的是比 ReLU 更好。
PReLU:对于每个卷积层之后的激活函数,我们建议使用参数整流线性单元(PReLU)代替常用的整流线性单元(ReLU)。它们在负数部分的系数上是不同的。对于ReLU和PReLU,我们可以将一般激活函数定义为
f ( x i ) = max ⁡ ( x i , 0 ) + a i min ⁡ ( 0 , x i ) f\left(x_{i}\right)=\max \left(x_{i}, 0\right)+a_{i} \min \left(0, x_{i}\right) f(xi​)=max(xi​,0)+ai​min(0,xi​)

其中xi是第i个通道上激活f的输入信号,并且 ai是负数部分的系数。 对于ReLU,参数ai固定为零,但对于PReLU是可学习的。 我们选择PReLU主要是为了避免ReLU中零梯度引起的“死亡特征”。 然后我们可以充分利用所有参数来测试不同网络设计的最大容量。 实验表明,PReLU激活网络的性能更稳定。

代价函数是均方误差(MSE):
min ⁡ θ 1 n ∑ i = 1 n ∥ F ( Y s i ; θ ) − X i ∥ 2 2 \min _{\theta} \frac{1}{n} \sum_{i=1}^{n}\left\|F\left(Y_{s}^{i} ; \theta\right)-X^{i}\right\|_{2}^{2} θmin​n1​i=1∑n​∥∥​F(Ysi​;θ)−Xi∥∥​22​

如何利用 1x1 卷积对网络进行压缩和扩大

假设我们在不使用 1x1 卷积的情况下运行 5x5 卷积,如下所示

计算次数 = (14x14x48)x(5x5x480) = 112.9M

如果使用 1x1 卷积:

1x1 卷积计算次数 = (14x14x16)x(1x1x480) = 1.5M
5x5 卷积计算此时 = (14x14x48)x(5x5x16) = 3.8M
两者总共计算次数 = 1.5M + 3.8M = 5.3M,比只使用 5x5 足足少了 112.9M 次计算。
因此在两个卷积层之前使用 1x1 卷积来减少连接(参数)。通过减少参数,我们只需要更少的乘法和加法运算,最终加速网络。这就是 FSRCNN 比 SRCNN 快的原因。

如何利用多个 3x3 卷积实现非线性映射


如上图所示通过使用2层 3x3 滤波器来覆盖 5x5 滤波器的区域,让参数数量变少。

1层 5x5 滤波器的参数数量 = 5x5 = 25
2层 3x3 滤波器的参数数量 = 3x3+3x3 = 18
参数量减少了28%。而更少的参数意味着网络在训练的时候可以更快的收敛,并减少过拟合问题。

实验训练数据

训练集:之前传统SR method基本都在Set91上训练,但是对CNN来说,Set91并不够去训练大的网络结构。由于BSD500是jpeg格式,存在压缩所以也不适合做训练dataset。本文提出general-100 + Set91进行充当训练集。并且进行数据增强,1)downscale 0.9, 0.8, 0.7 and 0.6。 2) Rotation 90,180,270。因此我们将会得到20倍的训练数据。

(FSRCNN)_Accelerating the Super-Resolution Convolutional Neural Network——超分辨率(三)相关推荐

  1. Paper翻译:《A Novel Convolutional Neural Network Based Model for Recognition and Classification of App》

    论文名称:<A Novel Convolutional Neural Network Based Model for Recognition and Classification of Appl ...

  2. 论文翻译:2019_Speech Super Resolution Generative Adversarial Network

    博客作者:凌逆战 论文地址:基于GAN的音频超分辨率 博客地址:https://www.cnblogs.com/LXP-Never/p/10874993.html 论文作者:Sefik Emre Es ...

  3. 论文翻译:Speech Super Resolution Generative Adversarial Network

    博客作者:凌逆战 论文地址:https://ieeexplore.ieee.org/document/8682215 博客地址:https://www.cnblogs.com/LXP-Never/p/ ...

  4. 笔记:PoseCNN:A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes

    PoseCNN: A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes (Robotics: ...

  5. 卷积神经网络(Convolutional Neural Network, CNN)

    卷积神经网络(Convolutional Neural Network, CNN) 目录 卷积神经网络(Convolutional Neural Network, CNN) 概述: 结构: 卷积层:

  6. 论文笔记 Inter-sentence Relation Extraction with Document-level Graph Convolutional Neural Network

    一.动机 为了抽取文档级别的关系,许多方法使用远程监督(distant supervision )自动地生成文档级别的语料,从而用来训练关系抽取模型.最近也有很多多实例学习(multi-instanc ...

  7. 二值网络--Optimize Deep Convolutional Neural Network with Ternarized Weights and High Accuracy

    Optimize Deep Convolutional Neural Network with Ternarized Weights and High Accuracy IEEE Winter Con ...

  8. 二值网络--TBN: Convolutional Neural Network with Ternary Inputs and Binary Weights

    TBN: Convolutional Neural Network with Ternary Inputs and Binary Weights ECCV2018 本文的思路就是: 对 weight ...

  9. 模型加速--LCNN: Lookup-based Convolutional Neural Network

    LCNN: Lookup-based Convolutional Neural Network CVPR2017 https://github.com/ildoonet/tf-lcnn https:/ ...

最新文章

  1. linux shell编程语句if、case.
  2. 【深度】阿里巴巴万级规模 K8s 集群全局高可用体系之美
  3. vue点击切换类名_vue 新用户引导(vue-dirver)
  4. group by 的实现原理
  5. 图象关于y轴对称是什么意思_数学概念丨“图象”与“图像”是有区别的 ,你知道吗?...
  6. 面向过程和面向对象的本质理解
  7. 罗宾斯管理学13版pdf_罗宾斯管理学(第13版)笔记和课后习题(含考研真题)详解...
  8. python基础作业第五天
  9. HTTP缓慢拒绝服务攻击
  10. plc模拟器软件_举例说明 你的PLC和触摸屏为什么总是通讯不上?
  11. Xshell 6免费版
  12. 4016: 辉夜的夜空明珠
  13. 油管613万播放的星巴克3小时背景音乐无广告纯享版下载
  14. Linux中EOF用法
  15. 你是资讯控吗?——Web2.0智识管理简册
  16. 51nod lyk与gcd
  17. pandas数据分析模块(二)
  18. 警惕:暮光之城破晓2免费电影票骗局
  19. 十分钟了解vite如何支持react
  20. 大规模 C++ 编译性能优化系统 OMAX 介绍

热门文章

  1. 神经网络最本质的理论基础是什么?
  2. Lattice Diamond与modelsim联合仿真环境设置
  3. Camera2 openCamera 流程分析
  4. freeswitch被国外ip扫描,iptables解决办法
  5. 摒除GITHUB“祸害”,跟GITHUB说拜拜 Fcloud自由安全的栖息之地
  6. 火狐浏览器 : 获取安卓系统新版火狐浏览器(fenix).2021-02-19
  7. Amlogic S905Y4 机顶盒KM7
  8. 在python3中、下列输出变量a的正确写法是_大学生安全教育网课答案智慧树2020
  9. MEION:带通滤波器设计
  10. python女生就业前景好的专业_人工智能专业适合女生学吗 好不好就业