Spatial Transformer Networks 论文解读

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模块主要有三部分构成,如下图所示:
Spatial Transformer Networks 论文解读_第1张图片

(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)的效果最好,可以对弹性变形进行较好的变换,降低分类网络的难度,提高了识别准确率。
Spatial Transformer Networks 论文解读_第2张图片

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

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

你可能感兴趣的:(STN,spatial,transformer,Human,Pose,Estimation)