Spatial Transformer Networks(STN)-论文笔记
Posted Paul-Huang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spatial Transformer Networks(STN)-论文笔记相关的知识,希望对你有一定的参考价值。
Spatial Transformer Networks(STN)-论文笔记
- 论文: Spatial Transformer Networks
- 作者:Max Jaderberg Karen Simonyan Andrew Zisserman Koray Kavukcuoglu
- code1:https://github.com/oarriaga/STN.keras
- code2:https://github.com/kevinzakka/spatial-transformer-network
1. 问题提出
-
CNN在图像分类中取得了显著的成效,主要是得益于 CNN 的深层结构具有 : 平 移 不 变 性 、 缩 小 不 变 性 \\colorred平移不变性、缩小不变性 平移不变性、缩小不变性;还对缺失的 空 间 不 变 性 ( s p a t i a l l y i n v a r i a n c e ) \\colorred空间不变性(spatially\\;invariance) 空间不变性(spatiallyinvariance)做了相应的实验。
-
平
移
不
变
性
平移不变性
平移不变性主要是由于 Pooling 层 和 步长不为1的卷积层 的存在带来的。实际上主要是池化层的作用:
- 层越多,越深,池化核或卷积核越大,空间不变性也越强;
- 但是随之而来的问题是局部信息丢失,所以这些层越多准确率肯定是下降的,所以主流的CNN分类网络一般都很深,但是池化核都比较小,比如2×2。
-
缩
小
不
变
性
缩小不变性
缩小不变性主要是通过降采样来实现的。降采样比例要根据数据集调整,找到合适的降采样比例,才能保证准确率的情况下,有较强的空间不变性。
- 比如ResNet,GoogLeNet,VGG,FCN,这些网络的总降采样比例一般是 16或32,基本没有见过 64倍,128倍或者更高倍数的降采样(会损失局部信息降低准确率),也很少见到 2倍或者4倍的降采样比例(空间不变性太弱,泛化能力不好)。
-
平
移
不
变
性
平移不变性
平移不变性主要是由于 Pooling 层 和 步长不为1的卷积层 的存在带来的。实际上主要是池化层的作用:
-
空 间 不 变 性 ( s p a t i a l l y i n v a r i a n c e ) \\colorred空间不变性(spatially\\;invariance) 空间不变性(spatiallyinvariance)这些不变性的本质就是图像处理的经典手段:空间变换,又服从于同一方法:坐标矩阵的仿射变换。因此DeepMind设计了 S p a t i a l T r a n s f o r m e r N e t w o r k s \\colorredSpatial\\;Transformer\\;Networks SpatialTransformerNetworks(简称STN),目的就是显式地赋予网络对于以上各项变换(transformation)的不变性(invariance) .
–
2. 图像处理技巧
2.1 仿射变化
主要是要处理
(
2
×
3
)
(2\\times 3)
(2×3)的变换矩阵:
T
θ
=
[
θ
11
θ
12
θ
13
θ
21
θ
22
θ
23
]
(2.1)
\\mathcalT_\\theta = \\beginbmatrix \\theta _11 & \\theta _12 & \\theta _13 \\\\ \\theta _21 & \\theta _22 & \\theta _23 \\endbmatrix\\tag2.1
Tθ=[θ11θ21θ12θ22θ13θ23](2.1)
-
平移:
[ 1 0 θ 13 0 1 θ 23 ] [ x y 1 ] = [ x + θ 13 y + θ 23 ] (2.2) \\left[\\beginarrayccc 1 & 0 & \\theta_13 \\\\0 & 1 & \\theta_23 \\endarray\\right]\\left[\\beginarraylx \\\\y \\\\1 \\endarray\\right]=\\left[\\beginarrayl x+\\theta_13 \\\\y+\\theta_23 \\endarray\\right]\\tag2.2 [1001θ13θ23]⎣⎡xy1⎦⎤=[x+θ13y+θ23](2.2) -
缩放:
[ θ 11 0 0 0 θ 22 0 ] [ x y 1 ] = [ θ 11 x θ 22 y ] (2.3) \\left[\\beginarrayccc \\theta_11 & 0 & 0 \\\\0 & \\theta_22 & 0 \\endarray\\right]\\left[\\beginarraylx \\\\y \\\\1 \\endarray\\right]=\\left[\\beginarrayl \\theta_11 x \\\\\\theta_22 y\\endarray\\right]\\tag2.3 [θ1100θ2200]⎣⎡xy1⎦⎤=[θ11xθ22y](2.3) -
旋转:
对于旋转操作,设绕原点顺时针旋转 α \\alpha α 度,坐标仿射矩阵为:
[ cos ( α ) sin ( α ) 0 − sin ( α ) cos ( α ) 0 ] [ x y 1 ] = [ cos ( α ) x + sin ( α ) y − sin ( α ) x + cos ( α ) y ] (2.4) \\left[\\beginarrayccc \\cos (\\alpha) & \\sin (\\alpha) & 0 \\\\ -\\sin (\\alpha) & \\cos (\\alpha) & 0 \\endarray\\right]\\left[\\beginarraylx \\\\y \\\\1 \\endarray\\right]=\\left[\\beginarrayc\\cos (\\alpha) x+\\sin (\\alpha) y \\\\-\\sin (\\alpha) x+\\cos (\\alpha) y \\endarray\\right]\\tag2.4 [cos(α)−sin(α)sin(α)cos(α)00]⎣⎡xy1⎦⎤=[cos(α)x+sin(α)y−sin(α)x+cos(α)y](2.4)由于图像的坐标不是中心坐标系,通常需要做Normalization,把坐标调整到 [ − 1
以上是关于Spatial Transformer Networks(STN)-论文笔记的主要内容,如果未能解决你的问题,请参考以下文章
Spatial Transformer Networks(STN)-论文笔记
stn,spatial transformer network总结
论文笔记-5Spatial Transformer Networks(STN)
Spatial Transformer Networks(STN)-代码实现