• 论文笔记:FSRCNN


    n  本文是对SRCNN的改进,主要有三点:

      1.在网络最后一层添加转置卷积层,以后端升采样结构取代SRCNN的前端升采样结构。

      2.在非线性映射之前进行降维,mapping之后进行升维

      3.filter size变小,而mapping层增多。

    1.简介

      经典的SRCNN无法满足实时性要求。经过研究我们发现这是因为其存在两个固有的局限:

    1.由于SRCNN是先插值放大再输入网络,我们的计算复杂性就随着HR图像的尺寸平方次递增。例如,假如放大倍数为n,则计算代价是原始LR计算代价的$n^{2}$倍。如果网络直接学习LR图像,则可以加速$n^{2}$倍。

    2.第二个局限是非线性映射层。输入图像块被映射到高维LR特征空间中,然后非线性映射到高维HR特征空间中。映射层更宽可以大大提高精读,但也降低了计算速度。

      解决第一个问题的思路是,使用后端升采样的思路,在最后一层添加转置卷积,如此一来计算复杂度仅仅和LR图像的尺寸成正比。

      解决第二个问题的思路是,使得非线性映射处在低维特征空间中。

      我们的FSRCNN还有一个好处,就是针对不同的放大系数可以共享权值(转置卷积层以外的层的权值)

    本文主要贡献三点:1.重新设计的沙漏型网络结构。2.实时性处理。3.针对不同放大系数的快速训练及测试。

    2.Related Work

    2.1 SR

      SRCNN一经问世,迅速得到应用。有学者将其应用于具体领域,也有学者尝试更深的网络,也有学者使用基于先验知识的子网络代替SRCNN中第二层。但是都存在相应的问题。

    2.2 CNN加速

      很多学者试图加速CNN。我们的模型主要有两点区别:1. 其他学者专注于对现有训练好的模型的近似,而我们直接重新设计了网络结构。2.那些方法都是针对高层CV问题设计的,我们是针对底层问题。我们的模型不包括FC层,filter的近似值将严重影响结果。

    3.FSRCNN

    3.1 SRCNN

    不多介绍

    3.2 FSRCNN

      网络分为五部分:特征提取,压缩,非线性映射,扩充,转置卷积

      网络的参数很多。其中对不敏感参数预先设定一个值,敏感参数未设定。敏感参数往往代表一些重要影响因素。

    3.2.1 feature extraction

      这部分类似于SRCNN 中的第一层,不同之处在于SRCNN是从插值图像抽取特征,而此处是从原始LR图像抽取特征。

      超参设置:由于SRCNN中是从插值图像提取特征,f=9;而本文是从原始图像提取特征,因此设置f=5即可覆盖9*9的patch。另外设置c=1。现在只有filter数量$n_{1}$未设置,$n_{1}$也可以看作是LR特征的维度。$n_{1}$是第一个敏感向量。$n_{1}$记作d

      第一层被表示为Conv(5, d, 1)

    3.2.2 shrinking

      在SRCNN中,由于d很大,所以第二层计算复杂度相对大,这一现象也存在于高层视觉任务中。

      我们在第二层添上一个shrinking层来降维,使用的是1*1卷积,$n_{2}$=s.  s<<d.

      这一层被表示为Conv(1, s, d)

    3.2.3 Non-linear mapping

      非线性映射层的宽度和深度很关键。由于5*5卷积效果比1*1好,我们取一个折中3*3.为了保持好的表现,我们使用多个3*3卷积代替一个更宽的。

      这一层被表示为m*Conv(3, s, s)

    3.2.4 Expanding

      这是shrinking层的反向过程。如果直接使用低维特征生成HR图像,效果降低(Set5上降低了0.3dB)。因此我们先将特征维度进行扩充。

      这一层被表示为Conv(1, d, s)

    3.2.5 Deconvolution

      DeConv(9; 1; d)

      转置卷积的相比直接插值的好处在于参数可学习。观察图三可知,转置卷积中学习到的filter像第一层一样是有意义的。

      激活函数:使用PReLU以避免ReLU出现的dead feature

      $$f left( x_{i} ight) = max left( x_{i}, 0 ight) + a_{i}min left( 0, x_{i} ight)$$

      损失函数:MSE

      网络结构:Conv(5; d; 1)−PReLU −Conv(1; s; d)−PReLU −m×Conv(3; s; s)−PReLU − Conv(1; d; s) − PReLU − DeConv(9; 1; d)

        计算复杂度:

    3.3 和SRCNN的不同 

     

       主要体现在本表中。首先使用转置卷积代替插值,速度得到加快,效果得到微微提升。之后改造映射层,参数大幅减少,速度大幅提升,效果得到微微提升。最后改造特征提取层,嫌少了一些冗余的参数,速度得到提升,同时效果得到很微弱的提升。

    3.4 对于不同放大系数的优势

      本网络中,只有最后一层含有放大系数的信息。实验表明,针对不同放大系数,本网络的卷积层filter几乎相同。而在SRCNN中针对不同放大系数,filters是截然不同的。

    4.实验

    4.1 实验细节

      数据集:91image+General-100.  数据增强:scaling:0.9, 0.8, 0.7, 0.6, 2. ;旋转:90, 180, 270度旋转

      测试集验证集:测试集:Set5 , Set14 and BSD200  验证集:BSD200中抽取20张。

      

  • 相关阅读:
    Java 中最常见的 5 个错误
    在 Java EE 组件中使用 Camel Routes
    virtualenv 环境下 Nginx + Flask + Gunicorn+ Supervisor 搭建 Python Web
    [译]如何使用 Docker 组件开发 Django 项目?
    7 天玩转 ASP.NET MVC
    如何开发一个自己的 RubyGem?
    [译] 提高日志质量的 5 大技巧
    Ruby Profiler 详解之 stackprof
    总结 | 如何测试你自己的 RubyGem
    第十一节:讲述类的继承,数据库,文件的读写,图形绘制
  • 原文地址:https://www.cnblogs.com/cs-zzc/p/11722545.html
Copyright © 2020-2023  润新知