dilated conv带孔卷积、pooling层提高感受野 反卷积 的理解

首先放链接:https://www.zhihu.com/question/54149221

首先,初次接触dilated conv带孔卷积是在deeplab网络结构里,做图像分割。

本科毕设首次接触图像分割,当时用的是caffe框架,fcn-8s实现。但是,它会把图像pooling5次,最终的特征图尺寸缩小了32倍,然后结合倒数后两层的信息(相当于尺寸扩大4倍了),然后再反卷积一下子扩大8倍至原始尺寸,这会导致信息损失的。。。(还有的是,防止缩小32倍后的特征图太小,会首先对输入图像padding很多0,扩大尺寸。这显然加进去了很多噪声啊。。。)所以为了避免以上损失,deeplab的结构是:pooling3次而已,尺寸缩小了8倍。但是接着问题又来了,pooling少了,感受野变小了(这个下面就有解释说啦~),所以,deeplab通过使用带孔卷积来保证感受野。具体原理,往下看:


pooling为什么可以提高感受野?

得这样理解:首先它第一个作用是降低feature map的尺寸,减少需要训练的参数;其次,因为有缩小的作用,所以之前的4个像素点,现在压缩成1个。那么,相当于我透过这1个点,就可以看到前面的4个点,这不就是把当前map的感受野一下子放大了嘛(我是这样理解的a。。。)。

所以就有以下结论:pooling降维减少参数量,并且增大感受野。

但是,在图像分割问题中,如fcn8s,pooling5次,降低32倍尺寸,然后结合前两层的信息(扩大4倍),再一下子扩大8倍(用resize),这会导致信息损失的。

因此,提出了dilated conv带孔卷积,解决保持感受野和保护图像尺寸间的互斥问题。

以下就来介绍dilated conv带孔卷积了:



看上面的两张图,已经说的蛮清楚了。。需要好好理解的地方是:带孔卷积并不是卷积核里带孔,而是在卷积的时候,跳着的去卷积map(比如dilated=2的孔卷积,就是隔一个像素点,“卷”一下,这就相当于把卷积核给放大了(3x3的核变成7x7的核,多出位置的weights给0就是。)这样就使得3x3的卷积核也能达到7x7卷积核的感受野(图1的(b))(因为它在原map上,确实9个点就跨越覆盖到了传统conv的49个像素点),也就扩大了感受野了,使得少一些pooling层也没关系。。。

要很明确的说一点就是:带孔卷积并不增加参数量!!!带孔卷积并不增加参数量!!!带孔卷积并不增加参数量!!! 对,3x3的依然是9个weights,它即使被“扩大”了,但是那些多出的点给的权值直接是0,是不需要被训练的。。。所以,它在提高感受野的同时还不增加参数量的负担,很不错了算是。。。。。。。。。。。。

也许你会说,那些weights给0的点的信息没卷到啊,,,,这个不用担心。设置好stride,慢慢一步步的滑过图像,这些之前weights被置0的点会在某个下一次的卷积操作中被卷到的。。。我关心的感受野,只是我这一次卷积得到的这个点,覆盖了原map中多少个像素点。。。嗯,我是这么理解的。


放我以前博文的一张手稿:http://blog.csdn.net/jiachen0212/article/details/78255074


当时其实没太理解,现在才有点清楚这到底是怎么操作的了。。。rate=4时候,隔3个像素点卷积计算一次(因为中间的这被隔的三个点对应到核里面去,weights值是0的,就相当于没对他们计算操作。。。)


再记一下deconv 和 dilated conv 的区别:(我基本是把知乎的内容照搬过来的。。。)

知乎关于反卷积的详细解答:https://www.zhihu.com/question/43609045/answer/132235276   我还没细看其实。。。。。。


这里重点理解反卷积deconv和普通卷积的stride> 1 可以增大感受野这两个概念:

首先deconv,stride<1,上面的栗子是0.5,那么如果是0.25,则是每两个像素间padding3个0像素值,然后再stride=1的去卷积,使得结果图像尺寸扩大4倍。

普通卷积stride>1提高感受野的话,给一张图就很清楚了。。。:


嗯,应该比较清楚了。。。


关于aspp结构后的“相加”层:eltwise层


有新的理解会来补充,欢迎大家指正!


  • 33
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值