Spatial Transformer Network

本文深入探讨了Spatial Transformer Networks(STN)的概念与实现原理。STN作为一种可学习的网络模块,能够增强卷积神经网络对空间变化的鲁棒性,如物体在图像中的旋转和平移。文章详细介绍了STN的组成部分:定位网络、参数化采样网格和可微图像采样,并提供了代码链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

简介

网络结构

Localisation net

Parameterised Sampling Grid

Differentiable Image Sampling

结论

Coding

References


 

简介

卷积神经网络缺少对输入数据空间变化的鲁棒性,简而言之同样的物体假设在不同图片中存在旋转、平移

缩放等空间上的变化,也会对卷积神经网络的预测产生影响。在图像识别、物体定位、语义分割、动作识别等领域,增加对空间信息的鲁棒性都有助于提高最后的准确率。

尽管引入池化操作可以赋予我们的网络一定程度上对空间变化的鲁棒性,但池化操作其实是一个不理想的操作,因为它对丢弃原有feature map上的信息从而丢失原来的位置信息。其次,池化操作的感受野很小,能获得的全局信息也较少。

由此,作者们提出了Spatial Transformer Network,它是一种可学习的网络模块(可以通过反向传播优化参数),可以作为插件一样插入进任何已经存在的网络结构中,赋予网络对空间变化的鲁棒性。

网络结构

 

整个网络结构由三部分组成,其中输入为U,输出为V。

Localisation net

输入为feature map,经过一系列隐藏层后输出Spatial Transformation的参数,Spatial Transform会被应用到feature map

对于Localisation net的组成没有特别的要求,可以是全连接也可以是卷积,但在最后需要regression参数。对于仿射变化,可以知道参数是6维的

Parameterised Sampling Grid

对每个像素点进行采样,与localisation net所获得的spatial transformation参数结合可以知道输出feature map上的点在输入feature map上的对应点

然而经过计算后得到的源图像的坐标点可能是小数,而图像中点的坐标都是整数怎么办呢?

Differentiable Image Sampling

为了解决上述的问题,我们可以想到使用双线性插值来进行采样,当然也可以使用其他的采样方法,然而为了让梯度可以反向传播,使用的方法必须要可以对其参数进行求导。通过插值,我们可以改变最终输出V的大小,从而完成整个transformer

搬运一些公式。

结论

至此,其实整个网络已经结束了,看看它的效果吧

Coding

https://github.com/kevinzakka/spatial-transformer-network/blob/master/stn/transformer.py

整个代码逻辑很清晰和论文描述的过程一样分成三个部分,不再一一介绍。

References

https://arxiv.org/abs/1506.02025

https://kevinzakka.github.io/2017/01/10/stn-part1/

https://kevinzakka.github.io/2017/01/18/stn-part2/

https://blog.youkuaiyun.com/yaoqi_isee/article/details/72784881

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值