【背景】

         最近研究域自适应语义分割,看到两篇比较好玩的文章。遂记录下来,供今后找点灵感。

【描述/动机】

        学习语义分割模型需要大量的像素标记。然而,标记数据可能仅在与期望的目标域不同的域中大量可用,该域仅具有最少或没有注释。在这项工作中,我们提出了一个新的框架,用于在目标域中使用图像级弱标签进行语义分割的域自适应。弱标签可以基于无监督域自适应(UDA)的模型预测来获得,或者从用于语义分割的新的弱监督域自适应(WDA)范例中的人类注释器获得。使用弱标签既实用又有用,因为(1)在WDA收集图像级别的目标注释相对便宜,并且在UDA中不产生成本,(2)它为分类领域对齐打开了机会。我们的框架使用弱标记来实现特征对齐和伪标记之间的相互作用,在域自适应过程中改进了这两者。

【核心思想】

image.png

        我们的工作引入了两个关键思想来适应跨领域的语义分割模型。一:使用图像级弱标注进行领域自适应,要么是估计的,即伪弱标签(无监督领域自适应),要么是从human-oracle中获得的(弱监督领域自适应(WDA)。我们利用弱标签来改善源域和目标域之间的分类特征对齐。X/表示弱标签,即图像中存在/不存在的类别.

【网络架构】

image.png

        上图是整个网络的构架。首先将源图像和目标图像通过分割网络G,并获得它们的特征\(F_s\),\(F_t \in \mathbb{R}^{H^{'} \times W^{'} \times 2048}\),分割预测\(A_s\),\(A_t \in \mathbb{R}^{H^{'} \times W^{'} \times C}\),以及上采样的像素级预测\(O_s,O_t \in \mathbb{R}^{H\times W \times C}\)。注意,\(H^{'}(< H),W^{'}(<
W)\)是图像通过分割网络后的向下采样的空间维度。作为基线,我们使用源像素方式的注释来学习\(\mathrm{G}\),同时对齐输出空间分布\(O_s, O_t\)

        除了在源数据上有像素级的标签,我们还在目标数据上有图像级的弱标签。如前所述,这样的弱标签可以是估计的(UDA),也可以是从human-oracle(WDA)获得的。然后,我们利用这些弱标签以两种不同的方式更新分割网络\(\mathrm{G}\)。首先,我们引入一个学习预测目标图像中存在的类别的模块。第二,我们制定了一个机制来调整源域和目标域之间每个单独类别的特征。为此,我们使用由弱标签引导的特定类别域鉴别器来确定哪些类别应该对齐。

【弱标签】

        为了预测特定图像中是否存在类别,我们使用弱标签定义了图像分类任务,使得分割网络\(\mathrm{G}\)可以发现这些类别。具体来说,我们使用弱标签\(y_t\)并学习预测目标图像中存在/不存在的类别。我们首先馈送目标图像\(X_t\)到\(\mathrm{G}\)以获得预测\(A_t\):,然后应用GAP来获得每个类别的单个预测向量:

\(\begin{align}p_t^c = \sigma_s[\frac{1}{k}\log\frac{1}{H^{'} W^{'}} \sum_{h^{'}, w^{'}} \exp k A_t^{(h^{'}, w^{'}, c)}] \end{align}\)

        其中σ是sigmoid函数,因此\(p_t\)代表图像中出现特定类别的概率。注意(1)是max函数的光滑逼近。k值越高,越接近max。我们设置k =
1,因为我们不希望网络只关注预测的最大值(可能有噪声),还关注其他可能具有高值的预测。使用\(p_t\)和弱标签\(y_t\),我们可以计算类别方向的二元交叉熵损失:

\(\begin{align}\mathcal{L}_c(X_t; \mathrm{G}) = \sum_{c=1}^C -y_t^c\log(p_t^c) – (1-y_t^c)\log(1-p_t^c)\end{align}\)

        这体现于框架图的底部,这个损失用于识别特定图像中缺失或存在的类别,并强制分割网络\(\mathrm{G}\)关注源域图像直接用于目标域图像时被部分识别的那些对象/类别

【标签对齐】

        在中引入的使用弱标签的分类损失规范了集中于某些类别的网络。然而,还没有考虑跨源域和目标域的分布对齐。如前一节所讨论的,一些方法跨域对齐特征空间或者输出空间。然而,这种对齐与类别无关,因此它可以对齐某些图像中不存在的类别的特征。此外,属于不同类别的特征可能具有不同的领域差距。因此,执行类别对齐可能是有益的,但在语义分割领域尚未得到广泛研究。虽然有工作试图对齐分类特征,但它使用像素伪标签,这可能有噪声,并在高维特征空间中执行对齐,这不仅难以优化,而且需要更多的计算量。

        为了缓解上述问题,我们使用图像级弱标签在特征空间中执行分类对齐。具体来说,我们通过注意力图(即分割预测)获得每幅图像的分类特征,在分类模块的指导下使用弱标签,然后在源域和目标域之间对齐这些特征。

分类级特征池化

        给定最后一层特征\(F\)和分割预测\(A\),我们通过使用预测作为对特征的关注来获得分类特征。具体来说,我们获得类别特征\(\mathcal{F}^c\)作为\(c^{\mathrm{th}}\)类的2048维向量,如下所示:

\(\begin{align}\mathcal{F}^c = \sum_{h^{'} w^{'}} \sigma(A)^{(h^{'}, w^{'}, c)}F^{(h^{'}, w^{'})}\end{align}\)

        其中\( \sigma(A)\)是维度\(H^{'} \times W^{'} \times C\)的张量,沿着类别维度的每个通道表示通过软最大化操作\(\sigma\)在空间维度上获得的类别方向的关注。因此\(\sigma(A)^{(h^{'},w^{'},c)}\)是标量,\(F^{(h^{'}, w^{'})}\)是2048维向量,而\( F_c\)是空间映射\( H^{'} \times W^{'}\)上由\(\sigma(A)^{(h^{'},w^{'},c)}\)加权的\(F(h^{'},w^{'})\)的求和特征。请注意,我们删除了源和目标的下标\(t\),因为我们使用相同的操作来获得两个域的分类特征。接下来,我们将展示跨域对齐这些特性的机制。请注意,我们将使用\( F_c\)来表示类别的集合功能,使用\(F_c\)来表示所有类别的集合功能。框架中间部分显示了分类特征池。

分类特征对齐

        为了学习分割网络\(\mathrm{G}\),使源和目标类别特征对齐,我们使用了一个对抗性损失,同时使用了类别特定的鉴别器\(D^C= \{D^c\}^C_{c=1}\)。使用类别特定鉴别器的原因是为了确保每个类别的特征分布可以独立对齐,这避免了来自类别混合的噪声分布建模。在实践中,我们训练不同的特定类别鉴别器来区分从源图像和目标图像中提取的类别特征。训练鉴别器\(D^C\)的损失函数如下:

\(\begin{align}\mathcal{L}_d^C(\mathcal{F}_s^C, \mathcal{F}_t^C; D^c) = \sum_{c=1}^C-y_s^c\log D^c(\mathcal{F}_s^c) – y_t^c \log (1-D^c(\mathcal{F}_t^c))\end{align}\)

        值得注意的是,在训练鉴别器时,我们仅通过弱标签\(y _s\),\(y_t \in \mathbb{B}^C\)计算特定图像中存在的那些类别的损失,弱标签\(y_s\),\(y_t \in \mathbb{B}^C\)指示一个类别是否出现在图像中。然后,训练分割网络\(\mathrm{G}\)的目标图像的对抗损失可以表示如下:

\(\begin{align}\mathcal{L}_{\mathrm{adv}}^C(\mathcal{F}_t^C; \mathrm{G}; D^C) = \sum_{c=1}^C -y_t^c \log D^C(\mathcal{F}_t^c)\end{align}\)

        类似地,我们使用目标弱标签\(y_t\)来仅对齐目标图像中存在的那些类别。通过最小化\(L_{\mathrm{adv}}^C\),分割网络试图通过最大化目标类别特征被认为是从源分布中提取的概率来欺骗鉴别器。这些损失函数是在框架图中间方框的右边得到体现的。

【网络优化/训练】

训练鉴别器

        我们为每个类别学习一组不同的判别器。我们使用源图像和目标图像来训练判别器,这些判别器学习区分从源域或目标域提取的类别特征。训练鉴别器的优化问题可以表示为:\(\min_{D^C}L^C_d(\mathcal{F}^C_s,\mathcal{F}^C_t)\)。请注意,每个鉴别器仅使用特定类别的特征进行训练。因此,给定一幅图像,我们只更新对应于图像中存在的那些类别的那些鉴别器,而忽略其余的。

训练分割器

        利用源图像的像素交叉熵\(\mathcal{L}_s\)、目标图像的图像分类损失\(\mathcal{L}_c\)和对抗损失\(\mathcal{L}_{\mathrm{adv}}^C\)来训练分割网络。我们结合这些损失函数来学习\( \mathrm{G}\),如下所示:

\(\min \mathcal{L}_s(X_s)+\lambda_c\mathcal{L}_c(X_t) + \lambda_d \mathcal{L}_{\mathrm{adv}}^C(\mathcal{F}_t^C)\)

我们用标准的GAN训练程序,交替更新\(\mathrm{G}\)和\(D^C\)。请注意,计算\(\mathcal{L}_{\mathrm{adv}}^C\)用到了分类鉴别器\(D^C\)。因此,我们只为特定的分段网络\(G\)固定\(D^C\)的反向传播梯度

【获取伪标签】

Pseudo-Weak Labels (UDA).

        获得弱标签的一种方法是使用我们拥有的数据直接估计它们,即源图像/标签和目标图像,这是无监督域自适应(UDA)用过的方法。在这项工作中,我们利用基线模型将从源域学习的模型调整到目标域,然后获得目标图像的弱标签,如下所示:

\(y_t^c=\begin{cases} 1, && if p_t^c > T \\ 0, &&\mathrm{otherwise}\end{cases}\)

        其中,\(p_t^c\)是公式(1)中计算的\( c \)类概率,\(T\)是一个阈值,除非另有说明,否则我们在所有实验中将其设置为0.2。在实践中,我们在训练期间在线计算弱标签,并避免任何额外的推理步骤。具体来说,我们转发目标域图像,使用(7)获得弱标签,然后计算(6)中的损失函数。由于以这种方式获得的弱标签不需要人工监督,使用这种标签的适应是无监督的。

Oracle-Weak Labels (WDA)

        在这种弱标签获取方法中,我们通过查询一个human-oracle来获得弱标签,以提供目标图像中出现的类别列表。当我们在目标映像上使用oracle的监督时,我们称之为弱监督域适应(WDA)。值得一提的是,WDA设置实际上可能很有用,因为收集这种人为标注的弱标签比像素标注容易得多。此外,还没有任何先前的研究涉及这种领域适应设置。

        为了证明我们的方法可以使用不同形式的弱标记,我们进一步引入了如[2]中的点监督,与图像级监督相比,它只增加了少量的工作。在这种情况下,我们随机获得属于图像的每个类别的一个像素坐标,即元组集\(\{(h^c,w^c,c) | \forall y_c^t= 1\} \)。对于图像,我们计算损失如下:\(\mathcal{L}_{\mathrm{point}} = -\sum_{\forall y_t^c =1}y^c_t \log (O_t^{(h^C,w^C,C)})\),其中\(O_t \in \mathbb{R}^{H \times W \times C}\)是像素softmax后的目标输出预测。

【总结】

        山穷水尽时多思考从数据本身做增强的方法,循环利用弱标签说不定会有奇效。具体得看看怎么用吧(视情况而定)。

【参考文献】

Sujoy Paul, Yi-Hsuan Tsai, Samuel Schulter, Amit K. Roy-Chowdhury, Manmohan Chandraker. Domain Adaptive Semantic Segmentation Using Weak Labels. in ECCV 2020

作者 WellLee

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注