Unsupervised Domain Adaptation for Semantic Segmentation via Class-Balanced Self-Training

摘要

在本文中,我们提出了一种基于迭代自训练(self-training)过程的新型UDA框架.该问题被形式化为潜在变量损失最小化,并且可以通过生成目标数据的伪标签和通着这些伪标签再训练来解决这些问题。在ST之上,我们还提出了一种新颖的类平衡自训练(CBST)框架,以避免大类在伪标签生成上的逐渐优势,并引入空间先验来细化生成的标签。综合实验表明,所提出的方法在多个主要UDA设置下实现了最先进的语义分割性能。

总结

  1. 每次生成置信度最高的伪标签,以保证最终迭代出正确的标签

  2. 空间先验信息——像素 n n n是类别 c c c的频率。用以辅助目标域的训练,减少错误
    Unsupervised Domain Adaptation for Semantic Segmentation via Class-Balanced Self-Training_第1张图片

Loss 函数

min ⁡ w , y ^ L S , P ( w , y ^ ) = − ∑ s = 1 S ∑ n = 1 N y s , n T log ⁡ ( p n ( w , I s ) ) − ∑ t = 1 T ∑ n = 1 N ∑ c = 1 C [ y ^ t , n ( c ) log ⁡ ( q n ( c ) p n ( c ∣ w , I t ) ) + k c y ^ t , n ( c ) ] \min_{\mathbf{w},\hat{\mathbf{y}}}\mathcal{L}_{S,P}(\mathbf{w},\hat{\mathbf{y}})=- \sum_{s=1}^S \sum_{n=1}^N \mathbf{y} ^T_{s,n} \log(\mathbf{p}_n(\mathbf{w},\mathbf{I}_s)) -\sum_{t=1}^T\sum_{n=1}^N \sum_{c=1}^C [\hat{y}_{t,n}^{(c)} \log( q_n(c) p_n(c|\mathbf{w},\mathbf{I}_t) )+k_c\hat{y}_{t,n}^{(c)}] w,y^minLS,P(w,y^)=s=1Sn=1Nys,nTlog(pn(w,Is))t=1Tn=1Nc=1C[y^t,n(c)log(qn(c)pn(cw,It))+kcy^t,n(c)]
s . t .    y ^ t , n = [ y ^ t , n ( 1 ) , ⋯   , y ^ t , n ( C ) ] ∈ { { e ∣ e ∈ R C } ∪ 0 } ,    ∀ t , n    ; k c > 0 , ∀ c s.t. \; \hat{\mathbf{y}}_{t,n}=[\hat{y}_{t,n}^{(1)},\cdots,\hat{y}_{t,n}^{(C)}] \in \{ \{ \mathbf{e}|\mathbf{e}\in \mathbb{R}^C \} \cup \mathbf{0} \} , \; \forall t,n \; ; k_c>0,\forall c s.t.y^t,n=[y^t,n(1),,y^t,n(C)]{{eeRC}0},t,n;kc>0,c

  • 第一项:使源域分类尽可能正确
    1. I s \mathbf{I}_s Is是源域中第 s s s个图片.
    2. y s , n \mathbf{y} _{s,n} ys,n 是一个 N × 1 N \times 1 N×1的向量,表示图片 I s \mathbf{I}_s Is中第 n n n个像素的ground truth,每张图有 N N N个像素.
    3. w \mathbf{w} w是网络权重.
    4. log ⁡ ( p n ( w , I s ) ) \log(\mathbf{p}_n(\mathbf{w},\mathbf{I}_s)) log(pn(w,Is)) 表示像素 n n n 的类别概率.
  • 第二项
    1. y ^ t , n \hat{\mathbf{y}}_{t,n} y^t,n 是目标域的伪标签.每次选择置信度最高的,最优可能正确的标签作为伪标签.当 y ^ t , n = 0 \hat{\mathbf{y}}_{t,n}=0 y^t,n=0时,忽略这个伪标签在模型训练中的作用.
    2. y ^ t , n ( c ) \hat{y}_{t,n}^{(c)} y^t,n(c):该像素是第 c c c类的概率值 .
    3. k c k_c kc:过滤掉概率值小于 e − k c e^{-k_c} ekc的伪标签.对每一类 k c k_c kc值选取方法如下:

Unsupervised Domain Adaptation for Semantic Segmentation via Class-Balanced Self-Training_第2张图片
Unsupervised Domain Adaptation for Semantic Segmentation via Class-Balanced Self-Training_第3张图片

  1. q n ( c ) q_n(c) qn(c):像素 n n n是类别 c c c的频率。此为空间先验信息,并限制为 ∑ i = 1 N q n ( c ) = 1 \sum_{i=1}^N q_n(c)=1 i=1Nqn(c)=1
    下图显示了空间先验信息的热度图,计算自GTA5数据集。黄色代表高能量,蓝色代表低能量。
  2. q n ( c ) p n ( c ∣ w , I t ) q_n(c) p_n(c|\mathbf{w},\mathbf{I}_t) qn(c)pn(cw,It) :在网络参数为 w \mathbf{w} w,图片是 I t \mathbf{I}_t It的条件下类别为 c c c的概率是 p n ( c ∣ w , I t ) p_n(c|\mathbf{w},\mathbf{I}_t) pn(cw,It). 乘以类别 c c c在像素 n n n的频率是加入先验信息。举个例子,对于图像左下角的像素,观察其热度图,我们知道类别为road的频率最大,sidewalk的频率小。如果给定一张图片左下角是road,但是伪标签 y ^ t , n ( c = r o a d ) \hat{y}_{t,n}^{(c=road)} y^t,n(c=road)的值很小,即不是road类。

举个例子,对于图像左下角的像素,观察其热度图,我们知道类别为road的频率最大,sidewalk的频率小。如果给定一张图片左下角是road,但是伪标签 y ^ t , n ( c = r o a d ) \hat{y}_{t,n}^{(c=road)} y^t,n(c=road)的值很小,即不是road类。那么 q n ( c ) p n ( c ∣ w , I t ) q_n(c) p_n(c|\mathbf{w},\mathbf{I}_t) qn(c)pn(cw,It)的值接近0,即 − y ^ t , n ( c ) log ⁡ ( q n ( c ) p n ( c ∣ w , I t ) ) -\hat{y}_{t,n}^{(c)} \log( q_n(c) p_n(c|\mathbf{w},\mathbf{I}_t) ) y^t,n(c)log(qn(c)pn(cw,It))会很大。当我们最小化Loss函数时,就能利用先验信息修正这个错误。
Unsupervised Domain Adaptation for Semantic Segmentation via Class-Balanced Self-Training_第4张图片

你可能感兴趣的:(域适应,迁移学习,语义分割,论文笔记)