Spatial Transformer Networks 论文详解及代码

Spatial transformer networks

  • 背景
  • 论文解析
  • 代码

背景

卷积神经网络在多种图像类中的任务表现出色,但有些图像类的任务需要对图像进行几何变换,需要实现一种可微的网络,使能对卷积网络中的特征图或寻常的图像(都是矩阵,没有数学上的区别)进行几何变换。

论文解析

Spatial Transformer Networks 论文详解及代码_第1张图片

以U表示输入(特征图或寻常的图像),V表示输出(转换后的特征图或寻常的图像)。三步策略

  1. Localisation Newwork
    一个自定义的回归网络。其输入为U,输出为变换所需要的参数 θ \theta θ。如仿射变换的输出即为6维。

  2. 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为变换后的网格坐标;
    这是图像领域常用的方案,是为了避免输出出现空洞和重叠。

  3. 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

你可能感兴趣的:(笔记,tensorflow,深度学习)