Spatial Transformer Network流程的理解

前期阅读博客  详细解读Spatial Transformer Networks

                       卷积神经网络结构变化——Spatial Transformer Networks

                       双线性插值

STN只要结构就是三个:localisation net、grid generator、sampler

总述一下工作流程:先是用localisation net回归出仿射矩阵的6个参数,注意这个仿射矩阵是计算坐标的不是计算像素值的。

                                 接着从目标图像  像  原图像映射。此时也是坐标映射。比方说选定目标图像的一个坐标a,需要知道这个坐标                                   的像素值是什么。那么就用localisation 学到的仿射矩阵,计算出坐标a在原图像中的对应坐标是哪个,这里设                                   为坐标b。如果这个坐标b是整数,比方说[2,3],那么就意味着坐标a就是与坐标b相对应,则目标图像中坐标a                                   的像素值就是原图像中坐标b的像素值。

                                 如果,计算出所有的坐标b都是整数的话,其实就不需要grid  generator和sampler做什么了。可现实偏偏很骨                                   感,计算出坐标b是小数居多。比方说是[1.6, 2.4]

Spatial Transformer Network流程的理解_第1张图片

 

就是说,LayerL中a22的坐标进行仿射计算,结果得到了[1.6, 2.4]那这个时候就不清楚这个a22到底是对应layerL-1中的哪个点的像素值了。

所以,引入了grid generator和sampler。就拿这个Layer L中的a22举例。仿射表换后计算出是[1.6, 2.4],这时候grid generator计算出与[1.6, 2.4]最近的四个点,那就是在Layer L-1层中的a12、a13、a22、a23四个点。之后用双线性插值计算出Layer L中a22对应的像素值。也就是说,双线性插值是拿像素值来进行计算的,得到的自然也就是像素值。

 

所以,就是sampler采样,grid generator生成网格,双线性插值计算出对应的像素。

 

个人理解,如有错误,欢迎指正。

你可能感兴趣的:(Spatial Transformer Network流程的理解)