Gated-SCNN: Gated Shape CNNs for Semantic Segmentation

门控-SCNN:用于语义分割的门控形状CNN

Project Website: https://nv-tlabs.github.io/GSCNN/
 
Abstract
    目前最先进的图像分割方法形成了一种密集的图像表示,其中的颜色、形状和纹理信息都是在深度 CNN 中一起处理的。然而,这可能不理想,因为它们包含与识别相关的非常不同类型的信息。 在此,我们提出了一种用于语义分割的新的双流CNN架构,其将形状信息显式地称为单独的处理分支,即形状流,其处理信息与经典流平行。 这种架构的关键是一种连接两个流中间层的新型门。具体地,我们使用经典流中的更高级激活来选通形状流中的低级激活,有效地去除噪声并帮助形状流只专注于处理相关的边界相关信息。这使得我们能够对在图像级分辨率上操作的形状流使用非常浅的结构。我们的实验表明,这导致了一种高效的体系结构,在对象边界周围产生了更精确的预测,并显著提高了对较薄和较小目标的性能。 我们的方法在Cityscapes基准上取得了一流的性能,在掩模(MIOU)和边界(F-Score)质量方面,在强基线上提高2%和4%。
 
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第1张图片
 
1. Introduction
    语义图像分割是计算机视觉中最广泛研究的问题之一[42,17,57],3D重建[38,30]和图像生成[22,47] ]举例子。近年来,卷积神经网络已经导致几乎所有主要分割基准的精度显著提高。一种标准的做法是通过将完全连接的层转换为卷积层,使图像分类 CNN 架构适应于语义分割的任务。然而,使用用于密集像素预测的分类结构具有几个缺点[51, 37, 58, 11]。 一个突出的缺点是由于池化层的使用导致输出的空间分辨率下降。这促使一些工作者[51,58,15,35,21]提出专门的CNN模块,帮助恢复网络输出的空间分辨率。我们认为,在结构设计中也存在内在的低效,因为颜色、形状和纹理信息都是在一个深层次的CNN中一起处理的。注意,这些信息可能包含与识别相关的非常不同的信息量。例如,可能需要查看完整和详细的目标边界才能得到形状的区分编码,而颜色和纹理包含相当低级别的信息。这也可能提供一个观点,为什么残差[19],层间跳跃[19,52]甚至密集连接[21]导致最显著的性能改善。合并额外连接有助于不同类型的信息在不同的网络深度范围内流动。然而,通过设计分开这些代表信息可能会导致一个更自然和更有效的识别渠道。
    在本文中,我们提出了一种新的用于语义分割的两流 CNN 结构,它将形状信息显式地连接为一个单独的处理分支。特别是,我们将经典的 CNN 保持在一个流中,并添加处理信息的所谓的并行形状流中。我们明确地不允许两个流之间的信息融合,直到最顶层。
    我们体系结构的关键是一种允许两个分支交互的新型门。特别是,我们利用包含在经典流中的更高层次的信息,在形状流的早期的处理阶段对其激活进行去噪。通过这样做,形状流只关注处理相关信息。采用一种非常有效的浅层结构,这允许形状流操作在完整的图像分辨率上。为了实现形状信息被引导到期望的流,我们用语义边界损失来监督。我们进一步开发了一种新的损失函数,该函数促使预测的语义分割与真值语义边界正确地对齐,这进一步促使融合层利用来自形状流的信息。 我们称之为新架构GSCNN
    我们在  Cityscapes 的基准上进行了广泛的评估。注意,我们的GSCNN可以即插即用的用于任何传统 CNN 主干的起点。在我们的实验中,我们应用 Resnet-50[19]、Resnet-101[19]和WideResnet[56],并都显示出显著的改进。我们的表现超过了最先进的DeepLab-v3[11],在  mIoU 超过1.5% 和 在 F-boundary score 超过4%。我们的提高对于更薄和更小的物体尤其重要。在 IoU 我们提高了7%。
 
2. Related Work
 
Semantic Segmentation. 目前最先进的语义分割方法主要是基于CNN的.早期的方法[37,8]将分类网络转换为完全卷积网络(FCNs),以有效地进行端到端的语义分割训练。一些工作[9,32,59,43,20,3,36,23,5]建议在网络输出上使用结构化预测模块,如条件随机场(Crfs),以提高分割性能, 尤其是关于目标边界。为避免损失DenseRF[29],[6]的工作使用快速域变换[16]对网络输出进行滤波,同时也预测来自中间CNN层的边缘图。我们还对边界映射进行了预测,以提高分割性能。与[6]使用边缘信息改进网络输出相反,我们将学习到的边界信息注入中间CNN层。此外,我们还提出了一个专门的网络体系结构和一个双任务正则化来获得高质量的边界.最近,性能有了很大的提高,推理速度被新结构的设计所驱动。例如,PSPNet[58]和DeepLab[9,11]提出了一个特征金字塔池模块,该模块通过在倍数尺度上聚合特征来整合多尺度上下文。与我们相似的是,[42]提出了两个流网络,但是,在它们的情况下,第二个流的主要目的是恢复与池层一起丢失的高分辨率特性。一些工作[15,35,48]提出的模块,使用学习像素的亲缘关系,以结构化的信息传播跨中间CNN表示。在这里,我们显式地专门化第二个流来处理与形状相关的信息。一些工作[15,35,48]提出了使用学习到的像素关联来进行结构化信息传播的模块跨越CNN中间表示。我们建议通过精心设计的网络和损失函数来学习高质量的形状信息,而不是学习专门的信息传播模块。由于我们简单地将形状信息与分段CNN特征连接起来,我们的方法可以很容易地结合到现有的网络中,以提高性能。
 
Multitask Learning. 一些工作还探讨了将网络结合到互补任务中的想法,以提高计算机视觉任务的学习效率、预测精度和泛化能力。例如,[45,39,27,26,28]的工作提出了使用多任务损失学习共享表示的统一架构。我们的主要目标不是训练多任务网络,而是实施一种利用分割和边界预测任务之间的二元性的结构化表示。同时学习分割和边界检测网络,而[31,40]学习边界作为辅助分割的中间表示。与这些工作相反,语义和边界信息只在损失函数时相互作用,我们将边界信息显式地注入到分割cnn中,并提出了一个双任务损失对语义掩码和边界预测进行细化的损失函数。
 
Gated Convolutions.最近关于语言建模的工作也提出了在卷积中使用门机制的思想。例如,[14]建议用门控时间卷积替换递归网络中通常使用的递归连接。另一方面,提出了自由图像修复采用软选通机制的卷积,[46]提出了条件图像生成的门控像素cnn(门控像素cnn)。另一方面,提出了 Free-Form Image Inpainting采用  soft-gating 机制的卷积,[46]提出了条件图像生成的 Gated PixelCNN。在这种情况下,我们使用门控卷积算子进行语义分割,并定义形状和常规流之间的信息流。
 
3. Gated Shape CNN
    在这一部分中,我们提出了我们的门式cnn结构的语义分割。Fig 2所示,我们的网络由两个网络流和一个融合模块组成。网络的第一个流 (“regular stream”) 是标准分割CNN,第二流 (“shape stream”) 以语义边界的形式处理形状信息。我们通过仔细设计的门卷积层(GCL)和局部监控,对形状流进行处理,只处理边界相关信息。然后,我们将常规流中的语义区域特征和形状流中的边界特征进行融合,以获得精确的分割结果,尤其是围绕边界的分割结果。接下来,我们将详细描述我们框架中的每个模块,然后是我们新颖的GCL。
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第2张图片
 
Regular Stream. 该流用 R_{\Theta }(I)表示,参数为θ,图像 I\euro R^{3\times H\times W},输入高度H和宽度W,产生密集的像素特征。常规流可以是任何前馈、完全对流的网络,如基于ResNet[19]的或基于VGG[44]的语义分割网络。由于 Resnet 是最新的语义分割技术,因此我们利用 Resnet-like 架构,例如 Resnet-101[19] 和 WideResnet[56] 作为常规流。我们将正则流的输出特征表示表示为 I\euro R^{C\times \frac{H}{m}\times \frac{W}{m}}R或RC或WM,其中m是正则流的跨距。
 
Shape Stream. 该流表示为 R_{\Theta }(I),具有参数的θ,以图像梯度为 \bigtriangledown I,并将常规流的第一卷积层的输出作为输入,并产生作为输出的语义边界。网络体系结构由几个与门卷积层(GCL)交织的残余块组成。下面解释的 GCL 确保形状流仅处理与边界相关的信息。我们将形状流的输出边界映射表示为 s \euro R^{H\times W}。由于我们可以从 GT 语义分割掩码中获取真值(GT)二进制边缘,所以我们在输出边界上使用监督的二进制交叉熵损失来监控形状流。
 
Fusion Module. 此模块以Fγ表示,参数为γ,输入为从常规流得到的密集特征表示 r ,将其与形状分支 s 输出的边界映射进行融合,以保留多尺度上下文信息。它将区域特征与边界特征结合起来,输出一个细化的语义分割输出。更正式地说,对于K语义类的分段预测,它输出一个分类分布 ,这表示像素属于k个类中的每一个的概率。具体来说,我们使用 Atrous Spatial Pyramid Pooling (ASPP) 将边界映射s与r合并。这使得我们能够保存多尺度的上下文信息,并被证明是最先进的语义分割网络的重要组成部分。
 
3.1. Gated Convolutional Layer
 
    由于估计语义分割和语义边界的任务密切相关,我们设计了一种新的 GCL  层,以方便信息流从常规流流向形状流。GCL是我们体系结构的核心组件,帮助形状流只通过过滤其他信息来处理相关信息。请注意,形状流不包含常规流的特性。相反,它使用GCL 来禁用它自己的激活,这些激活被常规流中包含的更高级别的信息认为是无关的。人们可以认为这是两个流之间的协作,其中功能更强大的流已经形成了对场景的更高层次的语义理解,帮助另一个流只关注于 相关部分自开始。这使得形状流能够采用有效的浅层结构,以非常高的分辨率处理图像。
    我们在两个流之间的多个位置使用 GCL 。  m 表示位置编号。 t 0 , 1 , m是一个运行索引, r t 和st表示我们使用 GCL 处理的相应常规流和形状流的中间表示。应用 GCL,我们首先通过连接 rt 和 st,然后是归一化的1×1卷积层 C_{1\times 1},然后是Sigmoid函数σ,得到一个注意图 \alpha_{t} \euro R^{H\times W}
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第3张图片
然后将  s\hat{ }_{t} 传递到形状流中的下一层以供进一步处理。注意,注意力映射计算和门控卷积都是可微的,因此反向传播可以执行端到端。直观地说,α也可以被看作是一种用重要的边界信息加权更重区域的注意图。在我们的实验中,我们使用三个 GCL 并将它们连接到常规流的第三层、第四层和最后一层。如果需要的话,使用双线性插值来对常规流中的特征映射进行上采样。
 
3.2. Joint Multi-Task Learning
 
    我们与融合模块融合模块采用端到端的方式联合学习规则流和形状流。在训练过程中,我们共同监督分割和边界图的预测。在这里,边界映射是场景中所有对象和类的轮廓的二进制表示( 图6)。我们在预测的边界图 s上使用标准二进制交叉熵(BCE)损失,并且使用预测的语义分段 f 上的标准交叉熵(CE)损失:
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第4张图片
 
     如图2所示。2、在将边界图s 送入融合模块之前进行边界图 s 的BCE监督。因此,BCE 损失函数 L_{BCE}^{\Theta \o }更新常规流和形状流的参数。语义类的最终分类分布 f 受 CE 损失的监督,例如在标准语义分割网络中的末尾处的CE,更新所有网络参数。在边界的情况下,我们遵循[50,54]并使用系数β来解释边界/非边界像素之间的高度不平衡。
 
3.3. Dual Task Regularizer
 
    如上所述,
p ( y | r, s ) R^{K\times H\times W}表示融合模块的分类分布输出。 \zeta \euro R^{H\times W}表示特定像素是否属于输入图像 i 中的语义边界的潜力。它是通过在分割输出上取一个空间导数来计算的,如下所示:
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第5张图片
p^{+}包含ζ和ˆζ中所有非零像素坐标的集合.直观地,我们希望确保边界像素在与GT边界不匹配时受到惩罚,并避免非边界像素影响损失函数。指出上述正则化损失函数利用了边界空间中边界预测和语义分割之间的对偶性。同样,我们可以使用来自形状流  s \euro R^{H\times W} 的边界预测,以确保二进制边界预测 s 和预测语义 p(y|r,s)之间的一致性:
p 和 k 分别在所有图像像素和语义类中运行,
对应于指示符函数, thrs 是置信阈值,我们在实验中使用0.8。总的双任务调整器丢失函数可以被写入为:
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第6张图片
 
3.3.1 Gradient Propagation during Training
 
为了等式 7 反向传播,我们需要计算等式 4 的梯度。 g = || . ||,关于给定参数 η 的偏导数可以计算如下:
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第7张图片
 
4. Experimental Results
 
在本节中,我们将在具有挑战性的CityScapes benchmark上对框架的每个组件进行广泛的评估。我们进一步展示了我们对几种骨干体系结构的方法的有效性,并提供了我们的方法的定性结果。
 
 
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第8张图片
 
Baselines. 我们使用DeepLabV3+[11]作为我们的主要基线。这使得现有的用于语义分割和预训练模型的体系结构是可用的。在大多数实验中,我们使用了我们自己的 Pytorch 实现 Deeplabv3+,这不同于在主干体系结构的选择中的[11]。具体来说,我们使用ResNet-50、ResNet-101 和 WideResNet 作为 DeeplabV3 版本的骨干架构。对于公平的比较,当适用时,我们将此作为我们表中的基线。此外,我们还比较了在验证集中和CityScapes benchmark(测试集)中发布的现有技术方法。
 
Dataset. 我们的所有实验都是在 CityScapes  数据集中进行的。该数据集包含来自德国和邻近国家27个城市的图像。它包含2975个训练数据,500个验证和1525个测试数据。此外,城市景观还包括20,000多个粗糙标注的城市景观(即,覆盖单个物体的粗多边形)。注意,我们用边界地对我们的形状流进行监督,因此粗糙子集对于我们的设置是不理想的。因此,我们在实验中不使用粗数据。密集像素标注包括30个经常出现在城市街道场景中的类,其中19个用于实际的训练和评估。我们遵循[54,55,1]生成真值边界,并监督我们的形状流。
 
Evaluation Metrics. 我们使用三个定量的度量来评估我们的方法的性能。1)利用广泛使用的交并比(IOU)来评价网络是否准确地预测区域。2)由于我们的方法旨在预测高质量的边界,因此我们包括另一个评价指标。具体而言,我们遵循[41]中提出的边界度量来评估我们的语义边界的质量。该度量沿着预测的掩模的边界计算 F-score,给定距离小的小松弛。在我们的实验中,我们使用分别对应于3、5、9和12个像素的阈值0.00088、0.001875、0.00375和0.005。类似于 IOU 计算,在计算F分数的过程中,我们还删除了空白区域.由于没有为测试集提供边界,所以我们使用验证集来计算 F-score 作为边界对齐的度量。3)我们在以下解释的IOU方面使用基于距离的评估,以便在距摄像机不同距离处评估分割模型的性能。
 
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第9张图片 Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第10张图片
Distance-based Evaluation. 我们认为,高精度对于小(远)对象也是重要的,然而,全局IOU度量不能很好地反映这一点。因此,我们以大约(固定)消失点周围的不同大小的作物作为距离的代替。在我们的情况下,这是通过沿每个图像侧裁剪100个像素来执行的,除了顶部之外,所得到的裁剪的中心是我们的近似消失点。然后,给定预定的裁剪系数 c, 裁剪:我们从上到下切c,从左和右切c×2。直观地,较小的居中的裁剪对远离相机的较小对象施加更大的权重。该过程的图示 在图3中,图4示出了每个裁剪中的示例性预测,示出了这些度量如何能够集中在不同大小的对象上。
 
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第11张图片
Implementation Details. 在我们的大多数实验中,我们遵循Deeplab v3+ [11]的方法,但使用了实验中描述的更简单的编码器。我们所有的网络都是在Py Torch实现的。我们使用800×800作为训练分辨率和批量归一化。训练在 NVIDIA DGX 工作站上进行,使用8个GPU,总批处理大小为16。对于城市景观,我们使用具有多项式衰减策略的学习速率为1e-2。为了消融的目的,我们进行了100个历元的训练,并 在表1中展示了230次的最佳结果。为了我们的联合损失,设置  λ1 = 20, λ2 = 1, λ3 = 1 and λ4 = 1.我们为Gumbel Softmax设置τ=1。我们所有的实验都是在 Cityscapes 好的数据中进行的。
 
4.1. Quantitative Evaluation
 
    在表1中 ,我们比较了我们的GSCNN和基线在区域精度方面的性能(由Miou测量)。这些数字在验证集上报告,并在完整图像上计算(不剪切)。在这个度量中,我们实现了2%的改进,这在这个性能级别上是一个重要的结果。特别是,我们注意到对于目标,我们取得了显著的改进: 摩托车,交通标志,红绿灯和电线杆。
 
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第12张图片
    另一方面, 表2 比较了我们的方法在边界精度方面的性能(F-score 测量)。类似地,我们的模型表现要好得多,在最严格的情况下比基线高出近4%。请注意,为了公平比较,我们只报告在 CityScapes 精细集中训练的模型。对所有模型的推断是在单个尺度上完成的。
 
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第13张图片
    在 图5中 ,我们基于所提出的基于距离的评估方法,显示了我们的方法与基线的性能。在此,我们发现,随着作物因子的增加,GSCNN与Deepplabv3+相比表现得越来越好。GSCNN与DeeplabV 3在表现上的差距从裁剪因子0(即不裁剪)的2%增加到裁剪系数400时的6%。 这证实了我们的网络对于离相机更远的较小的物体实现了显著的改进。
 
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第14张图片
   在 表6中,我们比较了在 城市 CityScapes 基准上公布的最新技术方法,并在测试集中进行了评估。必须强调的是,我们的模型不是针对粗数据进行训练的。令人印象深刻的是,我们的模型始终优于非常强大的基线,其中一些还可以使用额外的粗训练数据。在撰写本文时,我们的方法也被列为不使用粗数据的已发布方法中的第一位。
 
 
4.2. Ablation
 
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第15张图片
    在表3中,我们使用用于常规流的不同的编码器网络来评估我们的方法的每个组件的有效性。为了公平起见,这个表中的比较是针对我们自己的基线实现执行的(i.e DeepLabV3+ with different backbone architectures),使用相同的一组超参数和ImaGenet初始化从划痕中进行训练。具体来说,我们使用ResNet-50、ResNet-101和Wide-ResNet作为骨干架构.这里,GCL表示由具有双重任务损失的形状流训练的网络,梯度表示也在融合层之前添加图像梯度的网络。在我们的网络中,我们使用Canny边缘检测器来检索这些梯度。从表中我们可以看到,在mIOU方面,我们的性能提高了1%到2%,而在边界对准方面,我们实现了约3%的改善。
 
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第16张图片
    另一方面,表4显示了双重任务损失对边界对齐的F-score 的影响。   我们在三个不同的阈值处说明了它的效果。在这里,GCL表示在没有双重任务损失的情况下训练GCL形状流的网络。在基线方面,我们可以看到,双损失显着地改善了模型在边界精度方面的性能。具体地说,通过增加双重任务损失,我们看到在最严格的制度下提高了3%.
 
 
4.3. Qualitative Results
 
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第17张图片
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第18张图片
     在图7中,我们在Cityscape测试集上提供了我们的方法的定性结果。我们通过突出显示我们的方法 在图8中出色的典型案例,将我们的方法与基线进行比较。具体而言,我们可视化两种方法的预测误差。在这些放大的图像中,我们可以看到一群人站在一个人口密集的区域周围。在这里,DeepaBv3+无法捕获这些极点,并天真地将它们分类为人类。相反地,我们可以看到,在我们的模型极点被适当地分类,并且行人的误差边界也很薄。此外,交通灯等对象通常被预测为Deeplab v3(特别是较高距离)中的过度妥协点,在我们的模型输出中保留它们的形状和结构。 
 
Gated-SCNN: Gated Shape CNNs for Semantic Segmentation_第19张图片    
   
    图10提供了来自 GCL 的 alpha 通道的可视化。我们可以注意到门如何帮助强调传入特征图中边界/区域区域之间的差异。例如,第一门强调非常低的边缘,而第二和第三集中在目标级别的边界。作为门控的结果,我们在形状流中得到一个最终的边界映射,精确地勾画出目标和填充类。该流学习产生高质量的不可知类边界,然后将其输入到融合模块中。形状流输出的定性结果如 图6所示。
    另一方面, 在图9中,我们显示了从最终的分割掩码中获得的边界。注意它们在较薄和较小物体上的精确性。
 
5. Conclusion
 
    本文提出了一种新的两流CNN语义分割结构--门控-SCNN(GSCNN)。我们采用了一种新的选通机制来连接中间层,并利用语义分割和语义边界预测任务之间的二重性,提出了一种新的损失函数。我们的实验表明,这导致了一种高效的体系结构,在对象边界周围产生了更精确的预测,并大大提高了对较薄和较小对象的性能。 我们的体系结构在具有挑战性的 Cityscapes 数据集上取得了最先进的结果,大大改善了强大的基线.
 

你可能感兴趣的:(论文笔记,算法,python)