首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Spatial Transformer Networks 论文解读

  • 25-03-03 21:22
  • 3592
  • 6834
blog.csdn.net

paper title:Spatial Transformer Networks
paper link: https://arxiv.org/pdf/1506.02025.pdf
oral or demo video:https://www.youtube.com/watch?v=T5k0GnBmZVI (symposium)
tutorial:https://www.youtube.com/watch?v=SoCywZ1hZak (Hung-yi Lee)
github: https://github.com/kevinzakka/spatial-transformer-network
conf & anthor:15NIPS, Max Jaderberg et al. (DeepMind)
arXiv submit v1:2015.06.05

主要内容:
文章主要介绍了Spatial Transformer(ST)模块,可以在网络中对输入进行变换,ST的变换作用于整张图像或特征图上,包括缩放、裁剪、旋转和非刚性变换。包含ST模块的网络不仅可以在图像中选择最相关(relevent/attenttion)的区域,还可以将这些区域变换到一个标准的pose,使得后面的网络层的识别变得简单。ST可以用标准的反向传播进行训练,在网络中插入ST层后仍可以进行端到端的训练。

网络结构:
1.Spatial Transformer Module
ST模块主要有三部分构成,如下图所示:
STN module

(1)localization network
这个部分是一个生成变换参数 θ \theta θ 的网络,可以是卷积网络或者是全连接网络,输入的是feature map,输出的是一个变换矩阵 θ \theta θ ; 如果变换是仿射变换,那么 θ \theta θ 一个由6个值构成的2x3的矩阵;对于一个batch来说,输出就是[Bx2x3]的形状;网络训练的时候,对于localization network这一部分的初始化,将weight全部设置为0,bias设置为numpy.array([[1.0,0,0],[0,1.0,0]]),也就是设置为一个等变变换;随着训练的进行,不断调整weight和bias,学习到所需的变换矩阵。

(2)grid generator
这个部分是根据输入的图像或feature map和变换矩阵 θ \theta θ 来生成需要的输出的图像或feature map;输出的尺寸可以和输入相同,也可以不同,不同即作了一个缩放; 例如输入的尺寸是WxH(这里只考虑图像平面,channel和batch维度同理),输出尺寸保持不变,根据得到的变换 θ \theta θ ,如输出feature map上的一个坐标为(3,4)的点映射到输入feature map上坐标为(2.7,6.5)的点上;

(3)sampler (bilinear interpolation)
上一步通过变换映射得到的点的坐标是小数,实际在feature map上是不存在的;所以需要通过采样(插值)的方式计算其对应的值;文章中使用双线性插值,保证了可微,可以用反向传播进行训练。

2.Spatial Transformer Network
在CNN中插入ST模块即可构成STN, ST模块可以插入在任意位置,任意数量。ST模块可以让网络在训练过程中如何主动地对feature map进行变换以帮助减小网络损失。STN网络具体对输入feature map进行怎样的变换就是由localization network中学习到的这些网络权重来决定的。

论文实验和结果:
1.Distort MNIST
该实验中分别使用FCN,CNN,ST-FCN,ST-CNN在distort MNIST数据集上进行分类实验,结果如下。从结果中可以看出ST-FCN的结果与CNN的结果相当,STN具有空间不变性;另外TPS(thin plate spline)的效果最好,可以对弹性变形进行较好的变换,降低分类网络的难度,提高了识别准确率。
Distort MNIST result

2.Street view house number
在街景门牌号数据集上,通过在CNN中插入ST模块,也取得了比当时最好成绩还要好的结果,并且网络模型简单,没有使用复杂的技巧和多模型策略,详细结果如下:
street view house number result

3.fine-gained classification
论文中还做了一个细粒度的鸟类识别的实验,使用Inception作为基础的网络,然后添加了2或4个并行的ST模块,作用于输入图像上,用来对“attention”进行建模,然后得到的结果合并后在送入softmax分类器,具体如下:
fine-gained classification network structure
实验中结果如下图。实验中发现不同的ST模块具有了不同的part detector的特性,如下图中红色的狂“专注”鸟的头部,绿色的狂“专注”鸟的身体,在没有监督信息的情况下,仅通过数据驱动STN自己发现并学习到了part detector!
fine-gained classification result
(文章图片均来自原论文)

注:本文转载自blog.csdn.net的JerryZhang__的文章"https://blog.csdn.net/jerryzhang__/article/details/100703368"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top