背景
卷积神经网络在多种图像类中的任务表现出色,但有些图像类的任务需要对图像进行几何变换,需要实现一种可微的网络,使能对卷积网络中的特征图或寻常的图像(都是矩阵,没有数学上的区别)进行几何变换。
论文解析
以U表示输入(特征图或寻常的图像),V表示输出(转换后的特征图或寻常的图像)。三步策略
-
Localisation Newwork
一个自定义的回归网络。其输入为U,输出为变换所需要的参数 θ \theta θ。如仿射变换的输出即为6维。 -
Parameterised Sampling Grid
这一步进行几何变换,不过是对输出坐标进行几何变换,得到输入的坐标;
以2D的仿射变换为例, x i s , y i s x_i^s, y_i^s xis,yis为输入的网格坐标, x i t , y i t x_i^t, y_i^t xit,yit为变换后的网格坐标;
这是图像领域常用的方案,是为了避免输出出现空洞和重叠。 -
Differentiable Image Sampling
这一步的核心是为了采样(插值)。
第二步生成的坐标可能不在网格顶点上,需要将这些坐标采样到网格顶点上。
V i c V_i^c Vic为输出的网格中 i i i的幅值,H为网格的高,W为网格的宽, U n m c U_{nm}^c Unmc为输入的幅值。
这是利用核对网格进行卷积进行采样的同意数学表达,不同的采样方式对应不同的数学公式。且理论上任意的卷积核都可以使用。
代码
github质量较高的代码:实现了 2D的仿射变换,双线性插值。不包含参数回归网络。
https://github.com/kevinzakka/spatial-transformer-network.git