Spatial Transformer Networks

需要两个先验知识:

1.attention的实现原理:在没有额外监督信息的情况下,attention怎么实现对关键部位的注意

2.如何通过矩阵操作来实现图片的仿射变换

整体结构:

stn包含三个模块:

1.Localisation net
用来预测仿射变换需要的6个参数,实质上就是一个全连接最后输出6个值的普通卷积网络
2.Grid generator
坐标映射,将输出的特征图V上的规则空间网格G通过第一步中学习到的参数Tθ映射回输入的特征图U
这里G可以理解为V上的所有点的集合(这里只讨论单通道图片),Tθ(G)是U上的一些点,不一定是全部。

 如上图(图取自原论文)(a)中,Tθ(G)指的就是U上所有点,因为是恒等变换,而绝大多数情况是(b)这种情况,Tθ(G)指的是U上一部分点(绿点部分)

 (s=source,源域,,t=target,目标域)

这一步的工作就是为了求出U中需要参与映射的点的坐标

3.Sampler
将2中求得的U中参与映射的点映射到V上
用双线性插值处理小数问题
 
思想跟attention很像

原论文:https://arxiv.org/pdf/1506.02025.pdf

pytorch代码:https://github.com/pytorch/tutorials/blob/master/intermediate_source/spatial_transformer_tutorial.py

代码解读(略):http://studyai.com/pytorch-1.4/intermediate/spatial_transformer_tutorial.html

李宏毅视频:https://www.bilibili.com/video/BV1xb411C7Qi?p=5

优秀bolg:https://blog.csdn.net/qq_39422642/article/details/78870629

为什么选用双线性插值:https://zhuanlan.zhihu.com/p/46751261

原文地址:https://www.cnblogs.com/jiangnanyanyuchen/p/12755424.html