时间Vs杀手

论文笔记:《Adversarial Learning for Semi-Supervised Semantic Segmentation》
题目《Adversarial Learning for Semi-Supervised Semantic Segm...
扫描右侧二维码阅读全文
08
2019/01

论文笔记:《Adversarial Learning for Semi-Supervised Semantic Segmentation》

题目《Adversarial Learning for Semi-Supervised Semantic Segmentation》

代码地址:https://github.com/hfslyc/AdvSemiSeg
论文地址:https://arxiv.org/abs/1802.07934

摘要

我们提出了一种使用对抗性网络进行半监督语义分割的方法。然而现在大多数判别器被训练以用来辨别输入图像是真实的还是假的,我们以完全卷积的方式设计一个鉴别器,以便在考虑空间分辨率的情况下区分ground truth分割分布的预测概率图。我们表明,通过将对抗性损失与所提出的模型的标准交叉熵损失相结合,可以使用所提出的鉴别器来提高语义分割的准确性。此外,完全卷积鉴别器通过在未标记图像的预测结果中发现可信区域来实现半监督学习,从而提供额外的监督信号。与利用弱标记图像的现有方法相比,我们的方法利用未标记的图像来增强分割模型。PASCAL VOC 2012和Cityscapes数据集的实验结果证明了该算法的有效性。

1. 介绍

语义分割旨在将语义标签(例如,人,狗或道路)分配给图像中的每个像素。该任务对于广泛的应用是至关重要的,例如自动驾驶和图像编辑。已经提出了许多方法来解决这个任务,并且已经构建了丰富的基准数据集,其关注于不同的场景/对象类别集以及各种现实世界的应用。但是,由于大的对象/场景外观变化,遮挡以及缺乏上下文理解,此任务仍然具有挑战性。基于卷积神经网络(CNN)的方法,例如完全卷积网络(FCN),最近在语义分割的任务上取得了显着的改进,并且大多数最先进的算法基于FCN和其他附加模块。

尽管基于CNN的方法已经取得了惊人的性能,但它们需要大量的训练数据。 与图像分类和对象检测不同,语义分割需要针对每个训练图像准确的每像素注释,这可能花费相当大的花费和时间。 为了简化获取高质量数据的工作,半/弱监督方法已应用于语义分割任务。 这些方法通常假设在图像级别,框级别或点级别上有附加注释。

在本文中,我们提出了一种基于对抗性学习的半监督语义分割算法。 最近生成的对抗网络(GANS)的成功促进了有效的无监督和半监督学习的许多任务。 典型的GAN由两个子网络组成,即发生器和鉴别器,其中这两个子网络在训练过程中发挥相互博弈的作用。生成器采用样本矢量并输出目标数据分布的数据,例如人脸,而鉴别器旨在将生成的样本与目标数据区分开。 然后训练发生器以通过反向传播混淆鉴别器,并因此产生与目标分布中的样本类似的样本。 在本文中,我们应用类似的方法,并将分割网络视为GAN框架中的生成器。 与被训练以从噪声矢量生成图像的典型生成器不同,我们的分割网络输出给定输入图像的语义标签的概率图。 在此设置下,我们强制分段网络的输出在空间上尽可能接近ground truth标签映射。

为此,我们采用对抗性学习方案,并提出一种完全卷积鉴别器,学习将ground truth标签图与分割预测的概率图区分开来。 结合交叉熵损失,我们的方法使用对抗性损失,鼓励分割网络在高阶结构中产生接近ground truth标签图的预测概率图。 这个想法类似于使用概率图形模型,如条件随机场(CRF)[4,25,44],但在测试阶段没有额外的后处理模块。 另外,在推理期间不需要鉴别器,因此所提出的框架在测试期间不会增加任何计算负荷。 通过采用对抗性学习,我们在半监督环境下进一步利用所提出的方案。

在这项工作中,我们结合了两个半监督损失项来利用未标记的数据。 首先,我们利用我们的鉴别器网络生成的置信度图作为监督信号,以自学方式指导交叉熵损失。 置信度图指示预测分布的哪些区域接近ground truth标签分布,使得这些预测可以由分割网络经由掩蔽的交叉熵损失来信任和训练。 其次,我们在监督设置中采用的未标记数据上应用对抗性损失,这鼓励模型预测的未标记数据的分段输出接近ground truth。

这项工作的贡献总结如下。 首先,我们开发了一个对抗框架,可以在推理过程中不需要额外的计算负荷来提高语义分段的准确性。 其次,我们提出了一个半监督框架,并表明通过添加没有任何注释的图像可以进一步提高分割精度。 第三,我们通过利用未标记图像的鉴别器网络响应来促进半监督学习,以发现便于分割训练过程的可信赖区域。 PASCAL VOC 2012 [9]和Cityscapes [5]数据集的实验结果验证了所提出的对抗框架对半监督语义分割的有效性。

2. 相关工作

Semantic segmentation. 最近用于语义分割的最先进的方法基于CNN的快速发展。如[28]中所提出的,可以将分类CNN(例如,AlexNet [21],VGG [39]或ResNet [12])转换为用于语义分段任务的完全卷积网络(FCN)。然而,使用像素级注释标记图像通常是昂贵且困难的。为了减少标注图像的代价,近年来提出了许多弱监督方法。在弱监督设置中,分割网络不在具有完全注释的ground truth的像素级别进行训练。相反,网络训练有各种弱监控信号,可以很容易地获得。在最近的方法中,图像级标签被用作监督信号。 [36]和[35]中的方法使用多实例学习(MIL)来生成用于监督训练的潜在分割标签图。另一方面,Papandreou等人[33]使用图像级标签惩罚不存在的对象类的预测,而Qi等人[37]使用对象定位来细化分割。洪等人[15]利用标记图像训练分类网络作为反卷积的特征提取器。除了图像级监督之外,分割网络还可以使用边界框[6,19],点监督[2]或网络视频[16]进行训练。

然而,这些弱监督方法的表现不如完全监督的方法,特别是因为难以从弱监督信号推断出详细的边界信息。 因此,在一些方法中还考虑半监督学习以增强预测性能。 在这样的设置中,一组完全注释的数据和弱标记的样本用于训练。 洪等人[15] 在编码器 - 解码器框架中联合训练具有图像级监督图像和一些完全注释帧的网络。 [6]和[33]中的方法从弱监督设置推广到半监督设置,以利用额外的带注释图像数据。

与上述方法不同,我们所提出的算法可以在模型训练中利用未标记的图像,因此大大减轻了手动注释的任务。 我们将完全卷积鉴别器的输出视为监督信号,其补偿了图像注释的缺失并且实现了半监督语义分割。 另一方面,所提出的用于分割的自学习学习框架与[34]有关,其中未标记图像的预测图被用作ground truth。 然而,在[34]中,预测图在训练之前通过几个手工设计的约束进行了细化,同时我们基于所提出的对抗性网络模型学习了自学习的选择标准。

Generative adversarial networks. 由于提出了具有理论基础的GAN框架[10],因此在实施[1,3,8,31,38]和包括图像生成[38],超分辨率[22,24],光流[23],物体检测[42],域适应[13,14,41]和语义分割[29,40]等应用方面的一些改进引起了人们的极大关注。与我们最接近的工作是[29]提出的工作,其中对抗网络用于帮助语义分割的训练过程。 然而,该方法没有实现相对于基线方案的实质性改进,并且没有解决半监督设置。 另一方面,Souly等人 [40]建议使用GAN生成用于半监督语义分割的对抗性示例。 然而,这些生成的示例可能不足以接近真实图像以帮助分割网络,因为来自密集标签的视图合成仍然具有挑战性。

figure1.png

3. 算法概述

Figure 1 展示了我们所提出的算法的概述。所提出的模型包含两个模块:分割网络和鉴别器网络。分割网络可以是任何被用来做语义分割的网络(例如:FCN[28],Deeplab[4]和DilatedNet[43]),给定一个HxWx3维的输入图像,分割网络输出大小为HxWxC的分类概率图,其中C代表类别数。

我们的鉴别器网络基于FCN,鉴别器网络以类别概率图作为输入,输鉴别器输出的概率图中的每个像素代表这个像素是来自ground truth标签(p=1),还是来自分割网络(p=0)。不像典型的以固定大小图像作为输入(大多数为64x64),输出单个概率值的GAN鉴别器一样,我们把我们的鉴别器转换为一个可以接受任意大小的全卷积网络。最重要的是,我们表明这个转换对我们所提出的对抗学习策略是非常重要的。

在训练期间,在半监督的设置下,我们使用有标注和无标注的图像。当使用有标注图像时,分割网络受到和ground truth的交叉熵损失 $\mathcal{L}ce$ 和鉴别器的对抗损失$\mathcal{L}adv$的监督。注意:我们只使用有标注数据训练鉴别网络。对于无标注数据,我们使用提出的半监督方法来训练分割网络。在从分割网络获得到无标注图像初始的分割预测时候,我们将这个初始的预测图送入到鉴别器从而得到一个置信图。我们反过来使用自学方案将该置信图视为监督信号,以使用一个掩蔽的交叉熵损失$\mathcal{L}semi$去训练分割网络。这个置信图预测分割区域的质量,使得分割网络在训练期间可以被信任。

4. 用对抗网络进行半监督训练

在本节中,我们提出了建议的网络结构和分段学习策略以及鉴别器模块。

4.1 网络结构

Segmentation network. 我们采用DeepLab-v2[4]框架,将ResNet-101[12]在ImageNet数据集[7]和和MSCOCO [26]预先训练的模型作为我们的分割基线网络(见图1)。但是我们没有采用多尺度融合,因为这将占用单个GPU的所有内存,使得训练鉴别器非常困难。和最近的语义分割方法类似,我们去除了最后的classification layer并且修改了最后两个步长为2的convolution layers为步长为1,因此使得最后模型输出的特征图占原图大小的1/8。为了扩大感受视野,我们在conv4和conv5层采用了步长为2和4的扩张卷积[43]。 另外,我们在最后一层使用了Atrous Spatial Pyramid Pooling(ASSP)方法[4]。 最后我们使用上带有softmax的上采样层将特征图变为和输入图像一样的大小。

Discrimnator network. 我们使用的结构和[38]的鉴别器网路相似。包含5个4x4 kernel,{64,128,256,512,1}通道,步长为2的卷积层。每一个卷积层最后都跟一个参数为0.2的Leaky-ReLU,但是最后一层除外。为了把模型转换为一个全卷积网络,在最后一层加入了上采样层去将输出的大小变成和输入图一样。提醒:我们没有采用任何bacth-normalizaiton层,因为它仅仅在batch size非常大的时候才有用。

4.2 损失函数

给定一个大小为$HxWx3$的输入图像$\mathcal{X}n$,我们将分割网络表示为 $S(x)$ ,有$S(\mathcal{X}n)$得到预测图大小为$HxWxC$,其中$C$是类别数。我们将全卷积鉴别器表示为$D(x)$,以$HxWxC$大小的概率图作为输入,输出$HxWx1$的置信图。在所提出的方法中,鉴别器网络有两个可能的输入:分割网络的预测输出$S(\mathcal{X}n)$或者one-hot编码的ground truth向量$Yn$。

Discriminator network. 为了训练鉴别器网络,我们使用相对于两个类来说最小的空间交叉熵损失$ \mathcal{L}_D$ :

$$ \mathcal{L}_D = - \sum_{h,w}{(1-y_n)log(1-D(S(X_n))^{h,w})+y_nlog(D(Y_n)^{h,w})} $$

其中如果样本来自分割网络则$y_n = 0$,如果样本来自ground truth标签则$y_n = 1$。 另外, $ D(S(X_n))^{h,w}$ 表示$X$在位置$(h,w)$的置信图,$D(Y_n)^{h,w}$的定义也类似。为了把ground truth标签图转化为C-channel的概率图,我们在ground truth标签图使用了one-hot编码策略,$Y_n^{h,w,c}$为1如果$X_n^{h,w}$属于类别$c$,否则为0

鉴别器网络的一个潜在问题是它可以通过检测one-hot概率图来轻松辨别shi否来自ground truth。但是,我们在训练阶段没有遇到这个问题。一个原因是我们使用完全卷积方案来预测空间置信度,这增加了学习鉴别器的难度。此外,我们评估尺度方案[29],其中根据分割网络输出的分布将ground truth概率通道稍微扩散到其他通道。但是,结果显示没有差异,因此我们在这项工作中不采用这种方案。

Segmentation network. 我们通过最小化多任务损失函数来训练分段网络:

$$ \mathcal{L}_{seg} = \mathcal{L}_{ce} + \lambda_{adv}\mathcal{L}_{adv} + \lambda_{semi}\mathcal{L}_{semi} $$

其中$ \mathcal{L}_{ce}, \mathcal{L}_{adv}, \mathcal{L}_{semi} $表示多类别交叉熵损失、对抗损失和半监督损失。$\lambda_{adv}$和$\lambda_{semi}$是两个用来最小化所提出的多任务损失函数的权重。

我们首先考虑带标注数据的场景。给定一个输入图像$ X_n $,它的ground truth的ont-hot编码$Y_n$,以及分割网络的预测结果$S(X_n)$,交叉熵损失如下:

$$ \mathcal{L}_{ce} = - \sum_{h,w}\sum_{c\varepsilon C}{Y_n^{h,w,c}log(S(X_n)^{h,w,c})} $$

我们通过全卷积鉴别器所提供的损失$ \mathcal{L}_{adv} $来使用对抗学习。

$$ \mathcal{L}_{avd} = - \sum_{h,w}{log(D(S(X_n))^{h,w})} $$

通过这种损失,我们训练分割网络以通过最大化从ground truth分布产生预测结果的概率来欺骗鉴别器。

Training with unlabeled data. 在这里,我们在半监督学习的设置下考虑对抗训练。对于无标注数据,我们不使用$ \mathcal{L}_{ce} $因为没有ground truth标注。对抗损失$ \mathcal{L}_{avd} $仍然有效,因为它只需要鉴别器网络。但是,我们发现选择一个比有标注数据更小的$\lambda_{avd}$是非常重要的。这是因为对抗性损失可能过度校正预测以适应ground truth分布而没有交叉熵损失。

此外,我们在自学的学习框架内使用经过训练的鉴别器和未标记的数据。主要思想是训练有素的鉴别器可以生成一个置信图$D(S(X_n))$,可以用来推断出与ground truth分布相近的区域。然后,我们将此置信度图与阈值二值化以突出可信区域。此外,自学习,ground truth的one-hot编码$\hat{Y_n}$是集合$\hat{Y_n}^{h,w,c^{*}}$=1,如果$C^{*} = arg max_cS(X_n)^{h,w,c}$,半监督学习的结果定义为:

$$\mathcal{L}_{semi} = - \sum_{h,w}\sum_{c\varepsilon C}{I(D(S(X_n))^{h,w} > T_semi) · \hat{Y_n}^{h,w,c}log(S(X_n)^{h,w,c}) }$$

其中$I(·)$表示函数,$T_{semi}$是控制自学习过程中敏感性的阈值。 说明:在训练过程中$\hat{Y}_n$和指示函数的值为常量,因此上述公式可以被简单的视为一个掩蔽的空间交叉熵损失。在实验中,我们发现这种策略可以在$T_{semi}$在0.1和0.3之间稳定工作。

5. 实验结果

Implementation details. 我们使用PyTorch框架来实现所提出的算法,我们使用单个TitanX GUP 12GB内存来训练模型。为了训练分割网络,我们使用Stochastic Gradient Descent(SGD)优化方法, momentum为0.9, weight decay为$10^{-4}$,初始学习率为$2.5*10^{-4}$,如[4]所提到的,衰减率为0.9。为了训练鉴别器,我们采用Adam优化器[20],学习率为$10^{-4}$,衰减率和分割网络相同。对于文中所提到的超参数,$\lambda_{avd}$在训练有标注和无标注数据时分别被设置为0.01,0.001。我们设置$\lambda_{semi}$为0.1,$T_{semi}$为0.2。

对于半监督训练,我们在应用第4.2节中描述的训练方案时随机交错标记和未标记数据。注意,为了防止模型遭受初始噪声掩模和预测,我们在用标记数据进行5000次迭代训练之后开始半监督学习。我们联合更新分段网络和鉴别器网络。在每次迭代中,只有包含ground truth数据的批次用于训练鉴别器。当从数据集中随机抽取部分标记和未标记数据时,我们使用不同随机种子平均几个实验结果,以确保评估稳健性。

Evaluation datasets and metric. 在这项工作中,我们对两个语义分割数据集进行了实验:PASCAL VOC 2012 [9]和Cityscapes [5]。 在两个数据集上,我们使用平均交叉联合(平均IU)作为评估指标。

PASCAL VOC 2012数据集包含20个常见对象,每日捕获的照片上都有注释。此外,我们利用来自分割边界数据集(SBD)[11]的额外注释图像,并获得一组总共10,582个训练图像。我们在1,449张图像的标准验证集上评估我们的模型。在训练期间,我们使用尺寸为321×321的随机缩放和裁剪操作。 我们在PASCAL VOC数据集上训练每个模型进行20k次迭代,批量大小为10。

Cityscapes数据集包含50个驾驶场景视频,其中2975,500,1525个图像被提取并分别用19个类别进行注释,用于训练,验证和测试。每个带注释的帧是30帧片段中的第20帧,其中在训练过程中仅考虑具有注释的这些图像。我们将输入图像的大小调整为512×1024,无需任何随机裁剪/缩放。 我们在Cityscapes数据集上训练每个模型进行40k次迭代,批量大小为2。

PASCAL VOC 2012. 表1显示了PASCAL VOC 2012数据集的评估结果。为了验证半监督方案,我们随机抽样1 / 8,1 / 4,1 / 2图像作为标记数据,并将剩余的训练图像用作未标记数据。我们将提出的算法与FCN [28],Dilation10 [43]和DeepLab-v2 [4]方法进行了比较。证明我们的基线模型与最先进的方案具有可比性。请注意,我们的基线模型与没有多尺度融合的DeepLab-v2模型等效。对抗性损失使不同数量的训练数据的性能得到持续改善(从1.6%降至2.8%)。结合提出的半监督学习计划,总体上提高了3.5%至4.0%。图2显示了由所提出的方法生成的分割结果的视觉比较。我们观察到,与基线模型相比,分割边界实现了显着的改善。

figure2.png

Cityscapes. 表2显示了Cityscapes数据集的评估结果。 通过应用对抗性损失$\mathcal{L}_{adv}$,该模型在半监督设置下比基线模型获得0.5%至1.9%的增益。这表明我们的对抗训练方案可以鼓励分割网络从ground truth分布中学习结构信息。结合对抗性学习和提出的半监督方案,该算法实现了1.6%至3.3%的性能提升。

Comparisons with state-of-the-art methods. 表3显示了与[29]的比较,其利用对抗性学习进行分割。在对抗性学习过程中,[29]和我们的方法之间存在重大差异。首先,我们为各种分割任务设计了一个通用鉴别器,而[29]为每个数据集使用一个网络结构。其次,我们的鉴别器不需要RGB图像作为附加输入,而是直接在来自分割网络的预测图上操作。表3表明,与[29]中的方法相比,我们的方法平均IU增加了1.2%。

我们在表4中的半监督设置下显示结果。为了与[33]和[40]进行比较,我们的模型在原始PASCAL VOC 2012火车组(1,464幅图像)上进行训练,并使用SBD [11]设置为 未标记的数据。值得注意的是,在[33]中,图像级标签可用于SBD [11]集,而在[40]中,在训练阶段通过其生成器生成其他未标记图像。

Hyper-parameter analysis. 提出的算法由三个超参数控制:$\lambda_{adv}$和$\lambda_{semi}$用于平衡(2)中的多任务学习,而$T_{semi}$用于控制(5)中描述的半监督学习中的灵敏度。表8显示了在半监督设置下使用PASCAL VOC数据集对超参数的灵敏度分析。补充材料中提供了更多分析和结果。

我们首先在半监督设置下显示$\lambda_{semi}$的不同值与1/8数据量的比较。 我们将$\lambda_{adv} = 0.01$和$T_{semi} = 0.2$设置为比较。总体而言,所提出的方法实现了最佳平均IU为69.5%,增益为1.9%。当λsemi设置为0.1时。 其次,我们通过设置$λ_{adv}= 0.01$和$λ_{semi}= 0.1$来使用不同的$T_{semi}$值进行实验。随着更高的$T_{semi}$,所提出的模型仅信任具有高结构相似性的区域作为地面实况分布。总体而言,当$T_{semi} = 0.2$时,所提出的模型获得了最佳结果,并且对于宽范围的$T_{semi}$(0.1至0.3)表现良好。当$T_{semi}$ = 0时,我们相信未标记图像中的所有像素预测,这会导致性能下降。 图3显示了来自预测概率图的样本置信度图。

figure3.png

Ablation study. 我们在PASCAL VOC数据集的表6中介绍了我们提出的系统的消融研究。首先,我们研究使用完全卷积鉴别器(FCD)的效果。为了构造一个不完全卷积的鉴别器,我们用一个完全连接的层替换鉴别器的最后一个卷积层,该层输出单个神经元,就像典型的GAN模型一样。在不使用FCD的情况下,所有和八分之一数据的性能分别下降1.0%和0.9%。 这表明使用FCD对对抗性学习至关重要。其次,我们应用半监督学习方法而没有对抗性损失。 结果表明,标记数据的对抗训练对我们的半监督方案很重要。如果分段网络不试图欺骗鉴别器,则由鉴别器生成的置信映射将是无意义的,从而提供较弱的监督信号。

5. 结论

在这项工作中,我们提出了一种用于半监督语义分割的对抗性学习方案。 我们训练一个鉴别器网络,用标记和未标记的数据增强分割网络。对于标记数据,分段网络的对抗性损失旨在学习更高阶的结构信息而无需后处理。对于未标记的数据,由鉴别器网络生成的置信度图充当用于细化分割网络的自学信号。PASCAL VOC 2012和Cityscapes数据集的大量实验验证了所提算法的有效性。

figure4.png
figure5.png
figure6.png
figure7.png
figure8.png
figure9.png
figure10.png

Last modification:January 8th, 2019 at 03:42 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment