STN:Spatial Transformer Networks

1.Abstract

卷积神经网络缺乏对输入数据保持空间不变的能力,导致模型性能下降。作者提出了一种新的可学习模块,STN。这个可微模块可以插入现有的卷积结构中,使神经网络能够根据特征图像本身,主动地对特征图像进行空间变换,而不需要任何额外的训练监督或优化过程.

2. 灵感
CNN能够学习平移不变性,以及隐式的学习旋转不变性。
现在就使用这个attention model ,为网络设计一个显式的处理模块,专门处理各种变换。

关于平移不变性 ,假设某个物体移动了很小的范围,经过采样后,它的输出可能和没有移动的时候是一样的,这是 CNN 可以有小范围的平移不变性的原因

3.网络框架
STN:Spatial Transformer Networks_第1张图片STN:Spatial Transformer Networks_第2张图片

4参数预测:Localisation net
4.1实现平移变换
STN:Spatial Transformer Networks_第3张图片4.2实现缩放变换

STN:Spatial Transformer Networks_第4张图片4.3实现旋转变换
STN:Spatial Transformer Networks_第5张图片4.4裁剪变换
剪切变换相当于将图片沿x和y两个方向拉伸,且x方向拉伸长度与y有关,y方向拉伸长度与x有关,用矩阵形式表示前切变换如下:
STN:Spatial Transformer Networks_第6张图片
5 Grid generator
5.1 实现坐标映射

输出的图片(i,j)的位置上,要对应输入图片的哪个位置
STN:Spatial Transformer Networks_第7张图片
左图没有实现左标映射,是恒等变化。
右图是实现坐标映射
5.2 仿射变换关系
从目标图片------->原图片
STN:Spatial Transformer Networks_第8张图片左图是一些像素点,右图是目标,目标图的方框是确定的。
一开始右边的方框是没有图的,只有坐标,为了确定从左图拿过来的小方块应该放在哪里,需要遍历右边这个方框的坐标,然后再决定应该放在哪个位置。每次从左边拿过来的方块是不固定的,而右边待填充的方框却是固定的,所以从目标图片------->原图片的坐标映射关系。

6.STN用处
1.STN可作为一种独立的模块可以在不同网络结构的任意节点插入任意个数。
2.STN具有运算速度快的特点,它几乎没有增加原网络的运算负担。
3.同一个网络层中也可以插入多个STN来对于多个物体进行不同的空间变换。往往同一个STN模块仅用于检测单个物体并会对其他信息进行剔除。同一个网络层中的STN模块个数在一定程度上影响了网络可以处理的最大物体数量。

ST模块可以方便的嵌入到CNN网络中,利用非线性差值将输入U和输出V进行仿射变换得到映射关系,从而利用网络反向传播优化参数,达到数据在空间位置上的最优值。

你可能感兴趣的:(深度学习,transformer,深度学习,人工智能)