3本文方法
3.1 Field-of-View
作者感兴趣的是通过卷积获得的模型的Field-of-View(FOV),也被称为感受野。例如,两个3x3 convs的合成到5x5 conv,简单地说感受野是5x5。更一般地,卷积组成的感受野可以像FCN中描述的那样迭代计算。
假设到当前为止的conv的组成在kernel大小和stride上是相等的(kernel=3x3,stride=s),用一个 k'× k' 的conv和stride s'组成它。更新k和s:
k是Field-of-View的最终值。
有两种方法可以有效地增加感受野。一种是在早期用stride为2或平均池化进行采样。另一种方法是使用空洞卷积,扩张率为r的卷积在感受野上等于kernel大小为2r+1的卷积。
然而,为了不在权值之间留下任何洞,需要,其中k和s是使用到当前为止的卷积函数的组成来计算的,如前一段所述。这作为r的上界,在实际中,选择的膨胀率比上界低得多。
感受野与输入图像大小之间的关系对模型的精度影响很大。例如,如果在ImageNet上使用ResNet架构,测试大小为224x224,并在全局平均池化之前查看特征图,模型需要至少224*2-1= 447的感受野,左上角像素才能看到整个图像。同样,对于图像大小为1024x2048的Cityscapes,模型需要输出的左上角像素的感受野为2047,才能看到输入图像的左下角像素,需要输出的感受野为4095,才能看到输入图像的右下角像素。
3.2 Dilated Block
Dilated Block(D Block)来源于RegNet的Y Block,也称为SE-ResNeXt Block。Y Block和新的D Block都利用了组卷积。假设输入通道=输出通道= w,这对于Y Block和新的D Block中的3 × 3卷积始终成立。组卷积有一个属性叫做组宽度g,g整除w。在前向传播期间,w个输入通道被分为w/g组,并最终重新拼接为w个通道。
由于每组都有一个卷积,可以对不同的组应用不同的扩张率来提取多尺度特征。例如,可以对一半的组应用扩张率1,对另一半应用扩张率10。这是D Block的关键。图3a显示了Y Block。图3b显示了D Block。当d1=d2=1时,D Block与Y Block相等。在第4.4节中,实验了一些有4个不同膨胀率分支的D Block,但发现它们并不比有2个分支的D Block好。
图4为步幅为2时的D Block。与ResNet D-variant类似,当Block的stride=2时,在shortcut分支上应用2×2平均池化。BatchNorm紧跟每个卷积之后。ReLU则是在第一个1 × 1卷积,3 × 3卷积,和求和之后。
深度学习框架支持组卷积,每个组卷积应用相同的扩张率。由于D Block对不同的组使用不同的扩张率,所以必须手动分割输入,应用conv,然后连接。这里使用(d1,d2)表示D Block的扩张率。
在表1中,显示了手动拆分和连接以及使用扩张会话影响了速度。因此,Y Block比D Block稍微快一些,尽管它们具有相同的FLOP复杂度和参数计数。当在实践中使用D block(1,1)时,不需要手动拆分和连接,因为两个分支使用相同的扩张率。
3.3 Backbone
Backbone是通过重复D Block构建的,样式类似于RegNet。Backbone以一个32的通道3×3卷积为起点,stride为2。在1/4分辨率有一个48通道的D Block,在1/8分辨率有3个128通道的D Block, 在1/16分辨率有13个256通道的D Block,在1/16分辨率结束位置有1个320通道的D Block。这里没有设置下采样倍数为32。
本文在分辨率为1/16时,总共提升了13个stride为1的block的扩张率:1 (1,1)、1(1,2)、4(1,4)、7 (1,14)。作为简写,这里将扩张率表示为(1,1) + (1,2) + 4∗(1,4)+7∗(1,14)。对于所有其他Block使用的扩张率为(1,1),等同于Y Block。
在一种类似于EfficientNetV2的格式中,在表2中显示了RegSeg的Backbone。为最后13个Block选择正确的扩张率是很重要的,在第4.4节中对扩张率进行了实验。
3.4 Decoder
解码器的工作是恢复丢失在Backbone中的局部细节。与DeepLabv3+类似,使用[k × k,c]表示C个输出通道的k × k卷积。将backbone的最后1/4、1/8和1/16特征映射作为输入。将a[1x1, 128] conv应用于1/16、a[1x1, 128] conv应用于1/8、a[1x1, 8] conv应用于1/4。向上采样1/16,将它与1/8相加,然后再应用一个[3x3, 64]的卷积。再次向上采样,连接1/4,并在最终的[1x1,19]卷积之前应用一个[3x3,64]卷积。除了最后一个卷积之外,所有卷积后面都跟着BatchNorm和ReLU。解码器如图5所示。这个简单的解码器比许多现有的具有类似延迟的解码器性能更好。作者也实验了不同的解码器设计。
4实验
4.1 Backbone Ablation Studies
4.2 CamVid 数据集
4.3 Cityscapes
5参考
[1].Rethink Dilated Convolution for Real-time Semantic Segmentation.