论文地址:https://arxiv.org/abs/1802.10349
代码地址:https://github.com/wasidennis/AdaptSegNet
1. Introduction
有时source和target 领域有很大的不同,使用监督模型的效果不是很好,为了解决这个问题,已提出知识转移或领域适应技术,以缩小源和目标域之间的差距。然而,不同于图像分类的任务,特征适应的语义分割。可能会受到高维度特性的复杂性的影响,这些特征需要对不同的视觉线索进行编码,包括外观、形状和上下文。这激励我们开发一种有效的方法来适应像素级的预测任务,而不是使用特征适应。
在语义分割中,我们注意到输出空间包含了丰富的信息,无论是在空间上还是在局部。例如,即使两个域的图像在外观上非常不同,它们的分割输出也有大量的相似点,例如,基于这个观察的空间和局部上下文,我们在输出空间中处理像素级的域适应问题。
本文提出了一种端到端的基于CNN的领域自适应算法,鉴别器区分输入是否来自源或目标分割输出。基于对抗网络,这个被提出的模型由两部分组成:1)一个分割模型去预测输出结果;2)提出的分割模型具有对抗性的损失,目的是为了欺骗鉴别器,目标是在输出空间中生成类似的分布,用于源或目标图像。
但是,一个问题是,较低级别的特性可能无法很好地适应,因为它们远离高级别的输出标签。为了解决这个问题,我们开发了一个多层次的trategy,通过在不同特征层次的分割模型中加入对抗性学习。
本文的贡献有两个,第一是提出了一个领域自适应方法对于像素级的语义分割通过对抗学习;第二是证明了在输出(分割)空间中的适应可以有效地对齐场景布局和局部上下文在源和目标图像之间。第三,开发了一种多层次的对抗学习方案,以适应不同层次的细分模型,从而提高了性能。我们使用像素级预测是结构化输出的属性。这包含了空间和局部的信息,提出了有效的领域适应算法的对抗在输出空间中学习。
2. Algorithmic Overview
2.1 Overview of the Proposed Model
这个算法由两部分组成:一个是分割网络G一个是判别器D。在这里,i指出了多级对抗性学习中的鉴别器的水平。两组图像I_s和I_t分别表示源和目标域。首先将源图像I_s(带标注)转发给分割网络进行优化,然后我们预测图像I_t(没有标注)的分割softmax输出p_t。因为我们的目标是对源和目标图像进行分割预测。我们将这两个预测作为鉴别器的输入,以区分输入是来自源还是目标域。通过对目标预测的对抗性损失,网络从D i到G传播梯度,这将鼓励G在目标域生成类似的分割分布到源预测。
2.2 Objective Function for Domain Adaptation
损失函数:
L_seg是交叉损失熵,使用真实标签在源领域。L_adv是对抗损失,通过对目标图像的预测分割,对源预测的分布进行预测。lambda_adv是平衡两个损失的权重。
3 Output Space Adaptation
不同于图像分类,基于描述图像的全局视觉信息的特征,在语义分割中学习的高维特征编码复杂的表示。
3.1. Single-level Adversarial Learning
分割softmax输出P=G(I)(H x W x C)C是类别数目。将P输入到全卷积判别器D中使用交叉损失熵L_d(两个类,一个是源领域一个是目标领域),损失函数如下:
如果这个样本是来自于目标领域,z=0;如果是来自源领域,z=1.
Segmentation Network Training
首先定义源领域的分割损失,
Y_s是真实标签,P_s=G(I_s)是分割输出;第二,在目标领域的图片,前向传播到G获得预测P_t=G(I_t),为了使P_t的分布更接近P_s,使用对抗损失L_adv:
3.2 Multi-level Adversarial Learning
虽然对抗学习可以调整预测,但是低级特征可能调整的不是很好,因为他们离输出比较远,和深度监督学习方法相似,使用额外损失,合并附加的对抗模块在低级特征空间为了增强自适应。训练目标如下:
其中,i表示用于预测分割输出的级别。我们注意到,在每个特征空间中仍然可以预测分割输出,然后再通过个体鉴别器进行对抗性学习。优化标准是:
Network Architecture and Training
Discriminator
判别器网络是由5个卷积层,核是4 x 4,步幅是2,通道数量是64,128,256,512,1.除了最后一层每一个卷积层后面都有一个leaky
Relu,参数是0.2.最后再添加一个上采样层 resize到和输入大小一样,不使用BN。使用一个小的batch size一起训练判别器和分割网络.
Segmentation Network
采用DeepLab-v2模型,以ResNet-101预训练在ImageNet作为分割网络。本文没有使用多尺度的混合策略.我们移除最后一个分类层,并将最后两个卷积层的跨度从2调整为1,使输出特性图的分辨率有效地达到输入图像大小的1/8。为了增大感受视野,本文在conv4和conv5卷积层分别stride是2和4.最后一个卷积层后使用了空洞空间金字塔池化作为最终的分类器,最后使用了上采样与softmax输出一起,以匹配输入的大小图像。
Multi-level Adaptation Model
我们构建了上述的鉴别器和分割网络作为我们的单级适应模型。对于多级结构,我们从conv4层提取feature map,并添加ASPP模块作为辅助分类器。类似地,在adversarial学习中添加了具有相同体系结构的鉴别器。
Network Training
本文发现联合训练分割网络和判别器是有效的。在每一个训练batch中,首先前向传播这个原图片I_s优化分割网络得到L_seg和产生输出P_s,对于目标图片I_t,获得分割输出I_t。把它和P_s一起传递到判别器中优化L_d,还要计算对抗损失L_adv对于多级预测,仅仅是重复一样的过程对于每一个自适应模块。
训练分割网络,使用SGD,Nesterov加速,momentum是0.9,weight decay是10e-4,初始化学习率是2.5 x 10e-4,使用poly学习率减少,power=0.9。训练判别器,使用Adam优化器,学习率为10e-4和分割网络一样的学习率下降方式,momentum设置为0.9和0.99。
lamda_adv=0.001,所提出的适应方法。输出空间的性能优于特征中的。适应在特征空间对λ_adv更敏感,导致训练过程更困难,而输出空间适应允许更广泛的范围。其中一个原因是由于在高维空间中进行了特征适应,因此鉴别器的问题变得更加容易。因此,这种适应性模型不能通过对抗性学习有效地匹配源域和目标域之间的分布。由于低水平的输出携带较少的信息来预测分割,所以我们在分割和对抗性损失中使用更小的权重。λ_seg_2= 0.1和λ_adv_2= 0.0002,λ_seg_1= 1和λ_adv_2= 0.001)。评价结果表明,我们的多层次对抗性适应进一步提高了分割的准确性。