zoukankan      html  css  js  c++  java
  • STN(Spatial Transformer Networks)

    url: https://arxiv.org/abs/1506.02025
    year:2015

    blog:
    https://kevinzakka.github.io/2017/01/10/stn-part1/
    https://kevinzakka.github.io/2017/01/18/stn-part2/

    code:
    https://github.com/kevinzakka/spatial-transformer-network

    Introduce

    卷积神经网络定义了一类特别强大的模型,但仍然缺乏对输入数据进行空间不变的能力。在这项工作中,引入了一个新的可学习模块,即空间变换器(Spatial Transformer),它允许对网络内的数据进行明确的空间操作。 这种可微分模块可以插入到现有的卷积体系结构中,使神经网络能够主动进行特征图的空间变换,无需对优化过程进行任何额外的监督或修改。文中展示了STN 的使用可以使模型学习到对平移,缩放,旋转和更通用的变形的不变性,从而在几个基准测试和包含许多变换的任务中产生了SOTA 的性能。

    Architecture

    Localisation Network: 用于生成仿射变换的参数
    Grid Generator: 输出 Feature Map 的网格坐标是固定的, 但是每个坐标上的值是多少呢? 为了解决这个问题, 首先, 我们需要找到输出 Feature Map 与输入 Feature Map 坐标之间的映射关系, 找到映射关系后, 那么输出Feature Map某个坐标的值由对应输入Feature Map的坐标上的值来填充, 如下图所示(看图即可, 不用管文字)

    Sampler: 由于从输出 Feature Map 网格坐标映射到输入 Feature Map上的坐标值可能是小数, 如下图. 那么输出 Feature Map 在该坐标点上的值由对应输入 Feature Map 上坐标周围的四个点决定, 一般采用双线性差值的方式
    -w450
    -w450

    双线性差值公式如下

    Experiments

    Distorted MNIST

    Details

    Street View House Numbers Details

    -w637

    All networks are trained from scratch with SGD and dropout, with randomly initialized weights, except for the regression layers of spatial transformers which are initialized to predict the identity transform.

    (STCNN Single): a spatial transformer immediately following the input
    (ST-CNN Multi): where the localization networks are all two layer fully connected networks with 32 units per layer

    key value
    base learning rate 1e-2
    learning rate for localization network a tenth of the base learning rate
    weight decay 5e-4
    dropout 0.5
    conv[N, w, s, p] conv[batch_size, window, stride, padding]
    max[s] a s × s max-pooling layer with stride s
    fc[N] a fully connected layer with N units

    CNN-baseline
    conv[48,5,1,2]-max[2]-
    conv[64,5,1,2]-conv[128,5,1,2]-max[2]-
    conv[160,5,1,2]-conv[192,5,1,2]-max[2]-
    conv[192,5,1,2]-conv[192,5,1,2]-max[2]-
    conv[192,5,1,2]-fc[3072]-fc[3074]-fc[3074]

    localizaton network
    conv[32,5,1,2]-max[2]-conv[32,5,1,2]-fc[32]-fc[32]

    Fine-Grained Classification Details

    -w887

    Thought

    当前动作识别中, 有些检测框框的并不准, 而且一些动作不需要关注全局信息就可以判断, 将 STN 当做特征检测器使用.

    就是使用来说,

    1. Localisation Network 的学习率设置很重要, 太大容易不收敛, 推荐为主网络的学习率 1e-3到 1e-5之间.
    2. Localisation Network不要用 imagenet pretrain 的参数初始化, 没有随机初始化的容易收敛而且性能也差些, 猜测原因是 pretrain 的参数关注的是抽象的语义特征, 而仿射变换参数的预测关注的几何位置特征, 二者不匹配
    3. 文中 Localisation Network 的卷积核设置都比较大
  • 相关阅读:
    高阶函数 map
    高阶函数_filter
    sort和sorted方法的使用
    一个函数作为另外一个函数的参数
    匿名函数
    jenkins+Xcode+蒲公英实现ipa自动打包发布全攻略
    iOS 画贝塞尔曲线 连续曲线 平滑曲线 曲线图表
    基于WebRTC实现iOS端音频降噪功能
    苹果ios音频的回声消除处理
    iOS实现录音功能
  • 原文地址:https://www.cnblogs.com/nowgood/p/stnspatial-transformer-networks.html
Copyright © 2011-2022 走看看