标准卷积可以看做空洞卷积rate=1(Note:rate=2表示中间空洞间隙为1)的特殊形式 中间的空洞间隙,计算感受野的时候,也属于感受野的有效范围。 空洞卷积可以在不需要引入额外参数的前提下,任意扩大感受野。 一方面感受野大了可以检测分割大目标,另一方面分辨率高了可以精确定位目标。因此空洞卷积主要应用于检测、分割。 因为空洞卷积得到的某一层的结果中,邻近的像素是从相互独立的子集中卷积得到的,相互之间缺少依赖。 远距离获取的信息没有相关性:由于空洞卷积稀疏的采样输入信号,使得远距离卷积得到的信息之间没有相关性,影响分类结果。 deeplabv3在v2基础上进一步探索空洞卷积,分别研究了级联ASPP与并联ASPP两种结构。 总结-空洞卷积(Dilated/Atrous Convolution)
我们知道正常的卷积已经能够提取特征了,那么空洞卷积又是做什么的呢? 下图是正常卷积核空洞卷积的动态图对比: 下图为卷积核为3x3,步长为1的普通卷积: ? 下图为卷积核为3x3,步长为1,扩张率为1的空洞卷积: ? 对比上两动图,先感受下区别。 空洞卷积有什么用呢? 上图右侧为对0-9共10颗像素的空洞3x3卷积,这里的3x3是指有效区域,在padding为same,stride=1的情况下,也得到了10个特征,但是每个特征的感受野为5x5,如右侧蓝色的那个特征覆盖 上图右侧为对0-9共10颗像素的空洞3x3卷积,这里的3x3是指有效区域,在padding为same,stride=1,dilated rate=1的情况下,也得到了10个特征,但是每个特征的感受野为5x5 而左侧为为3x3空洞卷积,padding为same,stride=1, dilated rate=2的情况下,我们可以看到卷积后的特征的感受野为7x7,如红色特征的感受野为1,2,3,4,5,6,7。
导读 空洞卷积在图像分割需要增加感受野同时保持特征图的尺寸的需求中诞生,本文详细介绍了空洞卷积的诞生、原理、计算过程以及存在的两个潜在的问题,帮助大家将空洞卷积这一算法“消化吸收”。 一、空洞卷积的提出 空洞卷积中文名也叫膨胀卷积或者扩张卷积,英文名也叫Atrous Convolution 空洞卷积最初的提出是为了解决图像分割的问题而提出的,常见的图像分割算法通常使用池化层和卷积层来增加感受野 3 b是dilation rate = 2的空洞卷积,卷积后的感受野为5 c是dilation rate = 3的空洞卷积,卷积后的感受野为8 可以这么说,普通卷积是空洞卷积的一种特殊情况 另外,空洞卷积可以增大感受野 解决方案 具体可参考[5,9] Panqu Wang,Pengfei Chen, et al**.Understanding Convolution for Semantic Segmentation. Convolution for Semantic Image Segmentation(https://arxiv.org/abs/1706.05587) 4、书籍《深度学习之PyTorch物体检测实战》 5、
导读 空洞卷积在图像分割需要增加感受野同时保持特征图的尺寸的需求中诞生,本文详细介绍了空洞卷积的诞生、原理、计算过程以及存在的两个潜在的问题,帮助大家将空洞卷积这一算法“消化吸收”。 一、空洞卷积的提出 空洞卷积中文名也叫膨胀卷积或者扩张卷积,英文名也叫Atrous Convolution 空洞卷积最初的提出是为了解决图像分割的问题而提出的,常见的图像分割算法通常使用池化层和卷积层来增加感受野 = 2的空洞卷积,卷积后的感受野为5 c是dilation rate = 3的空洞卷积,卷积后的感受野为8 可以这么说,普通卷积是空洞卷积的一种特殊情况 另外,空洞卷积可以增大感受野,但是可以不改变图像输出特征图的尺寸 解决方案 具体可参考[5,9] Panqu Wang,Pengfei Chen, et al**.Understanding Convolution for Semantic Segmentation. Convolution for Semantic Image Segmentation(https://arxiv.org/abs/1706.05587) 4、书籍《深度学习之PyTorch物体检测实战》 5、
空洞卷积的计算过程 该文章只单纯的讲解计算的细节,关于对应的原理和证明可以戳尾部的参考文献。 卷积计算过程(单/RGB多通道) 假设输入层的大小为 5 x 5,局部感受野(或称卷积核)的大小为 3 x 3,那么输出层一个神经元所对应的计算过程(下文简称「卷积计算过程」)如下: ? Valid 填充方法 Valid 是丢弃的方法,比如上述的 input_width = 7,kernel_width = 5,stride = 3,只允许滑动 1 次,多余的元素则丢掉。 ? 空洞卷积的计算过程 空洞卷积(Dilated convolutions)在卷积的时候,会在卷积核元素之间塞入空格,如下图所示: 空洞卷积过程,蓝色表示输入,绿色表示输出 这里引入了一个新的超参数 d,( 进而,假定输入空洞卷积的大小为 i,步长 为 s ,空洞卷积后特征图大小 o 的计算公式为: ?
目录 一、从普通卷积到空洞卷积的直观理解 二、关于卷积的重新思考——普通卷积的缺陷 三、空洞卷积的拯救之路:Dilated Convolution to the Rescue 3.1 潜在问题 :Hybrid Dilated Convolution (HDC) 3.4 多尺度分割的另类解:Atrous Spatial Pyramid Pooling (ASPP) 四、总结 一、从普通卷积到空洞卷积的直观理解 总结:多次叠加多个具有相同空洞率的卷积核会造成格网中有一些像素自始至终都没有参与运算,不起任何作用,这对于像素级别的预测是不友好的。 3.3 通向标准化设计:Hybrid Dilated Convolution (HDC) 说得更简单明白一点其实就是使用多个不同空洞率的空洞卷积核混合,当然至于没一个卷积核的空洞率rate怎么选择,是有一些技巧和原则的 第二个特性是,我们将 dilation rate 设计成 锯齿状结构,例如 [1, 2, 5, 1, 2, 5] 循环结构。 第三个特性是,我们需要满足一下这个式子: ? 其中 ?
因此Atrous conv.也被称为“空洞卷积”。一些论文也称之为"dilated convolution"。它通常用于小波变换,现在它被应用于卷积中以进行深度学习。 当r > 1时,它是一个带孔的卷积,r是在卷积过程中对输入样本进行采样的步幅。 下图说明这一点 ? 标准卷积(顶部)空洞卷积(底部) atrous卷积的想法很简单。在上图的顶部是标准卷积。 在图的底部,它是一个空洞卷积。我们可以看到,当rate = 2时,输入信号被交替采样。首先,pad = 2 意味着我们在左侧和右侧填充2个零。 然后,在 rate = 2的情况下,我们有每2个输入就对输入信号进行采样以进行卷积。因此,在输出端,我们将有5个输出,这使得输出的特征图增大。 在DeepLab中,使用VGG-16或ResNet-101,最后一个池化(pool5)或卷积conv5_1的步幅分别设置为1,以避免信号被过度抽取。并且使用rate=2的空洞卷积替换所有后续卷积层。
一、空洞卷积的提出 空洞卷积(atrous convolutions)又名扩张卷积(dilated convolutions),向卷积层引入了一个称为 “扩张率(dilation rate) 二、空洞卷积原理 如下如,卷积核没有红点标记位置为0,红点标记位置同正常卷积核。 ? 假设原始特征为feat0,首先使用扩张率为1的空洞卷积生成feat1,feat1上一点相对feat0感受野为3*3(如图a); 然后使用扩张率为2的空洞卷积处理feat1生成feat2(如图b),使第一次空洞卷积的卷积核大小等于第二次空洞卷积的一个像素点的感受野 ,图b即feat1上一个点综合了图a即feat0上3*3区域的信息,则生成的feat2感受野为7*7,即整个图b深色区域; 第三次处理同上,第二次空洞卷积的整个卷积核大小等于第三次空洞卷积的一个像素点的感受野 三、空洞卷积问题 感受野跳跃 我们对同一张图连续三次使用扩张率为1的空洞卷积,观察整张图的中心点的感受野(如下图) ?
ESPNet系列的核心在于空洞卷积金字塔,每层具有不同的dilation rate,在参数量不增加的情况下,能够融合多尺度特征,相对于深度可分离卷积,深度可分离空洞卷积金字塔性价比更高。 卷积将输入映射到低维特征空间,空洞卷积金字塔使用$K$组$n\times n$空洞卷积同时重采样低维特征,每个空洞卷积的dilation rate为$2^{k-1}$,$k={1, \cdots, K} ,深度分离卷积以及深度可分离空洞卷积的参数量和有效感受域如表1所示。 原始的ESP模块结构如图1a所示,论文首先将point-wise卷积替换为分组point-wise卷积,然后将计算量较大的空洞卷积替换为深度可分离空洞卷积,最后依然使用HFF来消除网格纹路,结构如图1b CONCLUSION *** ESPNet系列的核心在于空洞卷积金字塔,每层具有不同的dilation rate,在参数量不增加的情况下,能够融合多尺度特征,相对于深度可分离卷积,深度可分离空洞卷积金字塔性价比更高
毕竟在介绍DeepLab2的时候需要用到空洞卷积。 (1)空洞卷积 空洞卷积的原理如图所示,仔细看了下原理,才知道在传统的CNN中,正常都会采用pooling池化来达到降维的目的,这种在图像语义分割中会产生一定的副作用,如经典的FCN在第3-5的featuremap 因此空洞卷积的目的是:不要池化层,毕竟池化之后正常会减少像素的信息而导致信息损失。 可以看出,DeepLab2使用了带孔/空洞卷积,金字塔型的空洞池化(ASPP)和全连接 CRF等多项技术的结合。 其中空洞卷积见第1部分,而SPP是一种空间金字塔分辨率的方式,从而来实现多个尺度的featuremap,从而可以实现对多种不同尺度图像对象的语义分割。
在空洞卷积提出以前,大部分的空间尺寸恢复工作都是由上采样或反卷积实现的。 2 空洞卷积 一句话概括空洞卷积:调整感受野(多尺度信息)的同时控制分辨率的神器。 从图中可以看出,当比率为1的时候,空洞卷积退化为常见的卷积。 ? (2) 空洞卷积结构1 下图(b)是基于上面第三种结构的空洞卷积分割网络结构图,(a)是对应的第三种结构的网络结构图。 ? 表格均来源于DeepLabv3论文: 《Rethinking Atrous Convolution for Semantic Image Segmentation》 5 更多结果 ?
一、空洞卷积的基础原理空洞卷积(Dilated Convolution) 是一种改进的卷积操作,通过在卷积核中引入“空洞”来扩大感受野。 想象你通过一个3x3的窗口看图片,空洞卷积允许窗口跳过某些像素,比如跳过1个像素,实际覆盖5x5的区域,但参数量不变。1. 空洞卷积的巧妙之处空洞卷积的核心思想是:在不增加计算负担的情况下,让卷积核“看到”更远的区域。 其方法是在卷积核中引入“空洞”,即在核的元素之间留出间隔。 如果设置空洞率(dilation rate)为2,卷积核会在每个方向上跳过一个像素,实际覆盖的区域变为5x5。参数仍然是9个,但能看到的地方大了不少。 2.1 空洞卷积层空洞卷积的核心在于那个 dilation 参数,它控制卷积核里元素之间的间隔。空洞率越大,卷积核跳得越远,感受野就越大。
深度学习基础入门篇9.3:卷积算子:空洞卷积、分组卷积、可分离卷积、可变性卷积等详细讲解以及应用场景和应用实例剖析 1.空洞卷积(Dilated Convolution) 1.1 空洞卷积提出背景 在像素级预测问题中 空洞卷积在某些特定的领域有着非常广泛的应用,比如: 语义分割领域:DeepLab系列2,3,4,5与DUC6。 图片 图2 扩张率为2时的3*3空洞卷积 图片 图3 扩张率为4时的3*3空洞卷积 扩张率大于1时,在标准卷积的基础上,会注入空洞,空洞中的数值全部填0。 对于卷积核大小为 $k$ ,扩张率为 $r$ 的空洞卷积,感受野 $F$ 的计算公式为: $$F = k + (k-1)(r-1)$$ 卷积核大小 $k=3$ ,扩张率 $r=2$ 时,计算方式如 图5 图片 图5 空洞卷积的感受野示例 其中,通过一层空洞卷积后,感受野大小为$5\times5$,而通过两层空洞卷积后,感受野的大小将会增加到$9\times9$。
DeepLabv3在ImageNet预训练的Backbone中使用空洞卷积,将输出stride减少到16或8,而不是通常的32,并通过提出Atrous空间金字塔池模块(ASPP)来增加感受野,该模块并行地应用了不同扩张率的卷积层分支 图2是一个空洞卷积的例子。 PSPNet提出了金字塔池化模块(Pyramid Pooling Module, PPM),它通过首先应用平均池化来应用不同输入分辨率的卷积层的并行分支。 例如,两个3x3 convs的合成到5x5 conv,简单地说感受野是5x5。更一般地,卷积组成的感受野可以像FCN中描述的那样迭代计算。 另一种方法是使用空洞卷积,扩张率为r的卷积在感受野上等于kernel大小为2r+1的卷积。 除了最后一个卷积之外,所有卷积后面都跟着BatchNorm和ReLU。解码器如图5所示。这个简单的解码器比许多现有的具有类似延迟的解码器性能更好。作者也实验了不同的解码器设计。
微观层面:提出了可切换的空洞卷积(SAC),用不同的空洞率来对相同的输入特征做卷积,使用switch函数来结合结果。上图(b) 展示了 SAC 的概念。 这三个分支里的卷积层的配置如下:卷积核大小为[ 1 , 3 , 3 ],空洞率为[1,3,6],padding为[0,3,6]。 在第5部分,作者证明了有和没有ASPP模块时RFP的性能。 Switchable Atrous Convolution 空洞卷积是增大卷积层滤波器感受野的有效方式。 特别地,空洞率r的空洞卷积在两个连续的滤波器值之间引入r−1个0,相当于将卷积核大小由k×k增大到ke=k+(k−1)(r−1),而不会增加参数的个数或计算量。 下图b为3×3卷积层和空洞率为1(红色)与2(绿色)的一个例子:不同尺度的同类物体可以通过相同的卷积权重和不同的空洞率来检测。 ?
带有空洞的文件复制后还有空洞吗? size 524288 /home/yunh/.mozilla/firefox/l7y3lhkj.default-esr/storage/default/moz-extension+++15f580b5- 45056, size 49152 /home/yunh/.mozilla/firefox/l7y3lhkj.default-esr/storage/default/moz-extension+++5cbf54b3 -f5e8-493a-9096-76e3ad392e45^userContextId=4294967295/idb/3647222921wleabcEoxlt-eengsairo.sqlite has .mozilla/firefox/l7y3lhkj.default-esr/storage/default/moz-extension+++ae22fc49-8037-4c59-8299-2523bd5c1548
[SAConv可切换空洞卷积介绍] SAConv(可切换空洞卷积)原理与优点详解 一、SAConv的核心原理 SAConv(Switchable Atrous Convolution)是一种创新的卷积模块 ,旨在解决传统空洞卷积(Dilated Convolution)在多尺度目标检测中的局限性。 其核心设计思想如下: 动态空洞率切换机制 SAConv通过可学习的开关函数(Switch Functions)动态调整卷积核的空洞率(Dilation Rate),而非固定使用单一空洞率。 四、总结 SAConv通过动态空洞率切换和全局上下文感知,解决了传统空洞卷积的固定感受野问题,显著提升了模型的多尺度特征提取能力和鲁棒性。 P4, P5) 3.
空洞文件(hole file) 我们知道 lseek()系统调用,使用 lseek 可以修改文件的当前读写位置偏移量,此函数不但可以改变位置偏移量,并且还允许文件偏移量超出文件长度,这是什么意思呢? ,所以形成了空洞,这部分区域就被称为文件空洞,那么相应的该文件也被称为空洞文件。 文件空洞部分实际上并不会占用任何物理空间,直到在某个时刻对空洞部分进行写入数据时才会为它分配对应的空间,但是空洞文件形成时,逻辑上该文件的大小是包含了空洞部分的大小的,这点需要注意。 空洞文件有什么用呢? 来看一下实际中空洞文件的两个应用场景: ⚫ 在使用迅雷下载文件时,还未下载完成,就发现该文件已经占据了全部文件大小的空间,这也是空洞文件;下载时如果没有空洞文件,多线程下载时文件就只能从一个地方写入,这就不能发挥多线程的作用了
空洞文件(Sparse File)是一种在磁盘上并非完全分配存储空间的文件。它包含了一些逻辑上存在但物理上并未存储的数据。 空洞文件在多线程共同操作文件时具有极大的优势。 空洞文件在实际应用中有两个典型场景: 1、在使用迅雷下载文件时,尚未完全下载时文件已经占据整个文件大小的空间,这就是空洞文件的应用。 如果没有空洞文件,多线程下载时只能从一个位置写入,无法充分发挥多线程的优势。有了空洞文件,不同地址可以同时写入,发挥了多线程的优势。 通过空洞文件,可以避免一开始就分配过多的资源,节约了存储空间的浪费。 在 Linux 中,可以通过使用 lseek 和 write 系统调用来创建空洞文件。 在文件系统中,读取空洞文件时,操作系统会将空洞部分的数据补充为0,使得读取的文件内容包含完整的文件大小。
论文地址: https://arxiv.org/pdf/1802.10062.pdf 来自北京邮电大学和美国伊利诺伊大学(UIUC)的研究者们提出一种适用于密集人群计数的空洞卷积神经网络模型 CSRNet 此类多通道卷积网络在不同通道上采取大小不等感受域的卷积网络,以适应不同场景(如高、中、低密集程度)的人群计数需要。 表 1 更深的单通道卷积网络使用较少参数却在 ShanghaiTech PartA 中获得更小误差 此外,作者为了避免过度使用降采样而导致密度图的分辨率损失,在网络的后半部分引入了空洞卷积层,利用空洞卷积增大感受域并维持分辨率 图 3 使用卷积+池化+上采样(上)与空洞卷积(下)输出同样分辨率图像,空洞卷积可保留更多图像细节 ? 表 5 UCF CC 50 数据集测试结果 ? 表 6 WorldExpo' 10 数据集测试结果 ? 表 7 UCSD 数据集测试结果 ? 表 8 TRANCOS 数据集测试结果