Learning to Adapt Structured Output Space for Semantic Segmentation -- CVPR 2018 论文笔记

      这篇 Learning to Adapt Structured Output Space for Semantic Segmentation 是 CVPR 2018 的 spotlight, 主要思想就是通过对抗学习的思想将 domain adaptation(DA) 和 semantic segmentation (SS) 相结合,在输出(分割)空间解决像素级的 DA 问题。作者也和大家分享了该论文的 Code.

文章目录

    • 1. 动机
    • 2. 摘要
    • 3. 创新点
    • 4. 网络结构与训练优化
      •   4.1 算法概述
      •   4.2 目标函数
    • 5. 实验结果与分析
    • 6. 结论

1. 动机

Learning to Adapt Structured Output Space for Semantic Segmentation -- CVPR 2018 论文笔记_第1张图片
      基于CNN方法的关键是注释大量可能包含场景变化的图像。然而,这种经过训练的模型可能不能很好地泛化到未见过的图像,特别是当训练(源)和测试(目标)图像之间存在领域差异时。在这种情况下,仅依赖于需要在不同场景中对每个像素的 ground truth 进行重新注释的监督模型将导致高昂的人工成本。这篇 paper 在输出空间学习自适应的动机是:虽然图像在外观上可能非常不同,但是它们的输出是结构化的,并且有许多相似之处,例如空间布局和局部上下文,这促使作者提出一种适配像素级预测任务的有效方法,而不是使用特征适配。

2. 摘要

      基于卷积神经网络的语义分割方法依赖于像素级 ground truth 的监督,但是对于未见的图像域可能泛化地不够好。由于标注过程繁琐且劳动密集,因此提出能够使源域 ground truth 标签适应于目标域的算法具有重要的意义。本文提出了一种在语义分割背景下进行领域自适应的对抗学习的方法。将语义分割看作是包含源域和目标域空间相似性的结构化输出,在输出空间中采用对抗学习。为了进一步增强自适应模型,我们构建了一个多层次的对抗网络,在不同特征层上有效地完成输出空间的领域自适应。在不同的领域自适应设置下进行了大量的实验研究,包括合成到现实以及跨城市的场景。结果表明,该方法在精度和视觉质量上均优于现有的先进方法。

3. 创新点

     (1)基于对抗学习提出了像素级语义分割的 DA 方法;
     (2)证明了在输出(分割)空间进行适配可以有效地对齐源域和目标域图像的场景分布和局部上下文信息;
     (3)提出了一个多层对抗学习机制来适配分割模型不同层的特征,这可以提升性能。

4. 网络结构与训练优化

Learning to Adapt Structured Output Space for Semantic Segmentation -- CVPR 2018 论文笔记_第2张图片

  4.1 算法概述

        给定源域和目标域中大小 H ∗ * W 的图像,通过分割网络获得输出预测。对于 C 类的源域预测,基于源域 ground truth 计算分割损失。为了使目标域预测更接近于源域预测,使用判别器来区分输入来自源域还是目标域。然后在目标预测上计算对抗损失,并将其反向传播到分割网络。此过程被称为一个自适应模块,并在这里通过采用两个不同层次的自适应模块来说明我们提出的多层对抗学习。( 流程:(a)首先将带标注的源域图像 I s I_s Is 输入到分割网络中,对分割网络 G G G 进行优化;(b)然后对无标注的目标域图像 I t I_t It 预测分割 softmax 输出 P t P_t Pt;(c)因为我们的目标是使源域和目标域的分割预测( P s P_s Ps P t P_t Pt)彼此相近,所以我们 将这两个预测作为判别器 D i D_i Di 的输入来区分输入是来自于源域还是目标域。对目标预测做对抗损失,网络从 D i D_i Di G G G 传播梯度,这将促使 G G G 在目标域中生成和源域预测相似的分割分布。)

  4.2 目标函数

      优化目标为:
在这里插入图片描述
      最终的目的是最小化源域图像在 G G G 中的分割损失,同时最大化目标域预测看作源域预测的概率。
  4.3. 网络训练优化
      单层对抗学习:
在这里插入图片描述
其中, L s e g L_{seg} Lseg 是在源域中使用 ground truth 标注的交叉熵损失,而 L a d v L_{adv} Ladv 是使目标域图像的预测分割适配于源域预测分布的对抗损失。在公式(1)中, λ a d v \lambda_{adv} λadv 用于平衡这两个损失的权重。
    (a)判别器训练:Learning to Adapt Structured Output Space for Semantic Segmentation -- CVPR 2018 论文笔记_第3张图片
其中, z = 0 z=0 z=0 表示样本来自于目标域, z = 1 z=1 z=1 表示样本来自于源域。
    (b)分割网络训练:首先定义公式(1)中的分割损失,在这里插入图片描述
其中, Y s Y_s Ys 是源域图像的 ground truth 标注, P s = G ( I s ) P_s=G(I_s) Ps=G(Is) 是分割输出。然后,对目标域图像进行分割预测 P t = G ( I t ) P_t=G(I_t) Pt=G(It) 。为了使 P s P_s Ps P t P_t Pt 的分布更加接近,在公式(1)中用一个对抗损失 L a d v L_{adv} Ladv在这里插入图片描述该损失函数用来训练分割网络,并且通过最大化目标域预测看作源域预测的概率来骗过判别器。
      多层对抗学习:分割网络的训练目标函数可以改写为下式在这里插入图片描述其中 i i i 表示用于预测分割输出的层。我们注意到,在通过用于对抗学习的单个判别器之前,分割输出仍然是在每个特征空间中预测的。因此, L s e g i ( I s ) L^{i}_{seg}(I_s) Lsegi(Is) L a d v i ( I t ) L^{i}_{adv}(I_t) Ladvi(It) 分别保持与公式(3)和(4)相同的形式。
      优化过程:为了训练提出的单/多层自适应模型,我们发现在一个阶段中联合训练分割网络和判别器是有效的。在每个训练 batch 中,首先输入源域图像 I s I_s Is 为公式(3)中的 L s e g L_{seg} Lseg 优化分割网络 G G G 并生成输出 P s P_s Ps。然后得到目标域图像 I t I_t It的分割输出 P t P_t Pt,并将其与 P s P_s Ps 一同输入到判别器中来优化公式(2)中的 L d L_{d} Ld。此外,对目标预测 P t P_t Pt 计算公式(4)中的对抗损失 L a d v L_{adv} Ladv。对于公式 (5) 中的多层训练目标,我们只是对每个自适应模块简单地重复相同的步骤。

5. 实验结果与分析

    训练集用的是 GTA5 和 SYNTHIA 数据集的 synthetic 图像,测试集用的是 Cityscapes 数据集的 real-word 图像。作者不仅在 synthetic 到 real-word 的任务上做了实验,还在 Cross-City 数据集上做了跨城市的任务实验。实验结果表明,提出的 DA 方法在准确率和视觉质量方面均优于 state-of-the-art 算法。详细的实验结果与分析可以直接看 paper 中的 Section 6,这里不赘述。

6. 结论

    在本文中,作者利用了这样一个事实,即分割是结构化输出的,并且在源域和目标域之间共享许多相似之处。通过输出空间中的对抗学习来解决 SS 的 DA 问题。为了进一步增强自适应模型,作者构建了一个多层的对抗网络,在不同的特征层上有效地完成输出空间的领域自适应。实验结果表明,该方法优于众多的 baseline 模型和 state-of-the-art 的算法。作者希望他们提出的方法可以成为各种像素级预测任务中的一个通用的自适应模型。

你可能感兴趣的:(Domain,Adaptation,Transfer,Learning)