论文笔记STN:Spatial Transformer Networks

CNN存在一个问题,即不存在空间不变性。空间不变性就是对input图像进行仿射变换,通过CNN得到的结果也是经过了相同的变换。尽管CNN中有max pooling层,但也只能实现很小范围内的的空间不变性。因此本文的Spatial Transformer就是为解决CNN空间不变性而提出的,它可以嵌在任意架构的CNN中,可以进行显式的空间变换。这个变换模块是可导的,因此可以进行反向传播;同时该module针对的是数据本身,因此也不需要任何额外的监督。

ST模块的示意图如下:

论文笔记STN:Spatial Transformer Networks

该模块主要是由三部分组成:

(1)Localisation Network:该模块主要是得到一组仿射变换的参数 θ \theta θ,是一个6维参数。该模块输入是特征图,输出为6d仿射变换参数,这个参数用于后续模块的空间变换;

(2)Parameterised Sampling Grid:将输出特征图中每个格点坐标,通过(1)中的仿射变换矩阵,对应回输入特征图的坐标上,如下列公式所示:
论文笔记STN:Spatial Transformer Networks

(3)Differentiable Image Sampling:步骤(2)采用仿射变换对应回输入feature map的坐标大部分都是小数(因为仿射矩阵参数基本是小数),所以对于每一个小数位置,采用附近四个整数格点的双线性插值来进行计算,而这个插值本身是可导的。

STN总的来说是一个可以随意嵌入到CNN里的一个模块,对于CNN精确度的提升有着较好的作用,并且效率较高。