超分算法FSRCNNN:Accelerating the Super-Resolution Convolutional Neural Network 图像超分辨率重建

FSRCNN是SRCNN的优化版,通过改变网络结构,特别是引入沙漏形设计,降低了计算成本,提高了运行速度。FSRCNN在保持高质量图像恢复的同时,实现了在通用CPU上的实时性能。文章还提出了跨不同放大因子的快速训练和测试策略,加速比SRCNN超过40倍。
摘要由CSDN通过智能技术生成

FSRCNN是SRCNN的加强版,对其网络结构进行了优化,主要目的是降低计算成本,加快其运行速度。在保持良好性能的同时,在通用CPU上实现实时性能。此外,还提出了一种相应的转移策略,用于跨不同放大因子的快速训练和测试。
文章指引:https://arxiv.org/abs/1608.00367

在这里插入图片描述

Abstract

1、作者旨在加速现有的SRCNN,并提出了一种紧凑的沙漏形CNN结构,以更快更好地实现SR。
2、FSRCNN模型的速度比SRCNN提高了40倍以上,并且图像恢复质量更高。
3、作者还提出了一种转移策略,用于应对不同的放大因子的训练和测试。

1 Introduction

  超分辨率卷积神经网络(SRCNN)有着简单的网络结构和良好的恢复质量。但就实际应用而言,其运行速度远不能达到实时性的性能要求(24fps)。例如要将 240 × 240 240×240 240×240图像的放大3倍,SRCNN的速度约为 1.32 f p s 1.32fps 1.32fps。也就是说,至少要对SRCNN加速至少17倍,且在保证性能的前提下。当然不能仅通过减少参数来实现加速,这会严重影响图像恢复的质量。

  作者对网络结构进行深入研究时,发现限制其运行速度的两个固有限制。

  1. SRCNN在预处理时,需要使用双三次插值将原始LR图像上采样到所需大小(HR图像大小),作为网络的输入。计算复杂度与HR图像大小成正比。

  2. SRCNN采用较宽的映射层,映射精度可以显著提高,但代价是运行时间,会极大的拖慢网络速度。

针对第一个问题,作者直接将原始LR图像作为输入,并采用反卷积层来代替双三次插值,并将其放在网络的末端。那么网络的计算复杂度就与原始LR图像大小成正比。对于放大因子n,与插值LR图像进行卷积的计算成本将是对原始LR图像卷积成本的 n 2 n^2 n2 。加速度将非常显著,将快大约 n 2 n^2 n2倍。

针对第二个问题,作者在映射层的开头和结尾分别添加了一个收缩层和一个扩展层,以限制低维特征空间中的映射数量。此外,还将单个宽映射层分解为几个层。这个结构的整体形状看起来像沙漏,整体对称,两端厚,中间细。

  快速超分辨率卷积神经网络FSRCNN,其速度比SRCNN-Ex提高了40倍以上,性能甚至优于SRCNN-Ex。同时还提出了一个小型FSRCNN网络(FSRCNN-s),其恢复质量与SRCNN相似,但速度快17.36倍,可以在通用CPU上实时运行(24fps),且仍能获得优异的性能。在这里插入图片描述

  除了速度上的显著提高外,FSRCNN还可以在不同缩放因子的条件下快速训练和测试。具体地说,在FSRCNN中,所有卷积层(除反卷积层外)都可以由具有不同放大因子的网络共享。在训练期间,使用经过良好训练的网络,只需微调反卷积层,就能获得另一个放大因子的网络。在测试过程中,只需要做一次卷积运算,并使用相应的反卷积层将图像上采样到不同的尺度。

2 Methods

本节将详细介绍如何逐层重新构造FSRCNN网络以及各个参数的由来、复杂度对比。
在这里插入图片描述
首先我们回顾一下SRCNN的结构:
  SRCNN一共有三层卷积:特征提取层 - 非线性映射层 - 重建层
  原始图像LR经过预处理(双三次插值)作为网络的输入。
  特征提取层: 从输入中提取图像特征,表示为高维特征向量。采用的是采用卷积核大小为 c × f 1 × f 1 × n 1 c \times f_1 \times f_1 \times n_1 c×f1×f1×n1
  非线性映射层: 将特征向量非线性映射到另一组特征向量,加深网络深度 卷积核: n 1 × 1 × 1 × n 2 n_1\times 1 \times 1 \times n_2 n1×1×1×n2
  重建层: 聚集提取的特征,形成最终的输出图像。卷积核: n 2 × f 3 × f 3 × c n_2 \times f_3 \times f_3\times c n2×f3×f3×c
根据作者使用的参数,网络可以表示为 Conv(9,64,1) - ReLU - Conv(1,32,64) - ReLU -Conv(5,1,32)

FSRCNN
SRCNN主要有三个方面不同。
1. FSRCNN采用原始低分辨率图像作为输入,无需进行双三次插值。在网络末端引入反卷积层来完成上采样。
2. 将SRCNN中的非线性映射层替换为FSRCNN中的三个层,即收缩、映射和扩展。
3. FSRCNN采用更小的卷积核尺寸和更深的网络结构。

如图2所示,FSRCNN可分解为五个部分——特征提取、收缩、映射、扩展和反卷积
特征提取层: 同SRCNN一样,从输入中提取图像特征,表示为特征向量。不同之处在于输入图像是原始LR图像,
收缩层: 为了减少网络参数数量,提高计算效率,采用1×1卷积核
映射层: 将上一层的feature map进一步做非线性映射处理。为了保持良好性能,使用多个3×3层来替换单个宽层。
扩展层: 收缩层的逆作用,为了保持与收缩层的一致性,仍采用1×1卷积核,其数量与特征提取层相同。
反卷积层: 完成图像的上采样。由多种自动学习的上采样核组成,这些核共同产生最终的HR输出。(可以参看2.1节最后的图3)

前四部分是卷积层,最后一部分是反卷积层。
为了更好地理解,将卷积层表示为Conv(fi,ni,ci),将反卷积层表示为DeConv(fi,ni,ci
其中变量fi,ni,ci分别表示卷积核大小、卷积核数量和通道数量。
根据文章的参数设置网络表示为:(具体的参数设置会在下文说明原因)
Conv(5,d,1) - PReLU - Conv(1,s,d) - PReLU - m × \times ×Conv(3,s,s) - PReLU -Conv(1,d,s) - PReLU -DeConv(9,1,d)

2.1 Parameters

由于整个网络包含非常多的参数,提前为不敏感变量指定一个合理的值,并保持敏感变量未设置。
(当变量的微小变化可能显著影响性能时,称其为敏感变量。)
这些敏感变量总是代表SR中一些重要的影响因素,下面具体描述如何来确定每个参数。

特征提取: C o n v ( f 1 , n 1

  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值