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 上坐标周围的四个点决定, 一般采用双线性差值的方式

双线性差值公式如下

Experiments

Distorted MNIST

Details

Street View House Numbers Details

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

Thought

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

就是使用来说,

  1. Localisation Network 的学习率设置很重要, 太大容易不收敛, 推荐为主网络的学习率 1e-3到 1e-5之间.
  2. Localisation Network不要用 imagenet pretrain 的参数初始化, 没有随机初始化的容易收敛而且性能也差些, 猜测原因是 pretrain 的参数关注的是抽象的语义特征, 而仿射变换参数的预测关注的几何位置特征, 二者不匹配
  3. 文中 Localisation Network 的卷积核设置都比较大

STN(Spatial Transformer Networks)的更多相关文章

  1. 深度学习方法(十二):卷积神经网络结构变化——Spatial Transformer Networks

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.机器学习技术感兴趣的同学加入. 今天具体介绍一个Google ...

  2. 论文笔记:空间变换网络(Spatial Transformer Networks)

    2015, NIPS Max Jaderberg, Karen Simonyan, Andrew Zisserman, Koray Kavukcuoglu Google DeepMind 为什么提出( ...

  3. (转载)理解Spatial Transformer Networks

    理解Spatial Transformer Networks 转载于:知乎-SIGAI 书的购买链接 书的勘误,优化,源代码资源 获取全文PDF请查看:理解Spatial Transformer Ne ...

  4. [论文理解] Spatial Transformer Networks

    Spatial Transformer Networks 简介 本文提出了能够学习feature仿射变换的一种结构,并且该结构不需要给其他额外的监督信息,网络自己就能学习到对预测结果有用的仿射变换.因 ...

  5. Spatial Transformer Networks(空间变换神经网络)

    Reference:Spatial Transformer Networks [Google.DeepMind]Reference:[Theano源码,基于Lasagne] 闲扯:大数据不如小数据 这 ...

  6. spatial transformer networks 这篇论文

    大致看了看这个paper, 很novel. 我的观点: 在traditional convolutional neural netwoks 中,我们通常会depend 于 extracting fea ...

  7. stn,spatial transformer network总结

    对整篇paper的一个总结:https://blog.csdn.net/xbinworld/article/details/69049680 github:1.https://github.com/D ...

  8. Spatial Transformer Networks

    参考:http://blog.csdn.net/xbinworld/article/details/69049680 论文的关键在理解这句话: 先通过V中坐标(xtarget,ytarget)以此找到 ...

  9. Spatial Transformer Network

    https://blog.csdn.net/yaoqi_isee/article/details/72784881 Abstract: 作者说明了CNN对于输入的数据缺乏空间变换不变形(lack of ...

随机推荐

  1. LeetCode 第70题动态规划算法

    导言 看了 动态规划(https://www.cnblogs.com/fivestudy/p/11855853.html)的帖子,觉得写的很好,记录下来. 动态规划问题一直是算法面试当中的重点和难点, ...

  2. opencv---(腐蚀、膨胀、边缘检测、轮廓检索、凸包、多边形拟合)

    一.腐蚀(Erode) 取符合模板的点, 用区域最小值代替中心位置值(锚点) 作用: 平滑对象边缘.弱化对象之间的连接. opencv 中相关函数:(erode) // C++ /** shape: ...

  3. ASP.NET webform总结

    一.asp.net中的内置对象1.Page对象属性:isPostBack 回传 返回bool类型通过url访问就是首次加载,通过控件事件访问页面就是回传.二.页面的执行过程 a.每次访问页面,或访问页 ...

  4. Python 从入门到进阶之路(一)

    人生苦短,我用 Python. Python 无疑是目前最火的语言之一,在这里就不再夸他的 NB 之处了,本着对计算机编程的浓厚兴趣,便开始了对 Python 的自学之路,并记录下此学习记录的心酸历程 ...

  5. Java 中 PO 与 VO 的区别

    什么是PO PO(Persistence Object 持久化对象)是直接跟持久层数据库打交道的java Bean (model,entity,bean等叫法都是可以的),里面除了私有的成员变量之外, ...

  6. 50行Python代码实现视频中物体颜色识别和跟踪

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 机器学习与统计学 PS:如有需要Python学习资料的小伙伴可以加 ...

  7. Java每日一面(Part1:计算机网络)[19/10/13]

    作者:晨钟暮鼓c个人微信公众号:程序猿的月光宝盒 1.说说TCP三次握手 1.0 在此之前,什么是TCP? ​ TCP(传输控制协议) ​ 1.面向连接的,可靠的,基于字节流的传输层通信协议 ​ 2. ...

  8. javaWeb核心技术第十篇之Filter

    Web中有三大组件(需要配置web.xml) servlet:服务器端的小程序. Filter(过滤器):运行在服务器,对请求的资源进行过滤,对响应进行包装. 经典案例: 自动登录,网站全局编码,非法 ...

  9. CSAPP 3 程序的机器级表示

    1 本章总述 1) 通过让编译器产生机器级程序的汇编表示, 学习了编译器及其优化能力, 以及机器.数据类型和指令集; 2) 学习了程序如何将数据存储在不同的内存区域中 -- 程序开发人员需要知道一个变 ...

  10. Data Management Technology(5) -- Recovery

    Recovery Types of Failures Wrong data entry Prevent by having constraints in the database Fix with d ...