赵伟枫
(昆明理工大学 信息工程与自动化学院,云南 昆明 650500)
语义分割任务[1-4]是对图像中的每一个像素进行分类,是像素级别的分类任务,广泛应用于自动驾驶[5]等领域。但是,标注像素级别的标签需要耗费大量的人力物力。目前研究人员利用电脑合成图像[6-7]训练卷积神经网络,由于合成图像的标签简单易得,因此理论上可以无限扩充数据集。在电脑合成数据集上训练的卷积神经网络应用在对应的数据集上具有很高的识别率,但是应用在现实场景图像中时却表现出较差的性能,原因是合成数据集和现实场景数据集中的图像存在域的差距。无监督域自适应方法可以将源域学到的知识迁移到目标领域中,从而有效解决语义分割中的域偏移问题[8-10]。
将合成图片数据集视为源域,即源域为带标签的数据集;将现实场景的图像数据集视为目标域,即目标域的图像是不带标签的。跨域语义分割任务的本质是如何利用源域数据集来引导网络对到目标域数据集图像的分类更加准确,也就是提取到更多具有域不变性质的特征。文献[11]和文献[12]将对抗思想应用在跨域语义分割任务中,但都只在整体层面上进行了对抗,没有考虑到城市道路场景图像中的空间位置关系。源域数据集和目标域数据集中的图像都是道路场景,图像中类的分布和空间位置关系有强烈的相关性[13]。例如,天空、树木等在图像的上部,交通标志、建筑等主要分布在图像的中部,而马路、行人等主要分布在图像的下半部分。图像中这种类别关系是不变的,如果不考虑这些位置关系直接利用对抗思想将两个域的图像拉近,往往会导致卷积神经网络去提取更容易识别的特征。考虑到上述方法存在的问题,根据图像的空间位置关系,本文提出了纵向分块对抗和横向分块对抗策略。为了使网络可以更多地关注到块内的特征,将源域图像分为整体和局部两个层面进行有监督的训练。
语义分割是计算机视觉任务中最具有挑战性的任务之一,目前大部分语义分割算法都是基于全卷积网络(Fully Convolutional Networks,FCN)[14]发展而来。为了扩大感受野,使卷积神经网络可以提取到更加丰富的特征,通常采用空洞卷积方法进行语义分割[15-19]。由于卷积神经网络的层数较多,利用较深层的特征图进行上采样得到的分割图往往会丢失较多的信息,因此研究人员提出了多尺度融合和多层金字塔池化的方法来融合不同层数的 特征。
语义分割任务需要像素级别的标签,但是像素级别的标签需要耗费大量的人力物力。文献[11]将对抗学习方法应用到跨域语义分割任务中,利用中间层和输出层的特征图分别进行对抗来实现跨域的目的。但是该研究没有考虑图像中的空间位置关系,在对齐两个域的特征的时候往往会导致一些类别的差距越拉越大导致负面的结果。文献[20]采用基于熵最小化的方法来进行无监督域自适应语义分割,利用目标域的输出预测图的熵值大小来衡量预测是否准确。但这种方法会使预测概率值高的类别在熵损失函数中有较大的梯度,网络就会更倾向于迁移简单样本(像素数量占比较大的类别)而忽略难样本。也就是说,采用基于熵最小化的语义分割方法会导致难样本难以迁移,加剧了类不平衡的问题,跨域效果较差。
图1 整体网络处理流程
此外,传统的方法在源域和目标域进行对抗训练的过程中,生成器会偏向于提取数量占比更多类别的特征而忽视数量占比较少的类别,导致在数据集中存在的类不平衡问题更加严重。而分块对抗方法可以从一定程度上解决这个问题,源域和目标域块与块之间的类别占比相较于整幅图像来说差距会明显缩小,在减少类别的同时对抗损失函数会更容易收敛。
考虑到不同类别在图像中的空间位置关系,利用分块的对抗方法来帮助网络提取源域和目标域中块与块之间的域公共信息。将源域特征图Fs∈RH×W×C均分为上、中、下3部分,分别为。同时将与之对应的目标域特征图Ft∈RH×W×C也分为上、中、下3部分,分别为、。针对整张特征图进行对抗损失,即:
式中:E(·)为期望值,D为鉴别器。根据式(1)在上、中、下3个位置做对抗损失,保证各个位置可以提取到与位置信息相关的域不变特征,即:
式中,Ladvup为上部分的对抗损失函数,Ladvm为中间部分的损失函数,Ladvd为下部分的损失函数。
道路场景数据集中类与类之间不仅存在上、中、下的空间位置关系,同时还存在左、中、右的空间位置关系。例如,在图像的中间的类别一般是道路、行人、汽车等,而在道路两旁的类别一般是树木、建筑、地台等。基于此,不仅在图像的上、中、下3部分进行分块对抗学习,同时也在图像的左、中、右3部分进行分块对抗学习。同时,为了尽可能多地提取到域不变信息,将分块对抗学习与整体对抗学习方法相结合,以此来保证网络能提取到尽可能多的有效信息。将源域特征图Fs∈RH×W×C均分为左、中、右3部分,分别为、。同时把与之对应的目标域特征图Ft∈RH×W×C分为左、中、右3部分,分别为。在左、中、右3个位置进行对抗损失,保证各个位置可以提取到与位置信息相关的域不变特征,即:
式中,Ladv1为左边部分的对抗损失函数,Ladvm为中间部分的损失函数,Ladvr为右边部分的损失函数。
由于本文将源域图像和目标域图像进行了上、中、下和左、中、右的分块操作,因此分别在块内利用标签进行有监督的训练。同时为了不丢失图像整体之间类与类之间的相关联性,将分块交叉熵损失与整体交叉熵损失相结合,保证网络能够同时提取局部和整体的特征。整体交叉熵损失函数为:
式中:G为分割网络,c为类别数目。为了提取到块内独有的特征,本文提出了分块的交叉熵损失函数,即:
总的损失函数为:
在深度学习框架PyTorch上进行实验,使用NVIDIA 2080TI GPU进行训练和测试工作。受限于GPU内存,在训练过程中把源域数据集GTA5中的图片剪裁为720×1 280像素,把源域数据集SYNTHIA中的图片剪裁为760×1 280像素,把目标域数据集Cityscapes中的图片剪裁为512×1 024像素。网络包含VGG16和ResNet101两种,采用随机梯度下降(Stochastic Gradient Descent,SGD)[21]优化器来优化分割网络,利用poly策略[22]来更新学习率。由于语义分割任务是预测像素级别的标签,因此为了使源域和目标域像素之间的风格更加相近,本文在BN(Batch Normalization)的基础上加入了IN(Instance Normalization)来实现域之间像素分割的靠拢[23]。
为了验证本文所提方法的有效性,分别做了数据集GTA5到Cityscapes和数据集Synthia到Cityscapes的跨域实验,采用平均交并比(Mean Intersection over Union,MIoU)评 测 实 验 结 果。MIoU表示模型对每一类预测的结果和真实值的交集与并集的比值,求和再平均的结果。
为了保证实验结果的有效性,利用ResNet101和VGG16两种网络作为基础框架进行实验。将本文所提方法与Adapt[11]、CLAN[24]以及Advent[20]跨域语义分割方法在GTA5数据集到Cityscapes数据集的19个公共类上进行跨域实验,定量评价结果如表1所示。Adapt和CLAN主要采取对抗损失的方法来对齐两个域的特征分布,Advent则利用熵值最小化的思想通过约束目标域预测图的熵值损失函数来对齐两个域。
表1 数据集GTA5到Cityscapes的跨域语义分割MIoU值对比
由表1可知,本文所提方法对Road、Wall、Fence以及Sky等类别的识别率较高,优于从整体层面进行对抗的方法,不仅对主要类别的像素级分类起到了正向的作用,同时对次要类别以及占比极小类别的分类正确率也有一定的提升。
除此之外,开展Synthia数据集到Cityscapes数据集的跨域实验。由于Synthia数据集到Cityscapes数据集之间的域差异比GTA5到Cityscapes数据集之间的域差异要大,因此在Synthia数据集到Cityscapes数据集的跨域语义分割是非常有挑战性的。表2给出了不同方法在13个公共类上的MIoU值。
表2 数据集Synthia到 Cityscapes的跨域语义分割MIoU值对比
通过观察可以发现,本文所提出方法在Synthia到Cityscapes的跨域语义分割中同样取得了较好的结果。
GTA5到Cityscapes的跨域语义分割的视觉效果如图2所示。
根据图2,本文方法不仅较好地分割出了公交车、建筑物以及道路等主要类别,而且相较于其他方法对次要类别的分割效果也有了明显的提高。对于较为复杂的城市道路场景图像,其包含的类别较多,本文所提方法能够显著提高对交通标志、栏杆的分割效果,同时分割边缘也更加平滑。基于以上分割结果对比,本文所提出的分块对抗跨域语义分割方法可以有效提升图像的分割效果,并且缓解了数据集中存在的数据不平衡等问题。
图2 GTA5到Cityscapes上的分割效果
为了提升图像跨域语义分割网络的性能,本文充分挖掘了城市道路场景图像中类别之间的空间位置关系,提出了分块对抗学习的方法。相较于现有的跨域语义分割方法,基于位置对抗学习的道路场景无监督域自适应语义分割在分割效果方面有了一定的提升。但是该方法也存在一定的局限性,例如域之间的位置信息挖掘得不够充分,导致模型在一些类别较复杂的场景仍会出现错误分类的情况。在接下来的工作中,将会寻找更加有效的方法来建立类与类之间的位置关系,进一步优化跨域语义分割 网络。