zoukankan      html  css  js  c++  java
  • DL论文

    题目:Accurate Image Super-Resolution Using Very Deep Convolutional Networks(2016CVPR)

        摘要:文中提出了一种高精度处理单幅超分辨(HR)图像的方法。用了很深的卷积网络inspired by 用于处理ImageNet 分类的VGG-net。发现提高网络深度可大幅提高精度。但是,网络越深,收敛速度成了问题。文中给出了提高训练效率的方法:仅学习residuals使用非常高的学习速率(比SRCNN高10e4倍)。并且比现有方法变现更优异。

        关键词:residual image、residual learninggradient clipping、SRCNN、receptive field感受野(information used for reconstruction)

    1.介绍

    1)文中解决了给定一幅LR(低分辨)图像用来生成HR(高分辨)图像的问题,通常指的是single image super-resolution(SISR)。SISR在CV中使用广泛,都是些需要细节的图像处理。早期的方法包括interpolation(插值法):bicubic interpolation、Lanczos resampling,更多有力的方法利用statistical image priors或者internal patch recurrence。2)

    2)目前,许多学习方法应用于建立从LR到HR的映射模型。

        具体方法:Neighbor embedding:interpolate the patch subspace。

                      Sparse coding:use a learned compact dictionary based on sparse signal representation

                      Random forest and CNN:提高精度

         之前论文有方法:SRCNN就是用来学习从LR到HR的mapping in a end-to-end manner。SRCNN特点是不需要任何engineered features。虽然SRCNN成功将深度学习技术引入到SR问题,但是局限有三:依赖于context of small image regions、训练收敛太慢、网络仅仅适于single scale。

    3)我们提出一种加速收敛方法:residual-learning CNN,高学习速率。因为LR和HR图像share the same information to a large extent,那么model the residual image是有好处的,因为这个residual就是HR和LR的不同之处。我们提出的网络结构适于输入输出高度相关!并且我们的学习速率比SRCNN快10e4倍,这得益于residual-learninggradient clipping

    2.相关工作

    1)SRCNN代表了深度学习处理SR方法的当前水平。先分析对比这种方法。SRCNN文章:Image super-resolution using deep convolutional networks(TPAMI,2015)

    2)在1)中的论文中,某些情况下深度模型表现更差,1)论文作者认为深度模型不给力。但是本文作者程加强深度可提高表现。并成功提高深度到20weight layers、receptive field 更大(41*41)。

    3)Training比较:SRCNN直接在HR图像建模。一幅HR可分解为低频信息(对应于LR图像)和高频信息(residual image 或 image details)。输入输出图像享有相同的低频信息。这表明SRCNN有两个目的:将输入送至最后一层并重建residuals。carry the input to the end类似于auto-encoder(自动编码器)做的事情。大量的时间用于训练自动编码器,所以学习其他部分(image detail)的收敛速率大幅下降。相比而言,我们的网络直接在residual image建模,更快更精确

    4)Scale比较:和其它SR处理方法一样,SRCNN针对single scale factor训练,即特定的scale。因此再来一个新的scale就得训练一个新模型,这是繁琐低效的。我们提出来的网络有效处理各种scale的SR问题,表现还不错。此外,我们的输入输出size一样,这通过pad zeros every layer during traing。而SRCNN输出size比输入小。最后,我们的所有网络层训练速率一样,而SRCNN不同层速率不同为的是实现稳定的收敛。

    3.提及的方法

    1)采用d层网络,除去第一层(输入图像)和最后一层(图像重建),其它层类型都一样:64filter:3*3*64,filter操作3*3区域大小通过64通道。网络接收interpolated LR图像为输入来预测图像细节。对图像细节建模常用来处理SR问题。本文论证了对image detail(residuals)建模的好处。可问题是非常深的网络特征映射的size会在每次卷积操作后变小。例如:(n+1)*(n+1)的输入,感受野为(n*n)时,输出为1*1.许多SR方法都用邻居像素来推断中心像素,中心-邻居关系在邻居像素提供许多constraints时有效,对于许多处在图像边缘的像素,这种关系并不一定成立。此外,需要邻居区域很大时此法也无效。我们的解决方法:在卷积之前补零(pad zeros)使得feature maps(特征映射)尺寸一样。事实证明这还挺有效,边缘像素也被正确预测了。

    2)Residual-Learning 

         在SRCNN中,网络必须保留所有输入细节,输出由所有学到的特征生成,因为有许多weight layers,形成了许多首尾相接的关系,并且需长期的存储记忆,这会导致vanishing/exploding gradients(梯度消失/爆炸)问题。所以提出解决方案:residual learning。以为输入输出图像很相似,我们定义residual image r=y-x.损失函数为1/2||r-f(x)||2。其中f(x)为网络预测。损失层由三个输入:residual estimate、network input(ILR image)、ground truth(HR image)。训练:利用基于反向传播的mini批梯度方法来优化回归目标函数。训练由权重衰减来正则化。

    3)High Learning Rates for Very Deep Networks

          训练深度网络可能在有限时间内无法收敛。SRCNN没有成功实现大于三层weight layers时的良好表现,原因很多,可能是它们在收敛之前停止了训练过程。很显然,增加学习速率可以加速训练,但是仅仅提高速率可能导致梯度消失/爆炸。所以我们提出可调节的梯度抑制来控制最大化学习速率。即下文4)。

    4)Adjustable Gradient Clipping

          Gradient Clippiing是一项常用在recurrent neural networks(周期神经网络?)的技术。但是,貌似它只能限于训练CNNs。

    5)Multi-Scale

          因为非常深度的网络可以提高性能,更多的参数需要用于定义一个网络,典型的,一个网络如果可以应用于任意scale,那么存储和恢复一个网络很方便。所以我们也训练一个multi-scale网络。

           

  • 相关阅读:
    Django 的 CSRF 保护机制
    操作系统下spinlock锁解析、模拟及损耗分析
    .Net中的并行编程-1.路线图(转)
    [leetcode] 小心成环
    [leetcode] 题型整理之图论
    [leetcode] 提醒整理之进制
    [leetcode] 题型整理之二叉树
    [leetcode] 题型整理之查找
    [leetcode] 一些会的
    [leetcode] 题型整理之排序
  • 原文地址:https://www.cnblogs.com/king-lps/p/6136969.html
Copyright © 2011-2022 走看看