空洞卷积笔记
看了一些空洞卷积的博客,这个知识点得自己做做笔记。看起来像语义分割里用得更多,用空洞卷积代替下采样来增大感受野,同时保持分辨率。这么说的话空洞卷积在小目标检测里应该也有一定的作用,不过听说空洞超参的设置比较讲究
参考https://zhuanlan.zhihu.com/p/50369448
https://www.zhihu.com/question/54149221
空洞卷积的目的
代替pooling层来增大感受野,同时不降低分辨率
说错了,空洞卷积也会降低分辨率,但是空洞卷积后的尺寸大小和普通卷积一致,也就是说做了一次空洞卷积,无论dilation rate,output的大小都和普通的卷积一样
为什么不希望降低分辨率
1、内部数据结构丢失;空间层级化信息丢失
2、小物体信息无法重建 (假设有四个pooling layer 则 任何小于 2^4 = 16 pixel 的物体信息将理论上无法重建。)
其实空洞卷积是因为,实例分割一般先降采样获取大的感受野,然后上采样还原图像尺寸,用了空洞卷积可以同时获得大的感受野和一定程度上保持尺寸,减少了下、上采样时的信息丢失
空洞卷积的超参与感受野计算
超参:dilation rate
就是说在原始kernel里每个像素之间填充(dilation rate-1)个0
假设dilation rate=2,则填充1个0,空洞卷积核就成了这样
下图为input,上图为output,可以看到上图的一个像素对应下图5*5的感受野,而下图深色部分就是被拆解的传统kernel,深色块之间的浅色块就是加的0
感受野
以dilation rate=2为例,如上图所示,1像素——>5*5,而感受野一般是用正方形的边长表示,也就是1——>5,1+4=5,也就是说每过一层dilation rate=2的3*3/s1的空洞卷积,感受野+4,注意这里是从深层往浅层的计算方式,只能计算出底层的感受野,并不能计算出每层的感受野。
u1s1普通的卷积(stride=1)也会增大感受野
空洞卷积的缺陷
参与计算的单位不连续,损失了相关关系和连续性
解决方案:
HDC:采用多个不同rate的空洞卷积叠加
有个问题:
空洞卷积到底是对大目标还是小目标更有效?
1、如果本来就不用上采样的,应该是对小目标更有效,因为增大了最后输出的feature map的分辨率