一、空洞卷积(Atrous Convolution)
FCN为了获得更大的感受野的特征会使用池化操作,但是这个会降低特征的分辨率,会丢失很多细节信息。
而空洞卷积能够在不牺牲特征空间分辨率的同时增大特征感受野
二、ASPP
将不同扩张率的空洞卷积特征级联到一起,其是由Densenet的启发而来:
用HK,d(x)来表示一个空洞卷积,
缺陷:ASPP模块在尺度轴上特征分辨率还不够密集,获取的接收野还不够大,为此提出了DenseASPP
三、本文的算法(DenseASPP)
现状:
以更密集的方式连接一组扩张卷积,获得了更大的范围的扩张率,并且更加密集。
Dense ASPP的两个好处:(1)更密集的特征金字塔(Denser feature pyramid)和 (2)更大的感受野(larger receptive field)
(1)更密集的特征金字塔(Denser feature pyramid)
空洞卷积能够增大卷积核的感受野,对于一共空洞率d,卷积核大小为K,其感受野为:R=(d−1)×(K−1)+K
例如一共3*3的空洞卷积,d=3,则对应的感受野大小为R=2*2+3=7
堆叠两个空洞卷积能够得到更大的感受野,如果由两个卷积核大小为k1,k2,则感受野大小为k=k1+k2-1 ??
例如,尺寸分别为7和13的卷积堆叠到一起,则感受野为19 (?对吗??)
DenseASPP由包含扩张率为3,6,12,18的空洞卷积, 每组数字表示的都是空洞率的组合,长度表示等效卷积核的大小,k表示实际的卷积核的感受野。
其具体计算如下:
K=3,d=3: (3−1)×(3−1)+3=7
K=3,d=6: (6−1)×(3−1)+3=13
K=3,d=3,d=6:
第一个扩张卷积:(3−1)×(3−1)+3=7
第二个扩张卷积:(6−1)×(3−1)+3=13
组合:7+13−1=19
K=3,d=12: (12−1)×(3−1)+3=25
K=3,d=3,12: 7+25−1=31
K=3,d=3,6,12: 7+13+25−2=43
K=3,d=3,6,12,18: 7+13+25+37−3=79
显然,在堆叠情况下的空洞卷积的DenseASPP 的感受野是一共超集(super set)
但是在使用空洞卷积的时候,感受野增大的同时,会使得细节信息丢失,具体如下所示:
如上图(a)所示,在这么大的感受野下,只有3个像素被采样用于计算,如果在二维的情况下,会使得信息丢失更加严重。虽然得到了更大的感受野,但是信息丢失更加严重了。
上图(b)是空洞率为3和空洞率为6组合的情况,与原始的dilated rate=6的情况相比,(b)中有7个像素参与了计算,信息利用 的更加密集,在二维的情况下有49个像素参与计算。较大空洞率的卷积可从较小空洞率卷积中获得帮助,使得采样更为密集。
(2)更大的感受野(larger receptive field)
原始的ASPP是使用4个分支并行的进行前馈,而DenseASPP是采用了跳层连接共享信息,大小空洞率的卷积相互一俩,构成密集的特征金字塔,并且野获得了更大的感受野。
我们使用Rmax表示金字塔的最大感受野,函数Rkd表示卷积核大小为K,空洞率为d ,则ASPP(6,12,18,24)的最大感受野为:Rmax=max[R3,6,R3,12,R3,18,R3,24]$=R3,24=51
相对DenseASPP(6,12,18,24)的感受野为:
Rmax=R3,6+R3,12+R3,18+R3,24−3=122
这样大的感受野嫩巩固为更大的目标提供更加全局的信息。
Model size control
和Densenet类似,Dense ASPP在空洞卷积之前使用了1*1的卷积用于减少特征图数量。假设每个扩张卷积输出nn的特征图,DenseASPP有c0个特征图作为输入,在第ll的1×1的卷积之前的第l个扩张卷积有cl个输入特征图,则
cl=c0+n×(l−1)