论文地址:https://arxiv.org/abs/1802.10349
代码地址:https://github.com/wasidennis/AdaptSegNet
首先是基于pixel-level的理由:一方面,与基于特征描述图像全局视觉信息的图像分类不同,用于语义分割的高维特征编码了复杂的表示。因此,在特征空间中进行自适应不一定是语义分割的最佳选择。另一方面,虽然分割输出是在低维空间中,但其中包含丰富的信息,如场景布局和上下文。无论图像来自源域还是目标域,它们的分割都应该在空间和局部上具有很强的相似性。Thus, we utilize this property to adapt low-dimensional softmax outputs of segmentation predictions via an adversarial learning scheme.
1 整体框架
本篇论文是像素级别的域自适应,用了生成对抗网络的结构。网络结构包括语义分割网络G,鉴别器Di,i表示多层次对抗性学习中鉴别器的层次。*如图:故存在两个损失函数,一个是源域真值与预测值之间的损失,一个是源域与目标域输出之间的对抗损失,由于有这个损失,Di会将梯度反传给G,来迫使G产生更相似的分割结果。
2 输出空间域自适应
其中,对抗学习分为单级别的对抗学习和多级别的对抗学习。
(1)单级别的对抗学习
鉴别器训练:将分割网络的softmax输出输入到鉴别器,得到损失:
分割网络的训练:首先定义一个源域的分割输出Ps与真值之间的交叉熵损失:
其次,将目标域的图像输入分割网络,分割输出Pt,在将其输入到鉴别器,得到一个损失:
这个损失训练分割网络和鉴别器,使得Pt和Ps尽可能接近。
(2)多级别对抗学习
虽然在输出空间中执行对抗性学习可以直接适应预测,但是由于低级特征离高维的输出(我的理解是最后提取的特征图维度很高,很复杂,距离一开始的低级特征较远,但是低级别的特征包含很多信息)很远,它们不能很好地进行自适应。故作者在低层特征空间中加入了额外的对抗模块来增强自适应能力。将开始的loss函数扩展为:
i表示用来预测分割输出的级别。我们注意到,在通过单个识别器进行对抗性学习之前,每个特征空间的分割输出仍然是预测的。因此,Lseg和Ladv仍然保留了上述分割网络训练的形式。
故我们最后的优化目标是最小化源图像在G中的分割损失,同时最大化目标预测作为源预测的概率:
3 网络结构和训练
(1)鉴别器
利用全卷积保留信息空间。该网络由5个卷积层组成,其中kernel为4*4,stride为2,通道数分别为(64,128,256,512,1)。除了最后一层,每个卷积层后面都有一个0.2参数化的ReLU。在最后一个卷积层上添加一个上采样层,以便将输出重新缩放到输入的大小。我们不使用任何 batch-normalization layers,因为我们联合训练鉴别器与分割网络使用 a small batch size。
(2)分割网络
本文采用DeepLab-v2框架和在ImageNet上预训练的ResNet-101模型作为分割基础网络。但是,由于内存问题,我们没有使用多尺度融合策略。与最近的语义分割工作类似,我们删除了最后一个分类层,并将最后两个卷积层的步长从2修改为1,使得输出特征图的分辨率比输入图像的大小有效地提高了1/8倍。为了扩大接收域,我们分别在conv4和conv5层中使用了扩展卷积层,其步长分别为2和4。在最后一层之后,我们使用Atrous Spatial Pyramid Pooling (ASPP)作为最终的分类器。最后,我们应用一个上采样层和softmax输出来匹配输入图像的大小。
(3)多级别自适应模型
在此基础上,我们构造了上述的鉴别器和分割网络作为我们的单层自适应模型。对于多层结构,我们从conv4层中提取特征映射,并添加一个ASPP模块作为辅助分类器。类似地,为对抗学习添加了具有相同体系结构的鉴别器。图2显示了提出的多级适应模型。在这篇文章中,作者使用两个层次来平衡它的效率和准确性。
(至此,多层级就是利用了conv4和conv5)
(5)训练过程
在一个阶段进行联合训练。首先,在每个训练批次中,我们首先对源图像进行促进,利用(3)中的Lseg优化分割网络,生成输出Ps。对于目标图像,我们得到分割输出Pt,并将其与Ps一起传递给鉴别器进行(2)中的Ld优化。此外,我们还计算了(4)中目标域预测值Pt的逆向损失Ladv。对于(5)中的多级训练目标,我们只是对每个自适应模块重复相同的过程。
剩余的是训练的时候参数的介绍。