• 常见的三种上采样方式


    引自:https://blog.csdn.net/u014451076/article/details/79156967

    bilinear
    双线性插值是目前在语义分割中用的比较多的一种方式,比如FCN中就是用的这种方法。
    这种方法特点是不需要进行学习,运行速度快,操作简单。只需要设置好固定的参数值即可,设置的参数就是中心值需要乘以的系数。
    一个简单的例子可以参考如下(来自互联网):

    接着,同样的道理,使用f(R1), f(R2)进行插值,推导出来f( P )就可以了.

    Deconvolution
    Deconvolution是目前争议比较多的方法,主要是名字上的争议,由于实现上采用转置卷积核的方法,所以有人说应该叫(transposed convolution),但是思想上是为了还原原有特征图,类似消除原有卷积的某种效果,所以叫反卷积(deconvolution). Caffe中叫deconvolution,这里就继续沿用这个名字.
    要理解deconv,要先了解conv的具体是实现方式,在实现过程中,为了使卷积运算更快的执行,通常转化为矩阵乘法进行处理(因为矩阵乘法有一些加速计算库)。卷积计算通常的两种实现方式是:在caffe中使用im2col的方法,在其他的地方使用toeplitz matrix(托普利兹矩阵)进行实现。这里指的反卷积,也叫转置卷积,它并不是正向卷积的完全逆过程,用一句话来解释:反卷积是一种特殊的正向卷积,先按照一定的比例通过补 [公式] 来扩大输入图像的尺寸,接着旋转卷积核,再进行正向卷积。

    unpooling

    也就是反池化,不需要学习,用的不是太多,参考论文Visualizing and Understanding Convolutional Networks,还有SegNet和DeconvNet
    简单原理:在池化过程中,记录下max-pooling在对应kernel中的坐标,在反池化过程中,将一个元素根据kernel进行放大,根据之前的坐标将元素填写进去,其他位置补0
    实现代码可以看SegNet的实现

  • 相关阅读:
    STDMETHOD (转)
    DirectX中的纹理映射相关技术 (转)
    (转)清空std::stringstream,联系到stream的clear()和清空
    (转载)MultiAnimation
    (转)SkyBox
    [转载]漫谈游戏中的阴影技术
    反射矩阵计算
    (转)COM组件里的AddRef()
    LINQ简记(2):重要概念
    继续聊WPF——自定义命令
  • 原文地址:https://www.cnblogs.com/lyp1010/p/13324169.html
Copyright © 2020-2023  润新知