如何用GAN做语义分割

01

对抗学习

作者使用两个loss来监督。第一个是多个类别的交叉熵损失,这个loss主要是监督每个像素都能预测出正确的类别。第二个loss基于辅助对抗卷积网络,由于对抗卷积网络的视野要么是整个图像,要么是图像的很大一部分,因此higher-order label统计中的不匹配会受到对抗性损失的惩罚,这个是按照像素进行分类无法实现的(例如,用某类标记的像素区域的形状,或某类区域中的像素分数是否超过阈值)功能。
作者使用s(x)表示在给定大小为HxWx3的输入RGB图像x的情况下,分割模型生成的C个大小为HxWxC的类的类概率图。使用a(x,y)来表示输入是x时,对抗模型预测y是GroundTruth的概率,而不是由分割模型s( ·)预测的输出。给定N个训练图像xn的数据集和相应的标签yn,将损失定义为如下图:

训练对抗模型主要是优化第二个损失,即下图的二进制分类损失:

训练分割模型主要是减少多个类别的交叉熵损失,同时降低对抗模型的性能,使得分割模型生成的预测图对于Discriminator来说,很难将其与GroundTruth区分,相关的损失函数如下所示:

02

网络结构

作者对于Stanford Background dataset和Pascal VOC 2012 dataset这两个数据集分别采用了不同的分割网络。其中对抗网络的思想如下图,首先分割网络将RGB图像作为输入,并生成每个像素的类别预测,然后对抗网络将GroundTruth作为输入并生成类标签(1 =GroundTruth,或0 =合成)。

03

实验结果

在下图,作者给出了使用和不使用对抗训练的情况下使用此网络生成的分割结果。对抗训练可以更好地加强类别标签之间的空间一致性。它可以改善和强化大面积类别的概率,例如概率图描绘了天空和草丛,但也锐化了阶级界限,并在小范围内删除了错误预测的类别标签。

在两个数据集上的结果如下两表: