CVPR2022. Semantic-Aware Domain Generalized Segmentation
论文地址
支撑材料
arXiv
代码地址
1 2 3 4 5 6 7 8 @InProceedings{Peng_2022_CVPR, author = {Peng, Duo and Lei, Yinjie and Hayat, Munawar and Guo, Yulan and Li, Wen}, title = {Semantic-Aware Domain Generalized Segmentation}, booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)}, month = {June}, year = {2022}, pages = {2594-2605} }
深度语义分割模型在面向未见过的新领域时候往往泛化性不强,特别是目标领域数据无法得到时。现有方法将数据归一化到一个统一的分布来解决这个问题,但文章认为全局的标准化不能保证类别之间的确定性,不足以划分清晰的类别边界。因此文章提出两个模块:Semantic -A ware N ormalization (SAN )和S emantic-A ware W hiten (SAW )。 SAN使来自不同图像风格的图片实现类别级的中心对齐,而SAW强迫已经中心对齐的特征再次分布式对齐,达到类内紧凑、类间可分的效果。
主要问题
深度模型在面向未见过的新领域时泛化性能不强,领域自适应方法 可以增强泛化性能,但要求目标域数据可以得到,实际应用中通常难以实现。文章主要解决领域泛化 (D omain G eneralized S emantic S egmentation)的问题,即不需要目标域数据来增强模型的泛化性能。目前主要有两种方法:
领域随机化:将源领域的数据通过数据增强方式变换到适用于多种领域的风格来增强训练的变化性。然而这种方法生成的风格不能涵盖所有未见过的目标域。
标准化和白化:使用预定义的Instance Normalization(IN)或Instance Whitening(IW)来标准化不同样本的特征分布,并且消除由图像风格造成的特征不匹配。然而IN只能实现中心级别的对齐,忽略了通道之间的联合分布,IW可以去除通道之间的线性相关性,很好地聚类符合均匀分布地特征。二者结合可以实现联合分布的特征对齐,但这种全局对齐缺少了对局部特征分布一致性的考虑。经过这种对齐操作后原本类别可分的特征被映射到了一起,会导致在面向未见过的领域时对属于哪种类别产生困惑。
文章贡献/创新点
文章提出了语义感知标准和和语义感知白化模块,共同对齐类别级的分布来增强特征的判别能力。优点在于:
文章方法集成了语义感知的中心对齐和分布对齐,使不同风格的特征达到判别性和紧凑匹配。因此能够提升对于新领域的泛化性能。这两种模块即插即用,能够轻松集成到骨干网架构中。
文章的方法可以增强语义一致性,同时提升类别级的判别性。不会像其他方法一样导致源域性能的明显下降。
现有方法
小批量特征图表示为F ∈ R N × K × H × W \mathbf F\in\mathbb R^{N\times K\times H\times W} F ∈ R N × K × H × W ,F n , k ∈ R H × W \mathbf F_{n,k}\in\mathbb R^{H\times W} F n , k ∈ R H × W 表示第n n n 个样本的第k k k 个通道。
实例标准化
实例标准化在每个样本的每个通道执行标准化:
I N ( F ) = F n , k − μ n , k σ n , k + ε \mathrm{IN}(\mathbf F)=\frac{\mathbf F_{n,k}-\mu_{n,k}}{\sigma_{n,k}+\varepsilon}
IN ( F ) = σ n , k + ε F n , k − μ n , k
均值和方差计算为:
μ n , k = 1 H W ∑ h = 1 H ∑ w = 1 W F n , k , h , w σ n , k = 1 H W ∑ h = 1 H ∑ w = 1 W ( F n , k , h , w − μ n , k ) 2 \mu_{n,k}=\frac1{HW}\sum_{h=1}^H\sum_{w=1}^W \mathbf F_{n,k,h,w}\\
\sigma_{n,k}=\sqrt{\frac1{HW}\sum_{h=1}^H\sum_{w=1}^W(\mathbf F_{n,k,h,w}-\mu_{n,k})^2}
μ n , k = H W 1 h = 1 ∑ H w = 1 ∑ W F n , k , h , w σ n , k = H W 1 h = 1 ∑ H w = 1 ∑ W ( F n , k , h , w − μ n , k ) 2
该操作能使每个样本的每个通道内部符合标准正态分布,但通道之间的联合分布可能不匹配。
实例白化
实例白化可以解耦通道之间的特征来实现标准化,具体做法是使通道之间的协方差矩阵接近单位矩阵:
L IW = ∑ n = 1 N ∥ Ψ ( F n ) − I ∥ 1 \mathcal L_\text{IW}=\sum_{n=1}^N\|\Psi(\mathbf F_n)-\mathbf I\|_1
L IW = n = 1 ∑ N ∥Ψ ( F n ) − I ∥ 1
其中Φ \Phi Φ 为通道互相关矩阵:
Φ ( F n ) = [ C o v ( F n , 1 , F n , 1 ) ⋯ C o v ( F n , 1 , F n , k ) ⋮ ⋱ ⋮ C o v ( F n , K , F n , 1 ) ⋯ C o v ( F n , K , F n , K ) ] \Phi(\mathbf F_n)=\left[\begin{matrix}
\mathrm{Cov}(\mathbf F_{n,1},\mathbf F_{n,1}) & \cdots & \mathrm{Cov}(\mathbf F_{n,1},\mathbf F_{n,k})\\
\vdots & \ddots & \vdots\\
\mathrm{Cov}(\mathbf F_{n,K},\mathbf F_{n,1}) & \cdots & \mathrm{Cov}(\mathbf F_{n,K},\mathbf F_{n,K})
\end{matrix}\right]
Φ ( F n ) = Cov ( F n , 1 , F n , 1 ) ⋮ Cov ( F n , K , F n , 1 ) ⋯ ⋱ ⋯ Cov ( F n , 1 , F n , k ) ⋮ Cov ( F n , K , F n , K )
其中C o v ( F n , i , F n , j \mathrm{Cov}(\mathbf F_{n,i},\mathbf F_{n,j} Cov ( F n , i , F n , j 为通道i i i 和通道j j j 之间的协方差值:
C o v ( F n , i , F n , j ) = 1 H W ∑ h = 1 H ∑ w = 1 W ( F n , i , h , w − μ n , i ) ( F n , j , h , w − μ n , j ) \mathrm{Cov}(\mathbf F_{n,i},\mathbf F_{n,j})=\frac1{HW}\sum_{h=1}^H\sum_{w=1}^W(\mathbf F_{n,i,h,w}-\mu_{n,i})(\mathbf F_{n,j,h,w}-\mu_{n,j})
Cov ( F n , i , F n , j ) = H W 1 h = 1 ∑ H w = 1 ∑ W ( F n , i , h , w − μ n , i ) ( F n , j , h , w − μ n , j )
IW能够统一联合分布,进一步结合IN则可以实现统一的联合分布对齐,但这种全局匹配没有考虑类别之间的差异性,因此可能将不正确的语义类别映射到了同一区域,导致类别边界不清晰。
所提方法
文章目标是实现语义感知的中心对齐和分布对齐,因此分别引入了S emantic-A ware N ormalization (SAN)和S emantic-A ware W hitening (SAW)两个模块。
语义感知标准化
给定特征图F \mathbf F F 和给定实例分割标签,可以轻松实现类别级别的特征图对齐,获得目标特征:
F o b j = F n , k c − μ n , k c σ n , k c + ε ⋅ γ c + β c μ n , k c = 1 ∣ Y ( c ) ∣ ∑ Y ( c ) F n , k c σ n , k c = 1 ∣ Y ( c ) ∣ ∑ Y ( c ) ( F n , k c − μ n , k c ) 2 \mathbf F_{obj}=\frac{\mathbf F_{n,k}^c-\mu_{n,k}^c}{\sigma_{n,k}^c+\varepsilon}\cdot \gamma^c+\beta^c\\
\mu_{n,k}^c=\frac1{|Y(c)|}\sum_{Y(c)}\mathbf F_{n,k}^c\\
\sigma_{n,k}^c=\sqrt{\frac1{|Y(c)|}\sum_{Y(c)}(\mathbf F_{n,k}^c-\mu_{n,k}^c)^2}
F o bj = σ n , k c + ε F n , k c − μ n , k c ⋅ γ c + β c μ n , k c = ∣ Y ( c ) ∣ 1 Y ( c ) ∑ F n , k c σ n , k c = ∣ Y ( c ) ∣ 1 Y ( c ) ∑ ( F n , k c − μ n , k c ) 2
其中μ n , k c \mu_{n,k}^c μ n , k c 和σ n , k c \sigma_{n,k}^c σ n , k c 是属于类别c c c 和通道k k k 的特征图的均值和方差,F n , k c \mathbf F_{n,k}^c F n , k c 是第n n n 个样本的第k k k 个通道的属于c c c 类别的特征图。缩放和平移权重γ c \gamma^c γ c 和β c \beta^c β c 是网络可学习的参数,每个类别都是独立的。
但问题在于在目标领域测试时,样本标签不可知,因此文章使用SAN来近似F o b j \mathbf F_{obj} F o bj 。首先利用从分类器获得的输出来关注类别区域,同时在每个归一化分支内压缩其他区域:
F c ′ = F ⊗ M c \mathbf F_c'=\mathbf F\otimes \mathbf M_c
F c ′ = F ⊗ M c
其中M c \mathbf M_c M c 代表类别c c c 的掩码矩阵。但由此生成的分类结果太粗糙,因此文章介绍了类别级的特征微调模块来自适应地调整特征:
F c ′ ′ = S i g m o i d ( f 3 × 3 ( [ F c , m a x ′ ; F c , a v g ′ ; M c ] ) ) ⊗ F c ′ \mathbf F_c''=\mathrm{Sigmoid}(f^{3\times 3}([\mathbf F_{c,max}';\mathbf F_{c,avg}';\mathbf M_c]))\otimes \mathbf F_c'
F c ′′ = Sigmoid ( f 3 × 3 ([ F c , ma x ′ ; F c , a vg ′ ; M c ])) ⊗ F c ′
此处和SE模块、CBAM中的空间注意力模块有些类似。
获得地空间特征图进一步经过通道级别的平均池化,得到单通道特征图,然后执行k k k -均值聚类。将空间划分为k k k 个聚类后,前t = 1 t=1 t = 1 个元素被认为是类别区域,剩余是被忽略区域。
此处操作的仍然是粗糙的单类别c c c 的特征图,其中c c c 区域面积和非c c c 区域面积必然是截然不同的,因此只取t = 1 t=1 t = 1 作为类别区域即可,剩下的非类别区域可以认为是一类,也可以认为是多类,文章中k = 5 k=5 k = 5 。
经过上述操作,特征图分成了两部分,属于c c c 的Φ high c \Phi_\text{high}^c Φ high c 区域和不属于c c c 的Φ low c \Phi_\text{low}^c Φ low c 区域。对每个通道独立地执行类别区域Φ high c \Phi_\text{high}^c Φ high c 的归一化。最后所有区域加起来来近似得到F obj \mathbf F_\text{obj} F obj :
F ~ = ∑ c = 1 C R N ( F c ′ ′ , Φ high c ) ⋅ γ c + β c \tilde{\mathbf F}=\sum_{c=1}^C\mathrm{RN}(\mathbf F_c'',\Phi_\text{high}^c)\cdot\gamma^c+\beta^c
F ~ = c = 1 ∑ C RN ( F c ′′ , Φ high c ) ⋅ γ c + β c
为了保证处理后的特征是类别中心对齐的,使用交叉熵函数来进行优化:
L SAN = C E ( M , Y ) + ∥ F ~ − F obj ∥ 1 \mathcal L_\text{SAN}=\mathrm{CE}(\mathbf M,Y)+\|\tilde{\mathbf F}-\mathbf F_\text{obj}\|_1
L SAN = CE ( M , Y ) + ∥ F ~ − F obj ∥ 1
其中M ∈ { M 1 , M 2 , ⋯ , M C } \mathbf M\in\{\mathbf M_1,\mathbf M_2,\cdots, \mathbf M_C\} M ∈ { M 1 , M 2 , ⋯ , M C } 表示预测的实例分割掩码,Y Y Y 表示对应的真值。
语义感知白化
语义感知白化在已经语义中心对齐的基础上进一步执行分布式对齐。原始的IW能够统一联合分布,有利于分布对齐,但也会严格移除通道之间的互相关性,损害语义内容,导致领域不变信息的损失。
组实例白化GIW可以解决该问题,给定特征图F ~ \tilde{\mathbf F} F ~ ,GIW定义为:
G n m = [ F ~ n , K ( m − 1 ) M + 1 ; F ~ n , K ( m − 1 ) M + 2 ; ⋯ ; F ~ n , K m M ] L GIW = 1 N ∑ n = 1 N ∑ m = 1 M ∥ Φ ( G n m ) − I ∥ 1 \mathbf G_n^m=\left[\tilde{\mathbf F}_{n,\frac{K(m-1)}M+1};\tilde{\mathbf F}_{n,\frac{K(m-1)}M+2};\cdots;\tilde{\mathbf F}_{n,\frac{Km}M}\right]\\
\mathcal L_\text{GIW}=\frac1N\sum_{n=1}^N\sum_{m=1}^M\|\Phi(\mathbf G_n^m)-\mathbf I\|_1
G n m = [ F ~ n , M K ( m − 1 ) + 1 ; F ~ n , M K ( m − 1 ) + 2 ; ⋯ ; F ~ n , M K m ] L GIW = N 1 n = 1 ∑ N m = 1 ∑ M ∥Φ ( G n m ) − I ∥ 1
其中G n m \mathbf G_n^m G n m 代表第n n n 个样本的第m m m 组。
可以看出,GIW就是沿通道维度分成了M M M 组,组内做解耦,组间不需要。
因为卷积网络的通道中语义是高度相关的,文章指出这种近邻通道解耦的方式不够合理,没有考虑解耦通道更合适的选择方式。文章提出SAW来重新组织通道,确保每个组内都有不同类别对应的通道。
为了确定每个通道属于什么类别,以便于进行按类别的通道分组,文章使用了SAN模块的分类器,该分类器每个类被都对应K K K 个权重,将其按照从大到小进行排序,选择前K / C K/C K / C 个权重来作为该类别的索引,因此所有索引为I ∈ R C × K C \mathcal I\in\mathbb R^{C\times \frac KC} I ∈ R C × C K ,据此将通道分为K C \frac KC C K 组,每组有C C C 个通道,并且每个通道会和自己对应的权重进行相乘。分组后第m m m 组中第n n n 个样本G n m \mathbf G_n^m G n m 为:
G ~ n m = [ F ~ n , I ( 1 , m ) ⋅ w class1 I ( 1 , m ) ; F ~ n , I ( 2 , n ) ⋅ w class2 I ( 2 , m ) ; ⋯ ; F ~ n , I ( C , m ) ⋅ w classC I ( C , m ) ] \tilde{\mathbf G}_n^m=\left[\tilde{\mathbf F}_{n,\mathcal I(1,m)}\cdot w_\text{class1}^{\mathcal I(1,m)};\tilde{\mathbf F}_{n,\mathcal I(2,n)}\cdot w_\text{class2}^{\mathcal I(2,m)};\cdots;\tilde{\mathbf F}_{n,\mathcal I(C,m)}\cdot w_\text{classC}^{\mathcal I(C,m)} \right]
G ~ n m = [ F ~ n , I ( 1 , m ) ⋅ w class1 I ( 1 , m ) ; F ~ n , I ( 2 , n ) ⋅ w class2 I ( 2 , m ) ; ⋯ ; F ~ n , I ( C , m ) ⋅ w classC I ( C , m ) ]
每组内计算白化损失:
L SAW = 1 N ∑ n = 1 N ∑ m = 1 K C ∥ Φ ( G ˉ n m ) − I ∥ 1 \mathcal L_\text{SAW}=\frac1N\sum_{n=1}^N\sum_{m=1}^\frac KC\|\Phi(\bar{\mathbf G}_n^m)-\mathbf I\|_1
L SAW = N 1 n = 1 ∑ N m = 1 ∑ C K ∥Φ ( G ˉ n m ) − I ∥ 1
SAW并没有改变主网络前向通路之中的特征,因此只在训练中使用了SAW。
既然没有改变网络前向通路,那采用SAW的意义是什么呢?似乎也没有采用白化后的特征进行类别的预测。
仿真实验
数据集
数据集
图片
分辨率
备注
GTAV
24966
1914 × 1052 1914\times 1052 1914 × 1052
SYNTHIA-RANDCITYSCAPES
9400
1280 × 760 1280\times 760 1280 × 760
GTAV的子集
Cityscapes
5000
2019 × 1024 2019\times 1024 2019 × 1024
拍摄于德国
BDDS
10000
1280 × 720 1280\times 720 1280 × 720
Mapillary
25000
66类标注,但只有19类有重叠
实验结果