需要两个先验知识:
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