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

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{(f12n1+n1f22n2+n2f32)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)+aimin(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} θminn1i=1nF(Ysi;θ)Xi22

如何利用 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倍的训练数据。

在这里插入图片描述

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
加速基于相似度模型匹配——使用即时相似度保留哈希算法 摘要: 模型匹配是软件工程领域中的一个重要问题。使用相似度匹配方法可以有效地处理模型匹配问题,但是这种方法在大规模模型匹配时存在计算复杂度高的问题。为了解决这个问题,我们提出了一种基于即时相似度保留哈希算法的加速相似度匹配方法。该方法通过将模型元素映射到哈希表中的桶中,实现了快速的相似度计算。我们在两个实际项目中进行了实验,结果表明,我们的方法可以有效地提高相似度匹配的速度,同时保持与传统相似度匹配方法相同的匹配精度。 关键词:模型匹配、相似度匹配、哈希算法、加速 Abstract: Model matching is an important problem in the field of software engineering. Similarity-based matching methods can effectively handle model matching problems, but they suffer from high computational complexity when dealing with large-scale model matching. To address this issue, we propose an accelerated similarity-based matching method based on on-the-fly similarity preserving hashing. This method achieves fast similarity calculation by mapping model elements into buckets in a hash table. We conducted experiments on two real projects, and the results show that our method can effectively improve the speed of similarity matching while maintaining the same matching accuracy as traditional similarity matching methods. Keywords: Model matching, similarity-based matching, hashing algorithm, acceleration
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cpp编程小茶馆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值