Spatial Transformer Networks

Spatial Transformer Networks

一、基本问题和动机

文章一开始就提到过去的研究当中虽然卷积神经网络已经能够训练得到一个强大的分类模型对图像进行分类。然而,卷积神经网络等容易受到这些图像数据在空间上不具备空间不变性的特点的影响(即图像数据在空间上具有多样性)。

这篇文章提出了一种叫做spatial transformer network的网络模型,顾名思义该模型的主要作用是充当“空间转换器”,能够在不同的任务中“自适应”(无额外的监督学习)地对图像数据进行空间操作(spatial manipulation),包括缩放,裁剪,旋转,平移等其他非刚性转换(non-rigid transform)。由于该网络可以进行微分操作,所以可以将其任意嵌入到卷积神经网络中去且不会在优化过程中对该网络进行额外的训练监督和修改。

二、解决思路(详细)

Spatial Transformer Networks_第1张图片 

Spatial Transformer Network主要由三部分组成,分别是Localisation net ,Grid generaterSampler

1Localication net

作用:用来计算空间转换的参数

组成结构:若干个全连接层或者卷积层外加一个回归层

可以根据参数化的变化类型而变化,一般来说,二维仿射变换的6维的。回归层参数变化参数

(2)Grid generator

作用:得到input feature map U ∈ RH×W×C output feature map V ∈ RH0×W0×C的对应关系

假设 是一个二维仿射变换,则具体到每个点的点转换pointwise transformation是

其中是输出特征图V 中在规范网络的目标坐标,是输入特征图 U中定义采样点的源坐标

可以是attention,仿射,投影和plate spline变换

(3)Sampler

作用:根据U和 V 的对应关系生成最终的output map

根据Grid generator获得UV 的对应关系的每个坐标定义了input feature map的空间位置,然后可以使用一个采样核(sampling kernel)来获得输出 V 中每个像素对应的特殊值。

 

其中 Φx和 Φx是定义图像插值(例如双线性)的通用采样核(kernel) k() 的参数,是输入通道 c 中位置(n,m)处的值, Vic 是像素i的在通道 c 的位置处的输出值  注意,对于输入的每个通道进行相同的采样,因此每个通道以相同的方式进行转换(这保持了通道之间的空间一致性)。

三、结果

STN可以用标准的反向传播进行训练,可以空间转换器可以用标准的反向传播进行训练,允许对其注入的模型进行端到端的训练。

STN模块在模型中计算地非常快,并且不会损害训练速度,因此在使用时导致非常少的时间开销。

disorted mnistSVNH数据集实验中验证,STN可以将图像转换成为常规CNN模型更容易识别的feature maps,提高网络性能。

在使用并联多个transformer的STN来进行Fine-Grained Classification实验的时候,发现不同的transformer会识别不同的鸟的部位,如第三个图,red transformer 会对鸟的头部进行识别,green transfermer会对鸟的body进行识别,作者认为STN构成的STN-CNN网络可能以数据驱动方式而没有进行额外的监督学习对物体的不同部位进行学习。

 Spatial Transformer Networks_第2张图片


Spatial Transformer Networks_第3张图片 

 

 

 Spatial Transformer Networks_第4张图片

 

 

 

 

 

 

 

 

你可能感兴趣的:(计算机视觉)