Pixel-Level Cycle Association: A New Perspective for Domain Adaptive Semantic Segmentation
NeurIPS 2020
摘要
域适应的语义分割任务用的比较多的是用对抗的方法去做,它从全局考虑来缩小两个域之间的差异,由于这些方法关注的是全局差异,域内或域间像素之间的关系focus的比较少,因此关键问题是如何确保从源域学到的知识有效地迁移到目标域。这篇文章则从域间pixle-level相似度出发,既要缩小域之间的Gap,又要增强taget pixel 的判别性。
一、What’s new
从像素之间的相似性角度来减小domain-shift,这得和image-level去比较,图像是结构化数据,比如对抗的方法,它仅仅是对齐整个图像,而像素之间的关联考虑的比较少。借鉴infoNCE loss,最大化相似性和最小化差异性。基于内部像素之间的相似性,采用Spatial Aggregation,梯度能够diffusion到整张target图像
二、Technoloy
- 先从sourece图像采样像素点,从目标域中找到与它最相似的像素点(计算相似性时,用pixel的特征去计算),然后循环,找到与之最相似的source域的像素点(跟cycleGan一样,只不过cycleGan是image-level出发),如果循环回来的像素点是同一个类别,则满足循环一致性。
- 那些满足循环一致性的像素点进行对比增强(trick 1)
- 对每个目标像素进行空间特征聚合,并采用内部像素相似性来确定其他像素特征的重要性(trick 2)
1.像素级的循环关联
Backgroud:源域S和目标域T,两个域具有相同的类别,用S和T一同去训练分割网络
过程:
- 得到源域的feature map
F
s
F^s
Fs和目标域的feature map
F
t
F^t
Ft,采用余弦相似度公式计算每个源域像素点和目标域像素点的之间的相似度
D ( F i s , F j t ) = ⟨ F i s ∥ F i s ∥ , F j t ∥ F j t ∥ ⟩ D\left ( F_{i}^{s}, F_{j}^{t} \right ) = \left \langle \frac{F_{i}^{s}}{\left \| F_{i}^{s} \right \|} , \frac{F_{j}^{t}}{\left \| F_{j}^{t} \right \|} \right \rangle D(Fis,Fjt)=⟨∥Fis∥Fis,∥∥Fjt∥∥Fjt⟩
根据公式,给定源域像素点 i i i,从目标域像素点中选择与它最相似度的像素点 j ∗ j^* j∗,同样再根据 j ∗ j^* j∗,选择与 j ∗ j^* j∗最相似的源域像素点 i ∗ i^* i∗。若 i i i和 i ∗ i^* i∗像素点对应相同的类别,即 y i s y_{i}^{s} yis= y i ∗ s y_{i^*}^{s} yi∗s(GT label),则像素点对( i i i, j ∗ j^* j∗)和( j ∗ j^* j∗, i ∗ i^* i∗)满足循环一致性,这时需要enhance their connections。
最直接的方法是在训练的时候,maximize它们的特征相似度,然而,像素级特征除了包含语义信息外,还包含丰富的上下文信息和结构信息,直接最大化它们的相似性可能会引入bias,因为像素对来自不同的图像,它们的上下文或结构可能不完全相同。因此采用对比增强的方法,即让相关联的像素对的相似度比其他像素对更高(与之相关的加强,不相关的降低),采用的loss类似于infoNCE loss
对上式公式,需要做contrast 归一化(减均值/标准差),对比学习的核心思想是最大化相似性和最小化差异性的损失
2.通过Spatial Aggregation的梯度扩散
- 像素级的循环关联通常只能cover一小部分target像素:比如,循环关联像素对的过程中可能存在重复的目标像素;也可能部分目标像素点的语义和原域像素点不同。作者希望反向传播时,梯度能够diffuse到target上各个像素点。因此只需对关联的target像素点做些变换:
这样做的目的是希望在训练的时候尽可能cover到所有的target像素点,至于每个像素点的权重,还是采用contrast的方法,与之最相关的分配大一点的权重,反之,小一点。论文中把 F j t F_j^t Fjt叫做seed点。
3.Multi-Level Association(多层关联)
- 对最后的预测结果也进行循环关联,具体过程同feature-map循环关联类似,只不过在计算相似度时采用KL散度,
注意, i i i和 j j j是从相同的类别中采样的像素点。loss类似, association过程中也进行contrast 归一化和Spatial Aggregation
4.整个训练目标函数
第一项是交叉熵损失函数:
第二项是对源域数据的lovasz-softmax loss(缓解数据不平衡的负面影响),第三项Multi-Level Association loss:
最后一项是标签平滑项,M是所有的类别,公式含义是对所有输出的预测结果平滑操作,能够更加反映类与类之间的关系,在数据拟合和跨域关联之间进行trade-off
补充点基础:
P: 在多项式时间内可以被解决的问题
NP: 在多项式时间内可以被验证的问题,但解决时间不确定。NP问题其解的正确性很容易被检验出来
NP-hard: 如果所有NP问题都可以多项式时间归约到S问题,则称S问题为NP-hard问题。
如果某个问题S是NP-hard,那么对于任意一个NP问题,我们都可以把这个NP问题在多项式时间之内转化为S,并且原问题的答案和转化后S的答案是相同的。也就是说只要我们解决了S,那么就解决了所有的NP问题。
三、Conclution
利用丰富的跨域像素点间的相似性,通过循环关联跨域像素点来缓解domain shift的问题,这为域自适应语义分割提供了一种新的视角。整篇文章读下来,借鉴了很多Contrastive Learning自监督表示学习的方法以及cycGan的思想。整个过程整的感觉有点复杂