我报名参加金石计划1期应战——瓜分10万奖池,这是我的第1篇文章,点击检查活动详情
作者简介:秃头小苏,致力于用最浅显的言语描绘问题
往期回忆:方针检测系列——Faster R-CNN原理详解 还不理解方针检测嘛?一同来看看Faster R-CNN源码解读
近期方针:拥有10000粉丝
支撑小苏:点赞、收藏⭐、留言
Dilated Convolution(空泛卷积、胀大卷积)详解
写在前面
首要,来谈谈我是怎样一步步触摸Dilated Convolution (后文都叫空泛卷积了)的。在一次机缘巧合下,我恰巧瞅到师姐的论文,上面就闪晃晃的写有空泛卷积四个大字,我其时想的是这是什么玩意,听姓名有点巨大上,所以课下就搜了搜,发现仍是挺有意思的,但也一直没有具体的看过,只能说有一个大致的了解,知道这家伙是干什么的。后边是在一门叫学科前言讲座的课程上,听同学提及了这个空泛卷积,讲的非常具体,也谈到了空泛卷积的一些缺点和处理方法,我记住我其时还问了一些问题,其时觉得这门课程挺累的,但现在回头来看仍是很有价值的。最终便是今日较全面的学习了空泛卷积的常识,行将共享给咱们。
这篇文章呢,仍是首要参阅了霹雳吧啦Wz关于此部分的视频。讲的非常透彻,可是可能由于视频时长等原因,一些点视频中描绘的仍是不具体的,这儿我仍是建议咱们时间允许的话能够先看看视频,对应视频中有所困惑的当地再来这篇文章找找思路。当然了,假如你想快速的把握空泛卷积,我以为看这篇文章也足够了。
准备好了吗,咱们这就发车。
何为空泛卷积✨✨✨
什么是空泛卷积呢,我先不给你说,先来看看咱们正常的卷积操作是怎样的,如下图所示:
上图展现了一般卷积的进程,其卷积核巨细为33,步长s=1。
看完了熟悉的卷积操作,接着咱们来看看何为空泛卷积,如下图所示:
上图展现了空泛卷积的进程,其卷积核巨细为33,步长s=1,r=2。你或许会问了,这个r是什么呢,其实啊,这个r正是一般卷积和空泛卷积的不同所在,咱们称之为胀大因子。当r=1时,表明卷积核各元素之前没有空地,即相邻两个元素间方位相差1,此刻其实便是咱们正常的卷积,所以广义上说,一般的卷积是一种特殊的空泛卷积;当r=2时,表明卷积核各元素之前有一个空地,即相邻两个元素间方位相差2,此刻便是咱们上图中的卷积核,为便利咱们了解,我把上图r=2时的卷积核提取出来,如下图所示:
当然了当r=3、r=4都是相同的道理,这儿就不过多叙说了。
为何要用空泛卷积✨✨✨
咱们知道了什么是空泛卷积,自然想要问咱们为什么要用空泛卷积呢?其实运用空泛卷积最首要的用处便是增大感触野。enmmm,保姆级教学,我先来为咱们介绍一下什么是感触野?感触野便是指特征图上的一个像素对应原图多少尺度的像素,我画一个简略的图来为咱们解释一下:
上图是一个一般卷积的进程,卷积核巨细为33,步长s=1。能够发现,所得特征图中一个11像素区域(灰绿色)对应了原图中的33巨细的区域,这便是33巨细卷积核的感触野。
咱们再来看,当咱们对刚刚得到的特征图(橙色)再经过一次33卷积,如下图所示:
很显然,此刻最终一层特征图中一个11像素区域(青蓝色)对应了橙色特征图中的33巨细的区域,这也是33巨细卷积核的感触野。
那么,现在我将上述两步放在一同,如下图所示:
那么请问,此刻最终一层特征图中一个11像素区域(青蓝色)对应原图多少尺度巨细的区域呢?答案是55,由于青蓝色像素感触野包含了整个橙色的区域,而整个橙色区域的感触野正是下方55区域巨细的范围。【这儿应该也好了解吧,咱们能够自己着手画画了解了解】
经过上文叙说,咱们知道了感触野是怎样核算的了,下面给出核算感触野的公式,如下:
Fi=(Fi−1−1)stride+kF_i=(F_{i-1}-1)stride \ + \ k
其间,FiF_i表明第ii层的感触野,Fi−1F_{i-1}表明i−1i-1层的感触野,srtidesrtide表明步长,kk表明卷积核巨细。咱们能够将公式代入到上面的比如中验算一下是否正确。首要,蓝色、橙色、青蓝色特征图别离表明3层、2层、1层,现咱们要核算1层相对于3层的感触野,首要咱们要核算出1层对于2层的感触野,即
F2=(F1−1)1+3=(1−1)1+3=3F_2=(F_{1}-1)1 \ + \ 3=(1-1)1+3=3
得到了F2F_2,咱们就能够核算1层相对于3层的感触野,即
F3=(F2−1)1+3=(3−1)1+3=5F_3=(F_{2}-1)1\ + \ 3=(3-1)1+3=5
【注:对于感触野,我觉得很有必要很咱们着重一点,即咱们所说的感触野都是相对于原图说的,即某层特征图中一个像素尺度对应原图多少像素尺度】
我想经过上文的解释,咱们对感触野的核算已经有所了解了。再回到本节的问题上——为什么要运用空泛卷积。运用空泛卷积一个关键原因便是能够增大感触野,这样在检测、分割任务中就能对大尺度物体表现出较好的作用。至于空泛卷积为什么能够增大感触野,我觉得也非常好了解啊,如下图所示:
上图表明运用33的卷积核进行空泛卷积,r=2,很明显,此刻灰色特征层的感触野为55。其实呢,核算空泛卷积感触野也有公式,咱们这样来考虑,上图是33的卷积核,r=2,这样构成的一个空泛卷积核(乱起的姓名哈,不用在意)的尺度就适当所以55巨细了,这时候咱们感触野的核算就适当于55卷积核的感触野了。已然这样,咱们能否找到空泛卷积核巨细和原始卷积核巨细的关系呢?当然能够啦,如下:
k′=k+(k−1)(r−1)k’=k+(k-1)(r-1)
k′k’表明空泛卷积核巨细,kk表明原始卷积核巨细,rr表明胀大因子。咱们能够试着将这个公式代入进去,验证公式的正确性!!!已然有了k′k’,咱们就能够运用原来核算感触野的公式得到核算空泛卷积感触野的公式了,如下:
Fi=(Fi−1−1)stride+k′=(Fi−1−1)stride+k+(k−1)(r−1)F_i=(F_{i-1}-1)stride \ + \ k’=(F_{i-1}-1)stride \ + \ k+(k-1)(r-1)
这儿咱们就自己验证了喔,好好揣摩揣摩,后边会用到这个常识点!!!
空泛卷积存在的缺点✨✨✨
上文谈及了空泛卷积能够增大感触野,这是空泛卷积自身的优势。那空泛卷积是否有缺点呢?关于这点咱们能够看看这篇论文,该篇论文就首要介绍了空泛卷积存在的缺点以及处理方案。
其实啊,空泛卷积的缺点首要体现在存在网格效应,咱们能够来看一下下图:
上图的卷积核巨细都是33,r=2。第一次空泛卷积后的感触野为55,第2次空泛卷积后感触野巨细为99,第三次空泛卷积后感触野巨细为1313。【这很容易得到,咱们套我上文给出的公式即可】
咱们能够看到,接连运用三次r=2的空泛卷积会导致中间有许多空格,即许多像素没有运用到,这会导致呈现网格效应,咱们拿语义分割为例,如下图所示:
能够看到,在分割成果中存在许多许多的不接连的小网格区域,这便是网格效应,也是空泛卷积带来的副作用。
咱们再来看看本小节的第一张图,你能够发现,小网格上色彩的深度是不一致的。其实啊,色彩的深度表明该像素运用了原始特征图上像素的次数。是不是不好了解呢,这儿我具体的说一下。【这一部分引荐视频中也没有介绍的很清楚,下面几张图片都来自视频】
首要咱们来看一下,经过第一次33的卷积,每个像素都只运用了原图上的一个像素,这很好了解,如下图:
接下来,经过第2次空泛卷积,得到的成果如下:
这次看着复杂多了,但其实你要理解了某个数字是怎样得到的,其它的都很简略了。咱们来看上图最中间红色的9怎样得到的,如下图所示:
右图中的一个像素是由左图的9个像素得到,而左图9个像素都只对应原图上了一个像素,故右图红色点上数字为9。咱们再以左上角的一个像素为例,如下:
上面右图中左上角的一个像素对应左图中9个像素,而这9个像素只有包含一个红色像素,故左上角的数字为1。介绍了这两个比如后,咱们能够尝试其它的数值。
最终,经过第3次空泛卷积后,得到下图:
这儿我就不带咱们看了,经过上文的讲解,相信咱们能自己处理了。
怎样高效运用空泛卷积✨✨✨
已然空泛卷积存在着网格效应,那有什么方法能够处理这个问题吗。开宗明义,论文中巧妙的运用了不同胀大因子的空泛卷积,这样就能有效处理空泛卷积网格效应的问题,如下图所示:
是不是发现没有网格了呢,而且感触野巨细也是一样的。这儿在来看看运用这种方式在语义分割中的作用,如下图:
咱们应该能很直观的感触到运用不同r的空泛卷积的作用要更好。
小结
关于空泛卷积的常识就为咱们介绍到这儿了,如若你还有不了解的当地,能够谈论区咨询,期望咱们一同进步。
如若文章对你有所协助,那就
咻咻咻咻~~duang~~点个赞呗