【配准】空间变换网络Spatial Transformer Networks原理分析

 

说明:此文只分析STN层的原理。

STN由三个部分组成:

1、定位网络

生成空间变换参数,如二维仿射变换参数:a11,a12,a21,a22,t1,t2。

可以是任意的回归网络,如卷积网络,全连接网络等

2、栅格生成器  

由变换参数获取在输入特征图上面的采样位置。下面详细解释。

设U的shape为(H,W,C),对应于高、宽、通道数,我们想要变换之后的特征图为V,

V的shape为(H’,W’,C)。

首先我们根据V的尺寸定义一个H’*W’的栅格G,栅格上的每一个节点Gi就对应着变换后特征图V上对应像素的坐标(xit,yit)。

接下来我们要做的就是找到栅格上每一节点在输入特征图U上对应的坐标点(xis,yis),换句话说,就是对于输出特征图上的每个像素坐标(xit,yit),找到与之对应的输入特征图上的像素坐标(xis,yis),这个由矩阵乘法实现。

 

这样,栅格上每一个节点的位置就发生了扭曲生成了新的栅格,如下图。

            

3、采样器

按理说,对于每一个输出特征图的位置(xit,yit),已经找到了在输入特征图上对应位置(xis,yis),只需要将(xis,yis)上的像素值复制到(xit,yit)位置上就可以生成输出特征图了。但是呢,(xis,yis)大多数情况算出来都是小数,所以用插值算法进行重采样就无法避免了。

插值算法由很多,下面以双线性插值算法为例。

 

Vi代表输出特征图V上面坐标为(xit,yit)的像素灰度值,Ui代表输入特征图U上面坐标为(xis,yis)的像素灰度值。

当(xis,yis)为整数,最后两个max函数要么为0要么为1,因此Vi=Ui。

当(xis,yis)为小数,那么Vi就是(xis,yis)四邻域的加权和。

 

 

总结:

空间变换网络的原理并不复杂,简单来说就是生成变换参数,生成扭曲后栅格,插值得到输出图像。我认为容易弄错的地方在于栅格的生成,是栅格和插值算法决定了生成特征图的每个点是由输入特征图的哪些点插值得来的。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值