STN(Spatial Transformer Networks)空间转换网络

  • 个人笔记,补充知识部分为帮助理解
  • 补充知识点
    • 仿射变换与射影(透视)变换
      • 其实仿射变换和透视变换更直观的叫法可以叫做「平面变换」和「空间变换」或者「二维坐标变换」和「三维坐标变换」。如果这么命名的话,其实很显然,这俩是一回事,只不过一个是二维坐标(x,y),一个是三维坐标(x,y,z)。也就是:
      • 仿射变换:(6个参数)

        STN(Spatial Transformer Networks)空间转换网络_第1张图片

        STN(Spatial Transformer Networks)空间转换网络_第2张图片

      • 射影变换:(8个参数,a33是1)

        STN(Spatial Transformer Networks)空间转换网络_第3张图片

    • 双线性插值
      • https://blog.csdn.net/xbinworld/article/details/65660665
      • STN(Spatial Transformer Networks)空间转换网络_第4张图片

        STN(Spatial Transformer Networks)空间转换网络_第5张图片

  • CNN具有一定的空间不变性(因为卷积操作相当于是一种滑动滤波,输入小范围内的改变并不会有很大影响,池化也为不变性提供了容错率,及输入小范围改变后并不会影响输出,即,池化与卷积的层数越多,核越大,空间不变性越强,但这也会使局部信息丢失,所以这些层越多准确率肯定是下降的,所以主流的CNN分类网络一般都很深,但是池化核都比较小,比如2×2,这也是很多网络的总降采样比一般都是16或32,基本没有更大的(局部信息丢失),降采样比过小的话会出现空间不变性过弱,泛化能力不好(降采样比也要根据数据集中图像的size来调整))
  • STN是为了增强空间不变性的,CNN是尽力让网络适应物体的形变,而STN是直接通过 Spatial Transformer 将形变的物体给变回到正常的姿态(比如把字摆正),然后再给网络识别。
  • STN(Spatial Transformer Networks)空间转换网络_第6张图片

  •  Localisation Network (Localisation net决定输入所需变换的参数θ)
    • 以的feature map作为输入,以变换矩阵的元素作为输出的网络结构,变换矩阵可以为任意形式,对于仿射变换矩阵而言,为一个6参数矩阵。
    • 网络可以是以回归层为终止的多种网络结构,可以采用全连接结构也可以采用卷积结构。
  • Grid generator(Parameterised Sampling Grid ) (Grid generator通过θ和定义的变换方式寻找输出与输入特征的映射T(θ),即实现像素点坐标的对应关系)(类似于拼图)
    • (这部分的代码就是实现下面的公式)

      STN(Spatial Transformer Networks)空间转换网络_第7张图片

      STN(Spatial Transformer Networks)空间转换网络_第8张图片

  • Sampler(Differentiable Image Sampling)(Sample结合位置映射和变换参数对输入特征进行选择并结合双线性插值进行输出)
    • 经过变换后,肯定会得到小数坐标(原图片上的),为了可以反向传播所以采用了双线性插值的方式,从小数坐标得到整数坐标,从而找到原图片上的整数坐标。

 

部分截图来源于网上资源(地址忘记了,,,,)

如有侵权,烦请告知,会删除

你可能感兴趣的:(计算机视觉)