基于域迁移的无监督语义分割
数据集
对于语义分割的域适配,主要基于两个计算机合成数据集
真实验证集:
- CITYSCAPE:https://www.cityscapes-dataset.com/
- CamVid:http://mi.eng.cam.ac.uk/research/projects/VideoRec/CamVid/
Bidirectional Learning for Domain Adaptation of Semantic Segmentation
2019 CVPR:通过图片迁移模型和域适应分割模型之间的相互学习,自监督的提升两者的性能
- 提出了一个闭环的双向学习系统,可以同时学习分割和图像迁移模型
- 提出一个自监督算法,能够基于图像变换结果在特征层增加源域和目标域的一致性
- 提出一种新的感知损失(perceptual loss),基于更新的分割模型控制图像迁移
论文链接:https://arxiv.org/abs/1904.10620
github:https://github.com/liyunsheng13/BDL
算法细节
前人的算法首先学习一个迁移网络将源域图像首先迁移到目标域,然后利用变换到目标域的原图像和对应标注训练一个分割网络。
本文在此基础上,交替的迭代更新 F 和 M 网络,以此获取更好的性能。
双向学习
前向更新就是根据求得的 F 利用一下损失函数更新分割网络 M
其中第一项对比了迁移之后图像和原始目标域图像分割结果的差异,第二项就是传统的迁移之后图像的分割误差
后向更新基于更新后的 M,在 GAN 误差和图像重构误差的基础上,增加感知误差(目标识别预训练网络获取特征的距离)
自监督学习提升 M
在公式 1 的基础上,论文引入目标域伪标签来进一步提升分割性能
其中 ssl 是目标域数据集的子集,开始所有得到的分割结果的置信度都不高,因此开始时 ssl 可能为空。这一过程能够通过下图理解
随着训练的进行,将有一部分数据能够很好的被迁移到目标域。此时就可以将这部分数据加入 ssl,同时基于提取的伪标签,可以很容易得将 ssl 映射回源域。此时需要迁移的目标域图像变少了,使得对抗学习可以集中在剩下的图像上。
网络和损失函数
而对应的 GAN 和 重构的损失函数如下
对应参数的意义:
实验结果
其中 表示第 k 轮外循环(通过前向和后向更新 F 和 M)第 i 轮内循环(通过自监督更新 M)的结果。
FDA: Fourier Domain Adaptation for Semantic Segmentation
2020 CVPR:通过简单的傅里叶变换并迁移低频部门实现域迁移。
论文链接:https://arxiv.org/abs/2004.05498
github:https://github.com/YanchaoYang/FDA
FFT 域迁移
算法细节
Fourier Domain Adaptation (FDA) 参数 beta
随着 beta 的增大,迁移之后的图像开始出现肉眼可见的差异,因此文中建议 beta <= 0.15
FDA for Semantic Segmentation
使用迁移后的源域图像和标注定义如下损失函数
同时添加如下正则化损失
其中 是 Charbonnier penalty 函数。
看程序就是计算最终分割图像交叉熵,缩放后代入Charbonnier penalty 函数。
自监督训练
基于之前训练得到的分割网络,生成目标域图像的伪标签。由于这是个自参照训练,因此论文着重考虑正则化问题。
文中使用上面介绍的 FDA 过程中不同的 beta 来生成多个模型,然后对分割结果取均值作为最后的分割结果。
最后增加网络输出与伪标签的 loss,最后整个自监督训练的 loss 为
实验结果
上图中 T=0 表示直接使用 6 式定义 loss 训练得到的结果。而 T=1 和 T=2 分别表示使用 8 式进行一次和两次自监督学习的结果。
从上图论文得出更大的 beta 表现出更大的方差能够更好地对目标域进行迁移。但是当使用伪标签进行训练时,迁移后原图像中心由于与目标域数据中心更接近,同时方差更小,而具有更小的偏差。因此在使用单个 FDA 时,推荐选择更大的 beta;而使用多个 beta 网络集成时,可以提高小 beta 所占的权重。下图给出了上述说明的图示。
最后给出可视化结果