ADVENT: Adversarial Entropy Minimization for Domain Adaptation in Semantic Segmentation
论文代码:valeoai/ADVENT
本文应用的是迁移学习中的领域自适应方法,可以参考:https://blog.csdn.net/u013841196/article/details/80956828
其中的信息熵的内容可以百度查询一下。
- 拟解决问题:
- 语义分割是对图像中的每个像素点进行分类,因此需要大量的人工标注,费时费力。然而借助计算机虚拟图像技术,如3D游戏,可以轻易的获取大量的自动标注的数据。因此如何利用这些虚拟数据中的知识将其迁移应用到现实的语义分割任务中成为了一个趋势。
- 然而虚拟图像(论文中将其定义为源域数据)在很多情况下是不符合实际的应用的,也可以说成现实图像(论文中称其为目标数据)与虚拟图像的数据分布存在巨大的差距,如何缩小这种差距,让模型可以根据虚拟图像中的知识更好的应用到实际任务中成为了一个难点。
为了解决上述问题作者将最小化熵原理融合到无监督域适应(UDA)中,用来实现迁移学习的语义分割任务。传统的UDA方法大都是通过最小化源数据和目标数据的中间特征或最终输出分布之间的差异来逼近两种数据。、
在源域上是使用监督式学习的方式获得的模型,在与源域相似的图片上预测出来的语义分割图是低熵图,而利用这个模型直接预测目标域图像得到的预测图是高熵的,作者将其展示如下:
上图中的左边是源域和目标域中的分割结果图,右侧是这个分割图的熵值分布,我们可以看出,在源域的分割图中得到的熵值分布只有在物品的边缘部分具有很高的响应值。(图中颜色浅的部分是高响应的熵值)而在目标域中的预测熵图中存在了很多的噪声,从而增加了很多无用的熵值,因此作者认为减少目标域的熵值可以缩减源域与目标域之间的差距。
为了减少目标域的熵值,作者提出了两种方法1)直接最小化熵值2)利用对抗学习最小化熵值。首先介绍作者整个模型的结构,该模型的输入是源域图像与其准确的分割和目标域中的图像。图其模型结构图如下所示:
下面将详细的介绍该方法的过程。
- 源域模型训练
首先由于源域中含有完整的图像及其标签,因此完全采用监督式学习的方法来得到一个由源域数据得到的语义分割模型,作者使用的方法是Deeplab-V2,这个过程可以简单的描述为将一个图像输入到Deeplab-V2模型中,最后得到一个预测结果,然后根据预测分割图与实际分割图之间的误差进行反向传播更新模型的参数,最终得到了一个完整的基于源域数据学习到的模型。该模型的损失函数可以表示为:
其中xs表示的是源域中的图像,ys表示源域图像中对应的分割图,
- 最小化目标域熵值
为了实现这个目标作者提出了两种最小化目标域的方法,下面详细的介绍:
(1)直接最小化熵值方法
首先先要得到预测分割图,预测分割图是将目标域中的图像输入到上面由源域得到的模型中得到了一个预测图
在本文中作者使用的是信息熵,信息熵的定义如下:
所以目标域预测图的熵值分布图中每个像素点的计算方法如下:
最后作者将每个像素点的熵值相加得到了直接目标域图像的熵值:
如果单单只是使用直接最小化熵值的方法,则最终的模型的损失函数就是将源域监督模型的损失加上直接最小化熵值的损失:
其中的
-------------------------但是直接最小化熵值的方法是将每个像素值的熵值相加得到的,忽略了图像中的语义结构信息,为此作者又提出了一种基于对抗学习的最小化熵值方法---------------------
(2)基于对抗学习的最小化熵
为了将源域分布于目标域分布拉近,所有作者利用了weighted self-information 空间,在这个空间上最小化源域与目标域的分布,从而间接的最小化目标域的熵值。
首先定义图像x中的像素点(h,w)是第c类的概率表示为:
该方法的最终目的是为了让目标域得到的self-information map与源域的尽可能的像。由于源域的
因此判别器的目标函数如下:
如果使用基于对抗学习的最小化熵值方法,最终模型的损失函数如下所示:
其中的
- 结合Class-ratio先验。
由于最小化熵的方法可能偏向于一些简单的类,因此有时加入一些先验知识来指导学习是很有必要的。作者首先计算得到先验类别的向量ps,也是每个类别上的像素个数的l1归一化直方图。然后基于预测的,任何类的期望概率与类的先验概率之间的差距将被惩罚:
其中