【深度学习:语义分割】DSNet: A Novel Way to Use Atrous Convolutions in Semantic Segmentation
DSNet: A Novel Way to Use Atrous Convolutions in Semantic Segmentation
论文链接:http://arxiv.org/abs/2406.03702
代码链接:https://github.com/takaniwa/DSNet
文章目录
摘要
语义分割是计算机视觉中的一项基本任务,需要将输入中的每个像素预测为相应的类别
[
22
]
^{[22]}
[22]。它在自动驾驶、机器人导航、医学图像分析等各个领域都有广泛的应用
[
15
,
29
,
33
]
^{[15,29,33]}
[15,29,33]。
在语义分割任务中,空洞卷积被用作一种增加感受野的方法。然而,在以往的语义分割工作中,很少将其用于模型的浅层
[
4
−
7
,
17
,
39
]
^{[4-7,17,39]}
[4−7,17,39]。本文重新审视了现代卷积神经网络(cnn)中空洞卷积的设计,并证明了使用大核应用空洞卷积的概念可以是一种更强大的范式。
作者提出三个指导方针,以更有效地应用空洞卷积。按照这些指导方针,本文提出DSNet,一种双分支CNN架构,在模型架构的浅层中纳入空洞卷积,并在ImageNet上预训练几乎整个编码器,以实现更好的性能。为了证明所提出方法的有效性,所提出模型在ADE20K、Cityscapes和BDD数据集上实现了精度和速度之间的最新折衷。其中,DSNet在ADE20K上的平均交并比达到40.0%,推理速度达到179.2 FPS;在Cityscapes上的平均交并比达到80.4%,推理速度达到81.9 FPS。
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b7a04a4196dd4fe1a5d91e6a36d74315.png)
论文发表单位:
1安徽大学物理科学与信息技术研究院
2中国科学院合肥物理科学研究院
3中国科学技术大学
1. 引言
研究空白、创新点、主要贡献
许多之前的研究都专注于空洞卷积,他们要么没有在模型的浅层中使用空洞卷积,要么未能充分利用ImageNet预训练来进一步提高性能。
- 什么因素导致了这种现象? 从网络的浅层开始堆叠空洞卷积可能会发生什么影响?
为了回答这些问题,我们重新思考了cnn中空洞卷积的设计。通过一系列的实验,从单分支网络到双分支网络,从空洞率2到空洞率15,我们得出了三个空洞卷积的经验指南:
- 不要只使用空洞卷积。同时使用空洞卷积和密集卷积可能是更好的选择。
- 避免“空洞的灾难”。为了获得更高的准确率,选择合适的Atrous rate至关重要。
- 适当的融合机制。采用合适的融合机制整合不同层次的信息可以提高模型的性能。
基于上述原理,本文手动设计了一种新颖的双分支语义分割网络DSNet (dual-branch with Same-resolution network)。该网络在实时语义分割和高精度语义分割方面都表现出优越性。还提供了消融实验来演示每个模块的功能。本文的主要贡献如下:
- 重新审视了cnn中空洞卷积的设计,探索了空洞卷积的三条经验指南。基于上述指导思想,提出了一种新的双分支网络。
- DSNet在ADE20K、Cityscapes和BDD上的精度和速度之间实现了新的最先进的权衡。DSNet在不同的数据集上同时优于基于transformer的实时模型和基于卷积神经网络的模型。
2. 网络设计
- 不要只使用空洞卷积。使用双分支的网络架构,在保持细节信息的同时使用空洞卷积结合密集卷积消除“网格效应”、难以平衡上下文信息和细节信息等缺点,提高模型的性能。从表1可以看出,当只使用空洞卷积时,网络在分类和分割任务上的精度都相对较低。然而,一旦采用这种方法,网络的精度就会显著提高。
- 避免“空洞的灾难”。较大的空洞率将导致空洞卷积覆盖的范围超出未填充的特征图,并导致过大的填充区域,这可能会限制模型在预训练过程中从ImageNet学习更好的特征表示的能力,如图1所示,称之为“空洞灾难”。
- 适当的融合机制。仅仅通过逐像素加法或拼接等操作将不同级别的信息进行合并是不够的。这些操作只提供了固定的特征图线性聚合,并没有明确确定这种组合是否适用于特定对象。合适的融合机制可以有效指导两个分支的融合,增强不同层次特征之间的信息传递,提高模型的表示能力。
DSNet: A novel Dual-Branch Network
-
将网络分为两个分支,空间分支和上下文分支。上下文分支主要由空洞卷积组成,由MFACB模块,而空间分支由3 × 3密集卷积组成。
-
为了充分整合来自两个分支的信息,使用MSAF模块在空间分支和上下文分支之间做了三个水平连接。
-
网络的主干主要利用具有小空洞率的空洞卷积,如2、3和5,以减轻“空洞灾难”。此外,backbone在ImageNet上进行了预训练,以增强特征表示能力。
-
将上下文模块SPASPP插入到分割任务的主干之外,以快速增加感受野。
由于两个分支具有相同的分辨率,作者将其称为具有相同分辨率的双分支网络(DSNet)。简单设计了两个版本:DSNet是推理速度快的轻量级版本,DSNet- base是精度高的版本。与DSNet相比,DSNet- base是一个更深层次的版本,具有更多的通道。
MFACB: Learning of different scales
- 为了在不同尺度上获得更好的感知能力,提出了一种新的用于语义分割的编码器模块,称为多尺度融合空洞卷积块(MFACB)。如图3所示,MFACB由三个空洞卷积层组成,每个都使用不同的空洞率来扩大感受野。在三次卷积操作之后,中间特征图被连接起来并使用1 × 1卷积进行通道压缩。最后,将压缩后的特征图与输入特征图进行残差连接。
辅助表2可以更深入地了解这个模块的作用。在第一个空洞率为[2,2,2]的MFACB模块之后,三个中间特征图的感受野分别是5×5, 9×9和13×13。随后,通过连接和1 × 1卷积,输出特征图同时聚合这三个不同尺度的感受野。在第二个MFACB模块中的拼接和融合操作之后,出于同样的原因,当前层的感受野的规模开始增加。在骨干网络中使用MFACB允许模型有效地学习不同规模的语义信息。
MSAF: Balancing the Details and Contexts
- 提出了一个新的多尺度注意力融合模块(MSAF),旨在实现两个不同层次的分支之间的选择性学习,而不会让它们过于庞大。其主要思想是让网络根据损失学习特征权重,允许模型有选择地融合不同尺度的信息。该模块主要分为两部分:多尺度注意力(MSA)和多尺度注意力融合模块(MSAF)。
- 如图4所示,MSA的主要目的是学习权重α作为不同层次分支融合的基础。MSA模块主要分为区域注意力和像素注意力两部分。为提供MSA的更详细解释,将通道数量、特征图宽度和高度分别表示为C、W和H。
多尺度注意力(MSA)
- (1)区域注意力:衡量特征图中不同区域的重要性。作者提出在使用注意力时考虑感受野是必要的。在DSNet中,我们将特征图划分为大小相等的1 × 1、4 × 4、8 × 8和16 × 16区域。以4 × 4为例,首先对特征图
F
F
u
s
e
∈
R
C
×
H
×
W
F_Fuse ∈R^{C×H×W}
FFuse∈RC×H×W进行平均池化得到
f
c
4
∈
R
C
×
4
×
4
f_{c4} ∈R^{C×4×4}
fc4∈RC×4×4,然后进行通道压缩扩展得到
f
c
4
→
∈
R
C
×
4
×
4
\overrightarrow{f_{c4}} ∈R^{C×4×4}
fc4∈RC×4×4。为了与像素注意力的兼容性,将其重塑回
f
c
4
→
∈
R
C
×
H
×
W
\overrightarrow{f_{c4}} ∈R^{C×H×W}
fc4∈RC×H×W区域注意力的数学公式可以描述为方程(2)。与SENet
[
20
]
^{[20]}
[20]类似,通道压缩扩展的目的是降低计算复杂度,增强非线性度。Gonv表示通道扩展和压缩的操作。
- (2)像素注意力:衡量每个像素的重要性。该模块不需要池化和重塑。如公式(3)所示,我们直接对
F
F
u
s
e
∈
R
C
×
H
×
W
F_Fuse ∈R^{C×H×W}
FFuse∈RC×H×W进行通道压缩和扩展得到
f
S
→
∈
R
C
×
H
×
W
\overrightarrow{f_S} ∈R^{C×H×W}
fS∈RC×H×W,出于同样的原因,
f
S
→
\overrightarrow{f_S}
fS可以测量每个像素的重要性。
多尺度注意力融合模块
我们通过叠加像素注意力和区域注意力来获得特征图中不同位置的权重,权重的推导公式可由式(4)表示。如图4所示,我们最终通过元素乘法融合两个分支。区域注意的数学公式可以描述为式(5)。
SPASPP: Further extracting context information
- 提出一个新的串并行空洞空间金字塔池化(SPASPP)模块以进一步从特征图中提取上下文信息。与ASPP [ 6 ] ^{[6]} [6]的完全并行结构不同,这里堆叠了几个3×3空洞卷积。随后,将空洞卷积与全局池化后的上采样特征图堆叠得到的中间特征图连接起来。堆叠空洞卷积和连接旨在使用该上下文模块在预训练的ImageNet骨干网络之外快速增加感受野,同时也获得不同尺度的上下文信息。然后,使用1 × 1卷积压缩通道,并与输入进行残差连接。
- 图5具有不同空洞率的卷积核的融合形成了多尺度特性。使用加法模式而不是完全并行模式的目的是让模型获得更丰富的上下文信息,进一步扩大感受野,从而在需要较大感受野的任务中表现更好。表3表明,与ASPP相比,SPASPP可以提供更丰富的上下文信息,而无需额外添加卷积层,因此保持了与ASPP基本相同的速度。
3. 实验安排
数据集
- 使用DSNet在ADE2OK、Cityscapes和BDD上进行分割实验。
- ADE20K [ 50 ] ^{[50]} [50]数据集涵盖150个类别,包含25,000张图像,其中20,000张用于训练,2,000张用于验证,3,000张用于测试。在测试过程中,所有图像被调整为512 × 512
- Cityscapes [ 9 ] ^{[9]} [9]是一个为语义分割任务而设计的公开可用资源。它包含2975张精细标注的图像用于训练,500张图像用于验证,1525张图像用于测试。图像分辨率为2048 × 1024,对实时模型具有挑战性。这里只使用经过良好注释的数据集。
- BDD [ 46 ] ^{[46]} [46]数据集是为自动驾驶应用量身定制的全面存储库,具有19个不同的类别。它包含7000张图像的训练集和1000张图像的验证集,每张图像的大小为1280 × 720像素。
实验细节
- Training:在ImageNet[32]上进行预训练后,根据 [ 17 , 23 , 24 , 41 ] ^{[17,23,24,41]} [17,23,24,41]使用momentum为0.9的SGD optimizer。采用"poly"学习率策略来衰减初始学习率。数据增强包含随机水平翻转,随机缩放(范围为[0.4,1.6]),以及随机裁剪。对于DSNet,Cityscapes, ADE20K, BDD的迭代次数、初始学习率、权重衰减、裁剪大小和批量大小可以分别总结为[120k, 0.01, 0.0005, 1024 × 1024, 24], [150k, 0.02, 0.0001, 512 × 512, 32], [87k, 0.01, 0.0005, 512 × 512, 24]。对于DSNet-Base, Cityscapes、ADE20K、BDD的迭代次数、初始学习率、权重衰减、裁剪大小和批量大小可以分别总结为[120k, 0.01, 0.0005, 1024 × 1024, 32],[160k, 0.02, 0.0001, 512 × 512, 32], [108k, 0.01, 0.0005, 512 × 512, 16]。
- Inference:在一个由单个RTX 4090、PyTorch 1.10、CUDA 11.3、cuDNN 8.0和Ubuntu环境组成的平台上测量推理速度。根据 [ 29 , 41 ] ^{[29,41]} [29,41], 将批量归一化集成到卷积层中,并将批量大小设置为1,以测量推理速度。特殊速度比较。特别是,为了方便与一些基于mmcv框架 [ 8 ] ^{[8]} [8]开发的模型进行速度比较,我们还使用了RTX3090来推断速度,因为无论是将我们的模型移植到mmcv框架还是将基于mmcv框架的模型移植到我们的环境都是一个很大的时间开销。基于mmcv模型的速度可以在SCTNet [ 42 ] ^{[42]} [42]中找到。
消融实验
- MSAF for Two-branch Networks。我们对模型的三个横向连接采用了不同的融合方法。实验结果如表4所示。与元素级添加(Add)相比,所有三种注意力融合方法在分割任务中都表现出了优越性,以最小的速度损失提高了精度。尤其是所提出的多尺度融合模块在分类和分割任务中都表现出了卓越的性能,在Imagenet1k分类任务上实现了0.9%的提升,在Cityscapes上实现了0.7%的提升。与AFF和iAFF[10]相比,仍然取得了近0.4%的准确率提升。该实验评估了上文提出的关于使用空洞卷积的第三项建议。
- Efficiency of MFACB。为了证明MFACB的有效性,进行了一个简单的对比实验。采用了两种不同的策略,如表5中的EXP 1和EXP 2。为了确保实验的公平性,采用了相同的训练策略,两个实验都使用了两个RTX 4090 gpu,批处理大小为12,迭代次数为50,000次。从表中可以看出,在相同的空洞率和相同的空洞卷积数量下,MFACB取得了比BasicBlock
[
19
]
^{[19]}
[19]更好的性能。这进一步强化了我们决定在Context分支中使用MFACB。
- Efficiency of SPASPP。将SPASPP与其他上下文提取模块进行比较,包括空洞空间金字塔池化(ASPP)
[
6
]
^{[6]}
[6]和深度聚合金字塔池化模块(DAPPM)
[
29
]
^{[29]}
[29]。为了实现更高的基线,没有减少DAPPM的中间通道。由表6可以看出,本文提出的SPASPP将准确率从77.3%提高到80.4%,推理时间仅增加1-2ms。与ASPP相比,SPASPP在几乎没有速度损失的情况下提高了0.7%的准确率。
对比实验
-
ADE20K。目前,大多数基于cnn的实时分割方法主要侧重于城市场景,很少关注ADE20K数据集。最近的一项工作 [ 42 ] ^{[42]} [42]认为,ADE20K对基于cnn的轻量级模型提出了相当大的挑战,因为它收集了跨越150多个类别的大量图像。然而,从表7中可以看出,与其他基于cnn的模型不同,该研究在ADE20K上取得了很好的结果。实验结果表明,DSNets取得了目前速度和准确率之间最好的平衡。DSNet的准确率高于SegFormerB0、TopFormer-B和RTFormer-S,分别提高了2.6%、0.8%和3.3%。此外,DSNet的运行速度大约是这些模型的两倍。DSNet-Base还在精度方面优于SeaFormer-B和SegNext-T,同时保持更快的速度。与RTFormer-B相比,DSNet-Base仍然保持了1.3%的精度优势。
-
BDD。对于BDD [ 46 ] ^{[46]} [46]数据集,只有SFNet和SFNet- lite可以与本文的方法进行比较。SFNet-
lite [ 24 ] ^{[24]} [24]和SFNet [ 23 ] ^{[23]} [23]是目前实时BDD语义分割的前沿技术。从表8中的实验结果可得。本研究在实时BDD语义分割方面取得了最新的进展。具体而言,在速度更快的情况下,准确率比SFNet
(ResNet18)和SFNet- lite (ResNet18)提高了2.2%。与SFNet系列的更快版本相比,实现了3.4%
mIoU的准确率,比SFNet- lite
(STDC-2)更高,速度仅下降0.3ms。此外,DSNet-Base在非实时领域取得了最高的准确率。
- Cityscapes。之前基于cnn的实时工作将城市景观作为标准基准。从表9中可以看出,本文的方法在实时性和高精度之间取得了新的最先进的权衡。具体来说,DSNet在保持实时性能的同时达到了最高的精度。与SeaFormer- B-Seg100、AFFormer-B-Seg100和SegNext-T-Seg100相比,DSNet分别实现了2.7%、1.7%和0.6%的mIOU精度提升,同时保持了更快的推理速度。与SFNet、DDRNet23和PIDNet-M等最先进的CNN模型相比,DSNet仍然取得了最高的精度。此外,从表10中可以观察到,DSNet-Base与其他高精度模型如HRNet和DeepLabV3相比仍然具有很强的竞争力。
4. 总结
作者重新审视了空洞卷积的应用,并基于几个简单的准则提出了一种新的具有相同分辨率的双分支网络。DSNet在三个大型数据集上取得了很好的结果。由于该方法是实时的,因此在实际应用中可以取得显著的效果。
此外,为了进一步提高精度,可以考虑在上下文分支中将空洞卷积的大小替换为5 × 5或更大,这可能会导致更大的感受野。