Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解

时间:2024-04-03 17:41:26
Title Gated-SCNN: Gated Shape CNNs for Semantic Segmentation
标题 Gated-SCNN: 门控形状CNN用于语义分割
pdf https://arxiv.org/pdf/1907.05740.pdf
code https://github.com/nv-tlabs/GSCNN

摘要

当前用于图像分割的最新方法形成了密集的图像表示,其中颜色,形状和纹理信息都在CNN中一起处理。然而,这可能并不理想,因为它们包含与识别有关的非常不同类型的信息。在这里,我们提出了一种新的用于语义分割的双流CNN体系结构,该体系明确将形状信息连接为一个单独的处理分支,即形状流,该分支并行处理与经典流的信息。这种架构的关键是连接两种流的中间层的新型门。具体而言,我们使用经典流中的high-level的**来控制形状流中的low-level的**,从而有效地消除噪声并帮助形状流仅专注于处理相关的边界相关信息。这使我们可以为图像流使用非常浅的体系结构,以图像级分辨率运行。我们的实验表明,这导致了一种高效的体系结构,该体系结构围绕对象边界产生了更清晰的预测,并显着提高了对较小和较小对象的性能。我们的方法在遮罩(mIoU)和边界(F分数)方面均达到了Cityscapes基准的最先进性能,比强基准提高了2%和4%。项目网站:https://nvtlabs.github.io/GSCNN。

1.简介

语义图像分割是计算机视觉中研究最广泛的问题之一,其在自动驾驶[42、17、57],3D重建[38、30]和图像生成[22、47]中皆有应用。近年来,卷积神经网络(CNN)导致几乎所有主要细分基准的准确性都得到了显着提高。一种标准实践是通过将完全连接的层转换为卷积层来使图像分类CNN体系结构适应语义分割的任务。然而,使用分类架构进行密集像素预测有几个缺点[51、37、58、11]。一个突出的缺点是由于使用池化层而导致输出的空间分辨率下降。这促使了几项工作[51、58、15、35、21]提出了专门的CNN模块,以帮助恢复网络输出的空间分辨率。

我们在这里辩称,由于颜色,形状和纹理信息都在一个深层的CNN中一起处理,因此架构设计也存在固有的无效性。请注意,这些信息可能包含与识别有关的非常不同的信息量。例如,可能需要查看完整且详细的对象边界以获取形状[2,33]的判别编码,而颜色和纹理包含相当低级的信息。这也可以提供一个洞察力,说明为什么残差[19],跳层[19、52]甚至密集连接[21]会导致最显着的性能提升。合并其他连接性有助于不同类型的信息跨不同规模的网络深度流动。但是,通过设计来解耦这些表示可能会导致更自然和有效的识别流程。

在这项工作中,我们提出了一种用于语义分割的新的两流CNN架构,该架构明确将形状信息连接为一个单独的处理分支。特别是,我们将经典CNN放在一个流中,并添加了一个并行处理信息的所谓形状流。我们明确禁止在最顶层之前在两个流之间融合信息。

我们架构的关键是新型门控,它允许两个分支相互作用。特别是,我们利用经典流中包含的更高级别的信息来消除形状流在其非常早期的处理中的**。通过这样做,形状流专注于仅处理相关信息。这允许形状流采用非常有效的浅架构,该架构可在全图像分辨率下运行。为了实现形状信息定向到所需流,我们使用语义边界损失对其进行监督。我们进一步利用了一个新的损失函数,该函数鼓励预测的语义分割与真实语义边界正确对齐,从而进一步鼓励融合层利用来自形状流的信息。我们将新架构称为GSCNN。

我们对Cityscapes基准[13]进行了广泛的评估。请注意,我们的GSCNN可以用作任何经典CNN主干网络的即插即用功能。在我们的实验中,我们探索了ResNet-50 [19],ResNet-101 [19]和WideResnet [56],并显示了所有方面的显着改进。就mIoU和F边界得分而言,我们比最新的DeepLab-v3 + [11]高出1.5%以上。对于较薄和较小的物体(例如,电线杆,交通信号灯,交通标志),我们的收益特别重要,在IoU方面,我们的收益可提高7%。

我们使用先验距离,进一步评估了距相机不同距离的性能。实验表明,在最大距离(即更远的物体)上,我们的mIoU始终比最新的基线好,最多可提高6%。

2.相关工作

2.1 语义分割

最先进的语义分割方法主要基于CNN。较早的方法[37,8]将分类网络转换为完全卷积网络(FCN),以进行有效的端到端语义分割训练。几篇著作[9、32、59、43、20、3、36、23、5]建议在网络输出上使用结构化预测模块(例如条件随机字段(CRF))来提高分割性能,尤其是在对象边界附近。为了避免昂贵的DenseCRF [29],[6]的工作对网络输出使用了快速域变换[16]滤波,同时还预测了来自中间CNN层的边缘图。我们还预测边界图以提高分割性能。与[6](使用边缘信息来细化网络输出)相反,我们将学习到的边界信息注入到中间CNN层中。此外,我们提出了专门的网络体系结构和双任务正则器以获取高质量的边界。

最近,新的体系结构设计推动了性能和推理速度的显着提高。例如,PSPNet [58]和DeepLab [9,11]提出了一个特征金字塔池模块,该模块通过以多个尺度聚合特征来合并多尺度上下文。与我们相似,[42]提出了一个两流网络,但是,在这种情况下,第二流的主要目的是恢复池化层丢失的高分辨率特征。在这里,我们明确地专门处理第二个流以处理形状相关的信息。一些工作[15,35,48]提出了使用学习的像素亲和力在中间CNN表示中进行结构化信息传播的模块。我们建议通过精心设计的网络和损失函数来学习高质量的形状信息,而不是学习专门的信息传播模块。由于我们仅将形状信息与分割CNN特征连接在一起,因此我们的方法可以轻松地合并到现有网络中以提高性能。

2.2 多任务学习

几项工作也探索了将网络合并为互补任务的想法,以提高学习效率,预测准确性和跨计算机视觉任务的通用性。例如,[45,39,27,26,28]的工作提出了使用多任务损失学习共享表示的统一体系结构。我们的主要目标不是训练多任务网络,而是实施一种结构化的表示,该结构利用了分割和边界预测任务之间的双重性。 [12,4]同时学习了分割和边界检测网络,而[31,40]学习了边界作为辅助分割的中间表示。与这些工作相反,语义和边界信息仅在损失函数处相互作用,我们将边界信息显式注入到分割CNN中,并且还提出了双重任务损失函数,该函数可同时完善语义掩码和边界预测。

2.3 门控卷积

关于语言建模的最新工作也提出了在卷积中使用门控机制的想法。例如,[14]提出用门控时间卷积代替通常在递归网络中使用的递归连接。另一方面,[53]提出将卷积与软门控机制一起用于*形式图像修复,[46]提出了门控PixelCNN用于条件图像生成。在我们的案例中,我们使用门控卷积运算符完成语义分割任务,并定义形状和规则流之间的信息流。

3.GSCNN

在本节中,我们介绍用于语义分割的门控形状CNN体系结构。如图2所示,我们的网络由两个网络流组成,后面是融合模块。网络的第一流(常规流)是标准分割CNN,第二流(形状流)以语义边界的形式处理形状信息。我们通过精心设计的门控卷积层(GCL)和本地监督来强制执行形状流以仅处理与边界有关的信息。然后,我们融合规则流中的语义区域特征和形状流中的边界特征,以产生精细的分割结果,尤其是在边界周围。接下来,我们详细描述框架中的每个模块,然后介绍我们新颖的GCL。

3.1 总体结构

3.1.1 常规流

此流用Rθ(I)R_θ(I)表示(参数为θθ),将高度为HH且宽度为WW的图像IR3×H×WI \in R^{3 \times H \times W}作为输入,并生成密集的像素特征。常规流可以是任何前馈全卷积网络,例如基于ResNet [19]或基于VGG [44]的语义分段网络。由于ResNets是最新的语义分割技术,因此我们在常规流中使用类似于ResNet的体系结构,例如ResNet-101 [19]和WideResNet [56]。我们将常规流的​​输出特征表示表示为rRC×Hm×Wmr \in R^{C \times \frac{H}{m} \times \frac{W}{m}},其中mm是常规流的下采样步长。

3.1.2 形状流

此流表示为SφS_φ表示(参数为φφ),该流使用图像梯度I\nabla I以及常规流的第一卷积层的输出作为输入,并生成语义边界作为输出。网络架构由与门控卷积层(GCL)交错的几个残差块组成。如下所述,GCL确保形状流仅处理边界相关信息。我们将形状流的输出边界图表示为sRH×Ws \in R^{H \times W}。由于我们可以从GT语义分割掩膜获得边缘真值,因此我们在输出边界上使用监督的二元交叉熵损失来监督形状流。
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解

3.1.3 融合模块

该模块表示为FγF_γ(参数为γγ),将来自规则分支的密集特征表示rr作为输入,并将其与形状分支输出的边界图ss融合在一起,从而保留了多尺度上下文信息。它将区域特征与边界特征相结合,并输出精细的语义分割输出。更正式地,对于KK个语义类别的分割预测,它输出分类分布f=p(ys,r)=Fγ(s;r)RK×H×Wf = p(y|s, r)=F_γ(s; r) \in R^{K \times H \times W},它表示像素属于K个类别中每个类别的概率。具体来说,我们使用ASPP[11]将边界图ssrr合并。这使我们能够保留多尺度上下文信息,并被证明是最新语义分割网络中的重要组成部分。
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解

3.2 门控卷积层(GCL)

由于估计语义分割和语义边界的任务紧密相关,因此我们设计了一种新颖的GCL层,该层有助于信息从常规流向形状流的流动。 GCL是我们体系结构的核心组件,它通过过滤掉其余信息,帮助形状流仅处理相关信息。请注意,形状流不包含常规流中的特征。或者说,形状流使用GCL来停用不相关的特征(high-level特征)。

我们在两个流之间的多个位置使用GCL。令mm表示位置数,令t0,1,mt \in 0, 1, ··· m是运行索引,其中rtr_tsts_t表示我们使用GCL处理的相应规则和形状流的中间表示。为了应用GCL,我们首先通过串联rtr_tsts_t,然后是归一化的1×11 \times1卷积层C1×1C_{1 \times1}和sigmoid函数σσ 来获得注意力图αtRH×Wα_t \in R^{H \times W},然后是:
αt=σ(C1×1(strt)) α_t=σ(C_{1\times 1}(s_t||r_t))
其中||表示特征图的串联。给定注意力图αtα_t,GCL首先执行sts_t与注意力图aa之间的逐元素乘法操作,然后进行残差连接并使用核wtw_t进行逐通道加权。在每个像素(i;j)(i; j),GCL计算为:
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解
s^t\hat{s}_t然后被传递到形状流中的下一层进行进一步处理。注意,注意力图的计算和门控卷积都是可微的,因此可以端对端进行反向传播。直观上,αα也可以看作是一张注意力图,它对重要的边界信息区域进行更大的权重加权。在我们的实验中,我们使用三个GCL,并将它们连接到常规流的第三,第四和最后一层。如果需要,可使用双线性插值对来自常规流的特征图进行上采样。

3.3 联合多任务学习

我们以端到端的方式共同学习规则流和形状流以及融合模块。我们在训练期间共同监督分割和边界预测。在这里,边界图是场景中目标和填充类的所有轮廓的二进制表示(图6)。我们在预测的边界图ss上使用标准的二进制交叉熵(BCE)损失,在预测的语义分割ff上使用标准交叉熵(CE)损失:
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解
其中s^RH×W\hat{s} \in R^{H \times W}表示GT边界,而y^RH×W\hat{y} \in R^{H \times W}表示GT语义标签。在这里,λ1λ_1, λ2λ_2是控制loss之间权重的两个超参数。

如图2所示,在将边界图ss馈入融合模块之前,对边界图ss进行BCEBCE监督。因此,BCEBCE损失更新规则流和形状流的参数。与标准语义分割网络中一样,最后用CECE损失监督语义类的最终分类分布ff,更新所有网络参数。对于边界的BCEBCE,我们遵循[50,54],并使用系数β来解决边界/非边界像素之间的高度不平衡。

3.4 双重任务正则化

如上所述,p(ys,r)RK×H×Wp(y|s, r) \in R^{K \times H \times W}表示融合模块的分类分布输出。令ζRH×Wζ \in R^{H \times W}表示电势,其代表特定像素是否属于输入图像II中的语义边界。它是对分割输出的执行空间导数计算得出的:
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解
其中GG表示高斯滤波器。如果我们假设ζ^\hat{ζ}是从GT语义标签f^\hat{f}以相同方式计算出的GT二进制掩码,则可以编写以下损失函数:
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解
其中p+p^+包含ζζζ^\hat{ζ}中所有非零像素坐标的集合。直观地讲,我们要确保与GT边界不匹配时对边界像素进行惩罚,并避免非边界像素主导损失函数。注意,上述正则化损失函数利用了边界空间中边界预测和语义分割之间的对偶性。

类似地,我们可以使用来自形状流sRH×Ws \in R^{H \times W}的边界预测来确保二元边界预测ss和预测语义p(ys,r)RK×H×Wp(y|s, r) \in R^{K \times H \times W}之间的一致性:
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解
其中ppkk分别遍历所有图像像素和类别。 Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解
对应于指示函数,而thrsthrs是置信度阈值,我们在实验中使用0.8。公式6统计的是形状流输出概率大于给定阈值thrs的这些像素点的损失。 对形状流输出边缘图和最终输出的分割图的边界信息进行统一。双重任务正则化器总损失函数可以写为:
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解
此处,λ3λ_3λ4λ_4是两个控制正则化器加权的超参数。

3.4.1训练过程中的梯度传播

为了通过Eq7Eq 7进行反向传播,需要计算Eq4Eq 4的梯度。让g=.g =||.||,偏导数对于给定参数ηη计算如下:
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解
由于arg max不是一个可微函数,我们使用了Gumbel softmax技巧[24]。在向后传递时,我们近似argmax操作用温度系数ττ:
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解
是超参数。算子G\nabla G*可以用Sobel kernel进行滤波计算得到。

4. 实验结果

结果在本节中,我们对具有挑战性的Cityscapes数据集[13]进行了框架各部分的广泛评估。我们进一步展示了我们的方法对几种骨干架构的有效性,并提供了我们方法的定性结果。

4.1 基本设置与评估指标

4.1.1 基线

我们使用DeepLabV3 + [11]作为主要基准。这构成了用于语义分割的最新架构,并且可以使用预训练的模型。在我们的大多数实验中,我们使用DeeplabV3 +的PyTorch实现,在骨干架构选择上与[11]不同。具体来说,我们使用ResNet-50,ResNet-101和WideResNet作为DeepLabV3 +版本的主干架构。为了进行合理的比较,在适用时,我们在表中将此称为“基准”。此外,我们还在验证集和Cityscapes(测试集)中已发布的最新方法进行了比较。

4.1.2数据集

我们所有的实验都是在Cityscapes数据集上进行的。该数据集包含来自德国和邻国27个城市的图像。它包含2975个训练,500个验证和1525个测试图像。此外,城市景观还包括20,000个其他粗略注释(即覆盖各个对象的粗多边形)。请注意,我们使用边界GT来监督形状流,因此,粗糙数据集对于我们的设置而言并不理想。因此,我们在实验中不使用粗略的数据。密集像素注释包括30个类别,这些类别经常出现在城市街道场景中,其中19个类别用于实际训练和评估。我们遵循[54,55,1]生成边界GT并监督形状流。

4.1.3 评估指标

我们使用三种定量方法来评估我们方法的性能。 1)我们使用广泛使用的联合交叉点(IoU)评估网络是否准确预测区域。 2)由于我们的方法旨在预测高质量边界,因此我们引入了另一个评估指标。具体来说,我们遵循[41]中提出的边界度量来评估语义边界的质量。此度量计算沿预测掩膜边界的F分数,给定距离上的小松弛。在我们的实验中,我们使用阈值0.00088、0.001875、0.00375和0.005,分别对应于3、5、9和12个像素。与IoU计算相似,我们在计算F分数时也会删除空白区域。由于没有为测试集提供边界,因此我们使用验证集来计算F分数作为边界对齐的度量。 3)为了评估分割模型在距相机的距离不同时的性能,我们使用了基于距离的评估,方法如下所述。

4.1.4 基于距离的评估

我们认为,对小(远)物体的高精度也很重要,但是,全局IoU度量不能很好地反映这一点。因此,我们以接近(固定)消失点附近的大小不同的裁剪作为距离的代表。在我们的示例中,这是通过沿除顶部以外的每个图像边裁切100个像素来执行的,结果裁切的中心是我们的近似消失点。然后,在给定预定义的裁剪因子cc的情况下:我们从顶部和底部裁剪cc,从左侧和右侧裁剪c×2c \times 2。直观地,较小的中心裁切拥有更大的权重对于距离照相机较远的较小对象。在图3中显示了该过程的说明。图4显示了每种裁剪的示例预测,说明了度量如何可以专注于评估不同大小的对象。
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解

4.1.5 实施细节

在我们的大多数实验中,我们都遵循Deeplab v3 +的方法[11],但使用实验中描述的更简单的编码器。我们所有的网络都在PyTorch中实现。我们使用800×800800 \times 800作为训练分辨率和sync BN。训练是在NVIDIA DGX工作站上进行的,该工作站使用8个GPU,每个batch的总大小为16。对于Cityscapes,我们使用1e-2的学习率并采用多项式衰减策略。我们为消融目的进行了100个epoch的训练,并在表1中以230个epoch展示了我们的最佳结果。对于我们的联合损失,我们设置λ1=20λ2=1λ3=1λ4=1λ1= 20,λ2= 1,λ3= 1和λ4=1。对于Gumbel softmax,我们设置τ=1τ= 1。我们所有的实验都是在Cityscapes精细数据集中进行的。

4.2 定量评估

4.2.1 验证集(miou/crop iou/edge f-score)

Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解
在表1中,我们根据区域精度(通过mIoU测量)比较了GSCNN与基准的性能。数字在验证集上报告,并在完整图像上计算(不裁剪)。在此指标中,我们实现了2%的改进,这是在此性能水平下的重要结果。特别是,我们注意到我们在小型物体(摩托车,交通标志,交通信号灯和电线杆)上取得了重大改进。

另一方面,表2在边界精度(由F分数衡量)方面,比较了我们的方法与基线的性能。同样,我们的模型表现要好得多,在最严格的条件下,其性能要比基准高出近4%。请注意,为公平起见,我们仅报告经过Cityscapes精细训练的模型。所有模型的推断都是在单一尺度上完成的。

在图5中,我们显示了我们提出的基于距离的评估方法相对于基线的性能。在这里,我们发现随着裁剪因子的增加,与DeeplabV3 +相比,GSCNN的性能越来越好。 GSCNN和DeeplabV3 +之间的性能差距从裁剪因子0(即不裁剪)的2%增大到裁剪因子400的接近6%。这证实了我们的网络对于距离摄像机更远的较小物体实现了显着改进。

4.2.2 cityscapes 基准

为了在测试集上获得最佳性能,我们使用了最佳模型(即常规流为WideResNet)。训练是在NVIDIA DGX工作站上使用8个GPU(batch总大小为16)完成的。我们使用GCL和双任务loss训练该网络达175个epoch,学习率为1e-2,并采用多项式衰减策略。We also use a uniform sampling scheme to retrieve a 800*800 crop that uniformly samples from all classes.。此外,我们使用比例为0.5、1.0和2.0的多尺度推理方案。由于边界损失需要精细的边界注释,因此在训练过程中我们不会使用粗略的数据。

在表6中,我们与在测试集上评估的Cityscapes基准上已发布的最新方法进行了比较。需要强调的是,我们的模型未在粗略数据上训练。令人印象深刻的是,我们可以看到我们的模型始终优于非常强的基准,其中一些基准还使用了额外的粗略训练数据。在撰写本文时,我们的方法在不使用粗略数据的已发布方法中也排名第一。
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解

4.3 消融实验

在表3中,我们针对常规流使用不同的编码器网络评估了我们方法的每个组件的有效性。为了公平起见,此表中的比较是针对我们自己的基准实现(即具有不同主干架构的DeepLabV3 +)进行的,使用相同的超参数集和ImageNet初始化从头开始进行训练。具体来说,我们将ResNet-50,ResNet-101和Wide-ResNet用于骨干架构。在此,GCL表示使用形状流训练的具有双重任务损失的网络,而Gradients表示在融合层之前也添加图像梯度的网络。在我们的网络中,我们使用Canny边缘检测器来获取此类梯度。从表中可以看出,就mIoU而言,我们的性能提高了1%至2%,对于边界任务,性能提高了约3%。

另一方面,表4展示了双重任务损失对边界对齐的F分数影响。我们说明了它在三个不同阈值处的作用。在此,GCL表示训练有GCL形状流而没有双重任务丢失的网络。关于基线,我们可以观察到双重损失在边界精度方面显着提高了模型的性能。具体而言,通过增加“双重任务”损失,在最严格的制度下,我们最多可以看到3%的改善。
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解

4.4 定性结果

Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解
在图7中,我们在Cityscapes测试集中提供了该方法的定性结果。我们通过在图8中突出显示我们的方法擅长的典型情况来将我们的方法与基线进行比较。具体地说,我们将这两种方法的预测误差可视化。在这些缩放的图像中,我们可以看到一群人站在两极密集的区域周围。在这里,Deeplab v3 +无法捕获极点,并且天真地将其归类为人类。相反,我们可以看到在我们的模型中极点已正确分类,行人的误差边界也变稀了。此外,交通信号灯等对象通常会在Deeplab v3 +中被预测为过度妥协的斑点(尤其是在距离较远的情况下),其形状和结构会在我们模型的输出中保留。
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解
图10显示了来自GCL的alpha通道。我们可以注意到门如何帮助强调输入要素图中边界/区域之间的差异。例如,第一个门强调了非常低级的边缘,而第二个和第三个则着重于对象级边界。门控的结果是,我们在形状流中获得了最终的边界图,该边界图准确地勾勒出对象和填充类。该流学习产生高质量的类不可知边界,然后将其馈送到融合模块。形状流的输出的定性结果如图6所示。

另一方面,在图9中,我们显示了从最终分割蒙版获得的边界。注意它们在较小和较小对象上的准确性。
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation——论文阅读理解

5. 总结

在本文中,我们提出了gatedscnn (GSCNN),这是一种新的用于语义分割的两流CNN架构,它将线状结构分割成一个单独的并行流。我们使用一种新的门控机制连接中间层和一个新的损失函数,利用语义分割和语义边界预测任务之间的二重性。我们的实验表明,这导致了一个非常有效的架构,可以产生更清晰的对象边界预测,并显著提高更薄和更小对象的性能。我们的架构在具有挑战性的Cityscapes数据集上实现了最先进的结果,在强基线上显著改进。