【半监督语义分割 2023 CVPR】CCVC

news2024/10/7 8:26:12

【半监督语义分割 2023 CVPR】CCVC

论文题目:Conflict-Based Cross-View Consistency for Semi-Supervised Semantic Segmentation

中文题目:半监督语义分割的基于冲突的交叉视图一致性

论文链接:https://arxiv.org/abs/2303.01276

论文代码:https://github.com/xiaoyao3302/ccvc

论文团队:悉尼大学&香港大学&三星研究院

发表时间:2023年3月

DOI:

引用:

引用数:

摘要

半监督语义分割由于能够有效地利用大量的无标注数据,从而减少对大规模的完全标注训练数据的需求,近年来得到了越来越多的研究兴趣。 现有的方法经常会受到伪标记过程中的确认偏差的影响,这种偏差可以通过协同训练框架得到缓解。 现有的基于协同训练的半监督语义分割方法依靠人工扰动来防止子网之间的相互崩溃,但这些人工扰动不能导致最优解。 在这项工作中,我们提出了一种基于冲突的跨视图一致性(CCVC)的半监督语义分割方法。 我们的工作旨在加强这两个子网从无关的视图中学习信息特征

特别地,我们首次提出了一种新的跨视图一致性(CVC)策略,通过引入特征差异损失,鼓励两个子网从相同的输入中学习不同的特征,同时这些不同的特征期望产生一致的输入预测分数。 CVC策略有助于防止两个子网步入崩溃。 此外,我们进一步提出了一种基于冲突的伪标记(CPL)方法,以保证模型能够从冲突预测中学习到更多有用的信息,从而使训练过程稳定。

我们在Pascal VOC2012和Cityscapes两个广泛使用的基准数据集上验证了新的半监督语义分割方法,在这些基准数据集上,我们的方法获得了新的最先进的性能。 我们的代码可在获得。

1. 介绍

语义分割是网络理解世界的基础视觉任务。 近年来,深度神经网络(DNNs)在语义分割方面显示出巨大的潜力。 然而,DNNS的成功主要是由于大量的注释数据集。 对于语义分割任务,通常需要像素级注释,这意味着注释者需要手动标记每张图像多达数十万个像素。 因此,收集精确标记的数据以训练DNNs需要付出很大的努力。

为了解决这个问题,人们提出了各种半监督学习(SSL)方法,这些方法的目标是只使用少量像素级精确标注数据和大量无标记数据来学习网络进行语义分割。 很明显,由于标签数据的数量远远少于未标签数据的数量,来自标签数据的信息是非常有限的。 因此,如何充分利用未标注数据来辅助标注数据进行模型训练成为一个关键问题。

解决这个问题的一个直观的方法是伪标签。 然而,沿着这条线的SSL方法可能会遭受所谓的确认偏差[43],由于训练过程的不稳定,往往导致性能下降。 最近,基于一致性正则化的SSL方法显示出很好的性能[29,32,36,41]。 然而,它们大多依赖于产生弱扰动输入的预测来产生伪abels,然后用伪abels作为监督来产生强扰动输入的预测。 因此,他们仍然遭受确认偏差问题。

确认偏差是指我们更倾向于寻找、解释和记住支持自己观点的信息,而忽略那些不支持自己观点的信息。简而言之,人们往往更容易相信那些与自己想法一致的信息,而不太相信与自己想法不一致的信息。

另一方面,协同训练是 SSL 的一个强大框架,因为它使不同的子网能够从不同的视图推断出相同的实例,并通过伪标签将从一个视图学到的知识转移到另一个视图。特别是,协同训练依赖于多视图参考来增加模型的感知,从而增强生成的伪标签的可靠性[34]。各种半监督语义分割 (SSS) 方法都基于协同训练 。关键是如何防止不同的子网相互折叠,这样我们就可以根据不同视图的输入做出正确的预测。然而,大多数 SSS 方法中使用的手工扰动不能保证学习异构特征以有效防止子网陷入崩溃。

针对上述问题,本文提出了一种新的基于冲突的跨视图一致性(CCVC)策略,使得模型中的两个子网可以分别学习不同的特征,从而可以从两个无关的视图中学习可靠的预测进行协同训练,从而使每个子网都能做出可靠且有意义的预测。 特别地,我们首先提出了一种带有差异损失的跨视图一致性(CVC)方法,使两个子网提取的特征之间的相似性最小化,以鼓励它们提取不同的特征,从而防止两个子网相互崩溃。 然后利用交叉伪标记将学习到的知识从一个子网转移到另一个子网,以提高网络的感知能力,从而正确地推理来自不同视图的相同输入,从而产生更可靠的预测。

然而,差异损失可能会给模型带来太强的扰动,即子网提取的特征可能包含对预测意义不大的信息,从而导致两个子网的预测不一致且不可靠。这将导致确认偏差问题,从而损害子网的协同训练。为了解决这个问题,我们进一步提出了一种基于冲突的伪标签(CPL)方法,我们鼓励由每个子网的冲突预测生成的伪标签对彼此的预测有更强的监督,以加强两者子网做出一致的预测。因此,可以保留预测的有用特征以及预测的可靠性。通过这种方式,有望减少确认偏差的影响,使训练过程更加稳定。

如图 1 所示,我们可以看到从著名的 CPS 模型 [10] 的两个子网中提取的特征之间的相似度得分保持在较高水平,表明 CPS 的推理观点是相关的。相比之下,我们的 CCVC 方法确保推理视图足够不同,从而产生更可靠的预测。

需要指出的是,我们的CCVC方法与现有的各种数据增强方法兼容,它还受益于增强的训练集和增加的数据多样性。

  • 我们引入了一种基于协同训练框架的跨视图一致性(CVC)策略来进行可靠的预测,其中我们提出了一个特征差异损失,使双分支网络能够学习如何对输入进行不同的推理,但做出一致的预测。
  • 在跨视图一致性策略的基础上,我们进一步提出了一种新的基于冲突的伪标签(CPL)方法,使两个子网能够从冲突预测中学习更多有用的语义信息,从而产生可靠和一致的预测,从而使训练过程更加稳定。
  • 我们的方法在常用的基准数据集Pascal VOC2012[14]和Cityscapes[11]上达到了最先进的性能。

2. 相关工作

2.1 语义分割

语义分割是一个密集预测视觉任务,其目的是区分每个像素所属于的类别。 FCN[30]是一项开创性的工作,它提出了一种使用全卷积网络进行像素级语义分割的编码器-解码器体系结构,这启发了大量使用类似体系结构来提供密集预测的工作,如传统的基于卷积神经网络的方法,包括Deeplab系列[5-8]、HRNET[38]、PSPNET[47]和Segnext[18]等。最近,随着Transformer[4,13,37]的巨大成功,人们提出了各种尝试,以利用注意力机制的巨大潜力来捕捉远程上下文信息进行语义分割,如Segformer[40]。HRformer[44]、SETR[48]和Segvit[45]等,然而,这些方法的非凡性能在很大程度上依赖于完全的注释监督,并且获得注释通常是耗时的。

2.2 半监督分割

为了减少模型对大规模标注数据的依赖,提出了半监督学习(SSL)方法。 这些方法的目的是利用少量的标记数据和大量的未标记数据训练模型。 SSL方法的关键在于如何充分利用大量的未标记数据。 目前的半监督语义分割方法大致可分为两大类,即基于自训练的方法[10,21,24,31,39]和基于一致性正则化的方法[25,29,32,36,50]。 大多数基于自训练的方法选择一组预测生成伪标签来微调模型,而大多数基于一致性正则化的方法旨在利用弱增广输入的网络预测作为强增广输入预测的监督。 然而,这两种方法都存在一个问题,即假阳性预测会引入不正确的伪标签,从而误导训练,即确认偏差。

2.3 协同训练

协同训练是一种典型的半监督学习方法,其目的是学习两个子网,从不同的角度对同一实例进行推理,然后相互交换学习到的信息[34,42]。 这两个子网可以相互提供不同和互补的信息,从而导致稳定和准确的预测,减少确认偏差的影响。

基于协同训练框架提出了多种半监督分割方法[10,33],但这两个子网容易崩溃。 为了防止这个问题,CCT[33]引入特征级扰动来确保几个解码器的输入不相同,以防止解码器相互折叠。 CPS[10]学习初始化不同的两个子网,保证了两个子网的行为不同。

然而,利用人工扰动很难保证不同网络的推理观点是不同的。 与上述方法相比,我们提出了基于冲突的跨视图一致性(CCVC)策略,该策略利用差异损失来最小化两个子网提取的特征的相似性,以防止崩溃,并保证子网的推理视图无关,从而使网络能够学习不同,但仍能产生一致的预测。

3. 方法

在本节中,我们将详细解释我们新提出的基于冲突的跨视图一致性(CCVC)策略。 在秒内。 3.1我们将给出半监督语义分割(SSS)任务的一个简单定义。 然后,我们将介绍我们在SEC中的跨视图一致性(CVC)方法。 3.2和我们在SEC中提出的基于冲突的伪标记(CPL)方法。 3.3.

3.1 问题定义

在SSS任务中,我们给出了一组完全按像素标注的图像 D l = { ( x i , y i ) } i = 1 M D_{l}=\{(x_{i},y_{i})\}_{i=1}^{M} Dl={(xi,yi)}i=1M和一组无标注的图像 D u = { x i } i = 1 N D_{u}=\{x_{i}\}_{i=1}^{N} Du={xi}i=1N M M M N N N表示标记图像和未标记图像的数量。

在大多数情况下,我们有 N ≫ M N \gg M NM x i ⊂ R H × W × C x_i\subset \mathbb{R}^{H\times W\times C} xiRH×W×C表示输入图像的大小为 H × W H×W H×W C C C通道,而 y i ⊂ { 0 , 1 } H × W × Y y_{i}\subset\{0,1\}^{H\times W\times Y} yi{0,1}H×W×Y是每个像素的一个热地面真值标记,其中 Y Y Y表示视觉类的总数。 我们的目标是使用给定的输入数据 D l D_l Dl D u D_u Du训练一个模型来生成语义预测。

3.2 跨视图一致性

在本节中,我们将说明我们新提出的交叉视图一致性 (CVC) 方法。我们利用基于协同训练的双分支网络,其中两个子网,即 Ψ 1 \Psi_1 Ψ1 Ψ 2 \Psi_2 Ψ2,具有相似的架构,但两个子网的参数不共享。网络架构如图 2 所示。

在这里,我们将每个子网划分为特征提取器 Ψ f , i \Psi_{f,i} Ψf,i和分类器 Ψ c l s , i \Psi_{\mathrm{cls},i} Ψcls,i,其中 i i i等于 1 或 2,表示第一个子网和第二个子网净,分别。补充材料中提供了有关特征提取器和分类器划分的详细信息。

image-20230627154805496

图2。 我们的跨视图一致性(CVC)方法的网络架构。 我们使用一个特征差异损失来强制网络从不同的视图生成相同的输入。 一方面,利用监督损失LL SUP,I和一致性损失LU CON,I进行交叉监督。 另一方面,我们利用差异损失Lαdis来最小化特征提取器提取的特征之间的相似性,从而强制两个子网学习不同的信息。 下标i表示第i个子网,上标α表示已标记数据或未标记数据。 标记//表示停止渐变操作。 需要指出的是,我们的CVC方法是对传统数据增强方法的补充。

形式上,我们将特征提取器 Ψ f , i \Psi_{\mathrm{f},i} Ψf,i在 L2 归一化后提取的特征表示为 f i α f_i^{\alpha} fiα,将分类器 Ψ cls ⁡ , i \Psi_{\operatorname{cls},i} Ψcls,i生成的预测表示为 y ~ i α \widetilde{y}_i^\alpha y iα,其中 α ∈ { u , l } \alpha\in\{u,l\} α{u,l}表示标记数据流或未标记的数据流,分别。回想一下,我们的目标是使两个子网能够推理来自不同视图的输入,因此提取的特征应该不同。因此,我们使用差异损失 L d i s α \mathcal{L}^{\alpha}_{dis} Ldisα最小化每个特征提取器提取的特征 f i α f_{i}^{\alpha} fiα之间的余弦相似度,可以表示为:

L d i s α = 1 + f 1 α ⋅ f 2 α ∥ f 1 α ∥ × ∥ f 2 α ∥ \mathcal{L}^{\alpha}_{dis}=1+\dfrac{f^{\alpha}_1\cdot f^{\alpha}_2}{\|f^{\alpha}_1\|\times\|f^{\alpha}_2\|} Ldisα=1+f1α×f2αf1αf2α
注意系数1是为了保证discrepancy loss的值永远是非负的。我们鼓励两个子网输出没有关联的特征,从而强制两个子网学习从两个不相关的视图推理输入。

然而,大多数 SSS 方法采用在 ImageNet [12] 上预训练的 ResNet [20] 作为主干DeepLabv3+,只对主干进行微调,学习速率很小,使得我们的特征差异最大化操作很难实现。 为了解决这个问题,我们遵循了类似于Byol[17]和Simsiam[9]对异构我们网络的操作,通过使用一个简单的卷积层,即带非线性层的 Ψ m a p \Psi_{\mathrm{map}} Ψmap映射,将 Ψ f , 2 \Psi_{\mathrm{f},2} Ψf,2提取的特征映射到另一个特征空间。 我们将映射后的 Ψ f , 2 \Psi_{\mathrm{f},2} Ψf,2提取的特征表示为 f ˉ 2 α \bar{f}_2^\alpha fˉ2α,并将差异损失重写为:
L d i s α = 1 + f 1 α ⋅ f ˉ 2 α ∥ f 1 α ∥ × ∥ f ˉ 2 α ∥ \mathcal{L}^{\alpha}_{d is}=1+\dfrac{f^{\alpha}_1\cdot\bar{f}^{\alpha}_2}{\|f^{\alpha}_1\|\times\|\bar{f}^{\alpha}_2\|} Ldisα=1+f1α×fˉ2αf1αfˉ2α
请注意,我们对标记数据和未标记数据都应用了差异监督,因此我们将总差异损失计算为 L d i s = 0.5 × ( L d i s l + L d i s u ) . {\mathcal L}_{d i s}=0.5\times({\mathcal L}_{d i s}^{l}+{\mathcal L}_{d i s}^{u}). Ldis=0.5×(Ldisl+Ldisu).

注意,我们需要确保子网做出有意义的预测。 因此,对于标记的数据,我们使用真实标签标记作为监督,训练两个子网生成语义有意义的预测,我们将监督损失列示如下:
L s u p , i l = 1 M ∑ m = 1 M 1 W × H ∑ W × H ℓ c e ( y ~ m n , i l , y m n l ) \mathcal{L}^{l}_{sup,i}=\dfrac{1}{M}\sum^{M}_{m=1}\dfrac{1}{W\times H}\sum^{W\times H}\ell_{ce}(\widetilde{y}^{l}_{mn,i},y^{l}_{mn}) Lsup,il=M1m=1MW×H1W×Hce(y mn,il,ymnl)
回想一下,下标 i i i表示第 i i i个子网,我们使用 n n n表示第 m m m个图像中的第 n n n个像素,因此 y ~ m n l \widetilde{y}_{mn}^l y mnl y m n l y_{mn}^l ymnl表示预测或地面真值标签分别为第 m m m个标记图像中的第 n n n个像素。请注意,我们需要对两个子网都进行真实监督,因此我们可以将监督损失计算为 L s u p l = 0.5 × ( L s u p , 1 l + L s u p , 2 l ) . {\cal L}_{s u p}^{l}=0.5\times({\cal L}_{s u p,1}^{l}+{\cal L}_{s u p,2}^{l}). Lsupl=0.5×(Lsup,1l+Lsup,2l).

对于未标注的数据,我们采用伪标注的方法,使每个子网都能从另一个子网学习语义信息。 给定一个预测 y ~ m n , i u \tilde{y}_{m n,i}^{u} y~mn,iu,它生成的伪标签可以写成 y ˉ m n , i u = arg ⁡ max ⁡ c ( y ~ m n c , i u ) \bar{y}_{m n,i}^{u}=\arg\max_{c}(\widetilde{y}_{mnc,i}^{u}) yˉmn,iu=argmaxc(y mnc,iu),其中 y ~ m n c , i u \widetilde{y}_{mnc,i}^u y mnc,iu y ~ m n , i u \widetilde{y}_{mn,i}^u y mn,iu的预测得分的第 c c c维, c = { 1 , … , Y } c=\{1,\ldots,Y\} c={1,,Y}表示类别的索引。 我们应用交叉熵损失对模型进行微调,每个分支的一致性损失可以表述如下:
L c o n , i u = 1 N ∑ m = 1 N 1 W × H ∑ n = 0 W × H ℓ c e ( y ~ m n , i u , y ^ m n , i u ) \mathcal{L}_{con,i}^u=\dfrac{1}{N}\sum_{m=1}^N\dfrac{1}{W\times H}\sum_{n=0}^{W\times H}\ell_{ce}(\widetilde{y}_{mn,i}^u,\hat{y}_{mn,i}^u) Lcon,iu=N1m=1NW×H1n=0W×Hce(y mn,iu,y^mn,iu)
交叉一致性损失可计算为 L c o m u = 0.5 × ( L c o m , 1 u + L c o n , 2 u ) \mathcal{L}^u_{com}=0.5\times(\mathcal{L}^u_{com,1}+\mathcal{L}^u_{con,2}) Lcomu=0.5×(Lcom,1u+Lcon,2u)

综上所述,在学习模型时,我们共同考虑监督损失 L s u p l \mathcal{L}_{sup}^l Lsupl、一致性损失 L c o n u \mathcal{L}^u_{con} Lconu和差异损失 L d i s \mathcal{L}_{dis} Ldis,总损失可以写成:
L = λ 1 L s u p l + λ 2 L c o n u + λ 3 L d i s \mathcal{L}=\lambda_1\mathcal{L}^l_{sup}+\lambda_2\mathcal{L}^u_{con}+\lambda_3\mathcal{L}_{dis} L=λ1Lsupl+λ2Lconu+λ3Ldis
其中λ1、λ2和λ3是权衡参数。

3.3 基于冲突的伪标签

通过我们的跨视图一致性(CVC)方法,两个子网将从不同的视图中学习语义信息。 然而,由于特征差异损失会对模型引入太强的扰动,训练可能是不稳定的。 因此,很难保证两个子网能够相互学习有用的语义信息,这可能会进一步影响预测的可靠性。

为了解决这一问题,我们提出了一种基于冲突的伪标记(CPL)方法,使两个子网能够从冲突的预测中学习更多的语义信息,从而做出一致的预测,从而保证两个子网能够产生相同的可靠预测,并进一步稳定训练。 这里我们使用一个二进制值 δ m n , i c \delta_{mn,i}^{c} δmn,ic来定义预测是否冲突,其中 δ m n , i c \delta_{mn,i}^{c} δmn,ic y ^ m n , 1 u ≠ y ^ m n , 2 u \hat{y}_{mn,1}^u\neq\hat{y}_{mn,2}^u y^mn,1u=y^mn,2u时等于 1 1 1,否则等于0。 我们旨在鼓励模型从这些相互冲突的预测中学习更多的语义信息。 因此,当使用这些预测生成用于微调模型的伪标签时,我们为这些伪标签监督的交叉熵损失分配了更高的权重 ω c \omega_c ωc

然而,在训练过程中,由于一些伪标签可能是错误的,训练也可能受到确认偏差[43]的影响。 因此,在前人[41,46]的方法中,我们通过设置置信度阈值γ来判断预测是否可信的基础上,进一步将冲突预测分为冲突可信(CC)预测和冲突不可信(CU)预测两大类,并且我们只将 ω c \omega_c ωc赋给由CC预测生成的伪标签。 这里我们用一个二元值 δ m n , i c c \delta_{mn,i}^{cc} δmn,icc来定义 C C CC CC预测,其中当 y ^ m n , 1 u ≠ y ^ m n , 2 u \hat{y}_{mn,1}^u\neq\hat{y}_{mn,2}^u y^mn,1u=y^mn,2u max ⁡ c ( y ~ m n c , i u ) > γ \operatorname*{max}_{c}(\widetilde{y}_{m n c,i}^{u})>\gamma maxc(y mnc,iu)>γ时, δ m n , i c c \delta_{mn,i}^{cc} δmn,icc等于1,否则 δ m n , i c c \delta_{mn,i}^{cc} δmn,icc等于0。 类似地,我们可以用 δ m n , i e \delta_{m n,i}^{e} δmn,ie来表示 C U CU CU预测和无冲突预测的结合,其中 δ m n , i e = 1 − δ m n , i c c \delta_{mn,i}^e=1-\delta_{mn,i}^{cc} δmn,ie=1δmn,icc

值得注意的是,我们仍然使用CU预测生成的伪标签以正常权重微调模型,而不是直接丢弃它们,主要原因是我们认为这些CU预测还可以包含关于类间关系的潜在信息[39]。 因此,我们可以重写公式4为 L c o n , i u = ω c L c o n , i u , c c + L c o n , i u , e {\cal L}_{c o n,i}^{u}=\omega_{c}{\cal L}_{c o n,i}^{u,c c}+{\cal L}_{c o n,i}^{u,e} Lcon,iu=ωcLcon,iu,cc+Lcon,iu,e

L c o n , i u , c c = 1 N ∑ m = 1 N 1 W × H ∑ n = 0 W × H ℓ c e ( y ~ m n , i u , y ^ m n , i u ) ⋅ δ m n , i e c \mathcal{L}_{con,i}^{u,cc}=\frac{1}{N}\sum_{m=1}^{N}\dfrac{1}{W\times H}\sum_{n=0}^{W\times H}\ell_{ce}(\widetilde{y}_{mn,i}^{u},\hat{y}_{mn,i}^{u})\cdot\delta_{mn,i}^{ec} Lcon,iu,cc=N1m=1NW×H1n=0W×Hce(y mn,iu,y^mn,iu)δmn,iec

L c o m , i u , e = 1 N ∑ m = 1 N 1 W × H ∑ n = 0 W × H ℓ c e ( y ~ m n , i u , y ^ m n , i u ) ⋅ δ m n , i e \mathcal{L}_{com,i}^{u,e}=\dfrac{1}{N}\sum\limits_{m=1}^N\dfrac{1}{W\times H}\sum\limits_{n=0}^{W\times H}\ell_{ce}(\widetilde{y}^u_{mn,i},\widehat{y}^u_{mn,i})\cdot\delta^e_{mn,i} Lcom,iu,e=N1m=1NW×H1n=0W×Hce(y mn,iu,y mn,iu)δmn,ie

最后,我们可以像在EQ中计算的那样重新计算总损失 L \mathcal{L} L训练模型。

CCVC方法可以有效地激励两个子网从不同的角度对相同的输入进行推理,并且两个子网之间的知识转移可以提高每个子网的感知能力,从而提高预测的可靠性。

需要指出的是,在推理阶段,只需要网络的一个分支就可以产生预测,而且我们的方法与传统的数据增强方法无关,即可以直接对输入数据采用任何数据增强方法来增加输入的多样性,唯一需要确定的是两个子网的输入必须相同。

4. 实验

4.1 数据集

Pascal VOC 2012数据集[14]是一个标准的半数据语义分割(SSS)基准数据集,由来自21个类别的13,000多幅图像组成。 它包含1464张完全注释的图像用于训练,1449张图像用于验证,1456张图像用于测试。 前人的工作使用SBD[19]来渲染带标签的图像,并将带标签的数据量扩展到10,582。 所绘制的标记图像质量较低,部分图像还伴有噪声。 因此,以往的工作大多是分别从高质量的训练图像和绘制的训练图像中采样标记图像来验证其SSS方法。

Cityscapes DataSet[11]是SSS的另一个基准数据集,它侧重于城市场景,由来自19个类别的2975幅注释训练图像、500幅验证图像和1525幅测试图像组成。

4.2 实现细节

在前人工作的基础上,我们使用DeepLabv3+[8]作为分割模型,该模型以ImageNet[12]上预先训练的ResNet[20]作为主干。 我们的映射层 Ψ m a p \Psi_{m a p} Ψmap由输出维数等于输入维数的单层卷积层、Batchnorm层[22]、Relu函数和丢包概率为0.5的信道丢包操作组成。 这项工作中的大部分参数设置遵循Unimatch[41],其中我们使用SGD优化器进行实验,对Pascal VOC 2012数据集和Cityscapes数据集的初始学习速率分别设置为0.001和0.005。 我们在这两个数据集上分别用多学习率调度器对我们的模型进行了40个和250个时间点的训练。 我们还采用了来自Unimatch的弱数据增强,除了将两个数据集的crop大小分别设置为512和712之外。 本文所有实验的一致性损失的权重ωc均为2.0,我们将进一步讨论ωc在烧蚀研究中的敏感性。 在本工作中,我们使用平均交过并(MIOU)作为我们的评价度量。

4.3 实验结果

我们将我们的CCVC方法与最近的半语义分割方法进行了比较,包括Pseudoseg[51],PC2seg[49],CPS[10],Reco[28],ST++[43],U2pl[39]和PS-MT[29]。 我们还报告了重新实现的CutMix[15]的结果。 此外,我们还包括监督方法的结果,这些方法只使用标记数据来训练模型进行比较(表示为“监督基线”)。

我们首先将我们的方法与Pascal VOC2012原始数据集上的其他方法进行了比较,结果如表1所示。 这里我们采用Resnet-101作为编码器的主干,我们遵循Unimatch[41]并随机分割数据集。 我们观察到,我们的CVC方法比监督基线有25.1%、19.1%、12.4%、9.4%和7.0%的显著优势,并且我们的CVC方法在所有5个划分协议下分别达到了最先进的(SOTA)结果。 值得注意的是,在标记数据较少的情况下,我们的方法表现出了很强的能力,例如,在只有92个或183个标记数据的情况下,我们的方法分别比现有的SOTA方法高2.2%和2.4%。

image-20230627172955936

比较了Pascal VOC 2012数据集在不同分区协议下的现有方法。 标记图像来自原始的高质量训练集。 主干是Resnet-101。 输入的裁剪大小设置为512。

我们进一步验证了我们的CVC方法的有效性对渲染的Pascal VOC2012数据集,结果报告在表2。 在这里,我们报告了分别使用resnet-50或resnet-101作为编码器主干的结果,我们遵循U2PL[39]并随机拆分数据集。 我们可以看到,当使用不同的主干时,我们的CVC方法也可以在所有分区协议下获得SOTA结果,当主干为Resnet-50时,分别比现有的SOTA结果高出2.4%、1.1%和0.5%;当主干为Resnet-101时,分别比现有的SOTA结果高出1.3%、1.2%和0.9%。 值得注意的是,在1/16分区协议下,以Resnet-50为骨干网的方法的性能甚至可以与以前以Resnet-101为骨干网的SOTA方法相媲美。

image-20230627172927785

表2。 比较了Pascal VOC 2012数据集在不同分区协议下的现有方法。 标记图像从混合训练集中采样。 输入的裁剪大小设置为512。

最后,我们在具有挑战性的Cityscapes数据集上测试了我们的CVC方法的性能。 由于硬件内存的限制,我们只在使用resnet-50作为编码器的主干时报告结果,并且我们还遵循UniMatch[41]随机分割数据集。 我们可以观察到,即使输入图像的裁剪大小为712,训练时间为250,我们的方法仍然达到了新的SOTA性能,特别是在只有100个标记数据的情况下,我们的方法比现有的SOTA方法ST++提高了2.2%。 此外,我们的方法也超越了U2PL(将作物大小设定为769)和PS-MT(对模型进行450个历元的训练),验证了我们方法的有效性。

image-20230627182016135

比较了Cityscapes数据集在不同划分协议下的现有方法。 主干是resnet-50,输入的裁剪大小设置为712。

4.4 消融实验

在这一节中,我们分析了我们的CCVC方法的详细模块设计的有效性。 在这里,我们以resnet-101作为DeepLabV3+的主干,在原始Pascal VOC2012数据集上,在1/4的分区下进行所有的烧蚀实验。

组件的有效性。 我们的CCVC方法包括一个CVC模块和一个CPL模块,有三个损失,即监督损失 L s u p \mathcal{L}_{sup} Lsup、一致性损失 L c o n \mathcal{L}_{con} Lcon和差异损失 L d i s \mathcal{L}_{dis} Ldis,我们的CVC方法和一个额外的映射模块 Ψ m a p \Psi_{\mathrm{map}} Ψmap一起使用。 我们现在调查CCVC中这些损失和模块的个人贡献。 分析结果在表4中报告。

image-20230627180941797

研究了CCVC方法中不同成分的有效性,包括监督损失 L s u p \mathcal{L}_{sup} Lsup、一致性损失 L c o n \mathcal{L}_{con} Lcon、差异损失 L d i s \mathcal{L}_{dis} Ldis、映射操作 Ψ m a p \Psi_{\mathrm{map}} Ψmap、基于冲突的伪标记(CPL)和数据增强(AUG)策略。

我们可以观察到,如果只考虑一致性损失,协同训练框架可以带来4%以上的性能提升,但是两个子网的推理视图是有一定相关性的,有很大的提升空间。 当应用我们的差异损失时,我们可以看到Miou有1.7%的改进,表明我们的特征差异最大化操作可以确保两个子网从两个严格不同的视图对输入进行推理,从而提高模型的感知。 此外,当应用映射模块时,两个子网的推理视图可以进一步分离,增强网络产生更可靠的预测。 因此,改善将进一步增强1.1%。 另外还需要注意的是,在原有协同训练框架中引入映射模块时,手工制作的网络扰动也可以在一定程度上减少崩溃,使性能提高1.4%。 此外,将CPL模块应用到CVC方法中时,性能有了1.6%的巨大提高,验证了我们的假设,即两个子网学习的特征可以被推到很远的地方以包含有用的语义信息。 CPL方法可以使子网从相互冲突的预测中学习到更多的信息,从而保证预测的可靠性。

需要注意的是,我们的CCVC方法在不需要任何强数据增强的情况下,可以获得74%的miou,与现有的SOTA方法相当,但我们的方法不需要像PS-MT那样复杂的网络结构。 当我们使用UniMatch[41]中列出的一些简单的数据增强来增加输入数据的多样性时,我们的方法可以进一步增强,MIOU提高了3.4%,大大超过了ST++等各种复杂增强的SOTA方法,验证了我们方法的有效性。

我们进一步验证了我们的方法可以降低确认偏差的影响。 我们将我们的CCVC方法与有监督基线和CPS方法进行了比较。 这里我们统计了每种方法的可靠预测的比例以及训练过程中对应的MIOU。 可靠预测的阈值设定为0.95。 成果在图上市 3.

image-20230627180715639

分别介绍了监督基线的训练过程、CPS方法、我们的CVC方法和我们的CCVC方法。 可以看出,我们的方法不会输出很多高置信度的预测,但预测的准确性很高,说明我们的方法可以很好地减小预测偏差的影响。

我们可以观察到,CPS和CCVC方法都能产生比基线方法更可信的预测,显然CPS产生更多的预测,但这些预测中的许多是不正确的。 其主要原因是CPS方法依赖于随机初始化,不能保证子网的推理视图完全不同,导致一定程度的崩溃。 因此,在使用伪标记技术进行知识转移时,子网之间可能会受到控制偏差的影响。 相比之下,我们的CCVC方法可以很好地避免在训练后期,CPS产生的预测值比CCVC高2%左右,但MIOU比CCVC低3%左右的情况,表明我们的CCVC方法可以有效地减少预测偏差。

参数分析。 我们进一步验证了我们的CPL方法的重要性,其中我们改变一致性损失ωc的权重,由冲突和自信(CC)预测产生的伪标签监督。 我们可以观察到,较高的权重ωc可以导致模型比基线更好的认知能力,其中ωc=1,MIOU提高1.6%,验证了我们的假设,即从冲突的预测中学习可以保证子网能够做出一致的预测,从而稳定训练。 但是,如果权重过高,模型会从自我监督中学习太多,可能会误导训练,降低性能。

image-20230627182522316

基于冲突的伪标记(CPL)方法的消融研究。 我们通过改变可信度预测的权重,即ωC,来验证模型将从可信度预测中学习更多的语义信息。

4.5 定量结果

我们展示了当使用我们方法的不同组成部分时的定性结果,如图所示 4. 所有的结果都是在原始Pascal VOC2012数据集上,在1/4的分区下,以Resnet-101作为DeepLabV3+的主干实现的。 我们可以看到监督基线(B)容易产生噪声预测,基于一致性的协同训练方法©可能无法识别一些难以识别的部分,而我们的CVC方法(D)和CCVC方法(E)可以很容易地识别那些难以区分的像素,如自行车后轮甚至一些小物体。

image-20230627180829987

我们的方法的定性结果来自原始的Pascal VOC2012数据集下的1/4分区。 (a)输入图像,(b)监督基线的结果,©交叉一致性正则化方法的结果,(d)我们的CVC方法的结果,(e)我们的CCVC方法的结果,(f)地面真值标签。

5. 结论

在这项工作中,我们提出了一种基于协同训练框架的半监督语义分割方法,其中我们引入了跨视图一致性策略,迫使两个子网学习推理来自无关视图的相同输入,然后相互交换信息以产生一致的预测。 因此,我们的方法可以有效地减少崩溃,扩大网络的感知,从而产生更可靠的预测,进一步减少预测偏差问题。 在基准数据集上进行的大量实验验证了我们新提出的方法的有效性。 然而,我们的工作仍然存在缺陷,即我们的特征差异损失可能会削弱强数据增强的效果。 因此,我们的目标是更多地探索数据扰动与我们的方法之间的关系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/692274.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Visual Basic 6 25 周年

Visual Basic 6.0 是 Visual Basic“经典”的最后一个版本(VB.NET 之前的版本)。它是迄今为止 32 位 Windows 95/NT 及更高版本最流行的版本。它非常受欢迎,并且仍在许多公司中使用。它于 1998 年中发布,与 5.0 版本相比在多个方面…

mysql-数据迁移

文章目录 1. 物理迁移1. 迁移前,配置mysql的输出目录1. 查看mysql的输出目录2. 修改mysql的输出目录 2. 文件迁移 1. 物理迁移 1. 迁移前,配置mysql的输出目录 1. 查看mysql的输出目录 在安装MySQL的会限制了导入与导出的目录权限。只允许在规定的目录…

基于.net core的微信小程序接入微信支付系列之环境搭建(1)

前言:c#语言本身是一门非常优雅的语言,但是在腾讯的api文档里面并不受到待见,所以只能靠自己看文档来逐步摸索,微信支付的逻辑看起来很复杂,其主要原因在于腾讯写文档的人可能是学体育专业的,简单的逻辑非要…

android Q /R/S/T onTopResumedActivityChanged方法解析

疑问背景: 在Android Q高版本,发现经常通过events日志来看Activity生命周期的时候,经常看到如下打印: 06-27 12:02:07.091 4812 4812 I wm_on_top_resumed_gained_called: [227500858,com.android.launcher3.uioverrides.Quic…

【LeetCode】动态规划 刷题训练(五)

文章目录 剑指 Offer II 091. 粉刷房子题目解析状态转移方程完整代码 309. 最佳买卖股票时机含冷冻期题目解析状态转移方程持有股票保持卖出股票卖出股票冷冻期 完整代码 714. 买卖股票的最佳时机含手续费题目解析状态转移方程f[i]状态转移方程g[i]状态转移方程 完整代码 剑指 …

强化学习从基础到进阶-常见问题和面试必知必答[7]:深度确定性策略梯度DDPG算法、双延迟深度确定性策略梯度TD3算法详解

【强化学习原理项目专栏】必看系列:单智能体、多智能体算法原理项目实战、相关技巧(调参、画图等、趣味项目实现、学术应用项目实现 专栏详细介绍:【强化学习原理项目专栏】必看系列:单智能体、多智能体算法原理项目实战、相关技巧…

最大收益(搜索好题)

题目描述 给一行n个数&#xff0c;每次可以取出行首或者行末的数&#xff0c;如果数ai是第j次取出的&#xff0c;可以得到ai*j的收益&#xff0c;求最大的总收益&#xff1b; 输入描述 Line 1: 整数 N&#xff08;1<N<2000&#xff09; Lines 2…N1: 第i个数的 a(i)&…

linux文件系统(目录)层次

本文主要内容来源和修改自 FHS 3.0 和 《鸟哥的私房菜基础学习篇&#xff08;第四版&#xff09;》 虽然 Linux 系统的发行版众多&#xff0c;但他们的目录配置却看起来都差不多&#xff0c;那是因为&#xff0c;大多数 Linux 发行版都遵循了文件系统层次结构标准&#xff08;…

centos7不能识别nvme固态硬盘,无法开机

前提是在机械硬盘已经安装过centos7系统了&#xff0c; 然后新增了一块nvme固态硬盘 其实原因也很简单&#xff0c; 旧版的centos7内核没有nvme驱动&#xff0c;需要更新内核&#xff0c;以下是我用ChatGPT解决的&#xff1a; 在 CentOS 7 中&#xff0c;NVMe 固态硬盘的驱动通…

vscode环境部署

编译cpp vscode安装2个插件&#xff0c;extension pack自动包了下面3个通过命令窗口code .打开代码目录&#xff0c;或者添加cl.exe路径到path&#xff0c;以及c需要的include和lib //在Path中添加cl.exe所在文件夹路径。若未找到&#xff0c;直接VS的安装目录下搜索cl.exe即…

下载好的eclipse的SSM项目导入IDEA配置运行过程(详细)

背景&#xff1a; 在网上下载一份SSM项目源码后&#xff0c;发现原项目是通过eclipse来开发的&#xff0c;但是个人喜欢使用IDEA来进行Java的开发&#xff0c;现在需要将这个SSM项目在IDEA上配置运行起来&#xff0c;下面就是记录一下整个配置过程&#xff01; 战胜 一、下载SS…

前端传递对象参数,以及后端接受参数 @PathVariable @RequestParam @RequestBody 注解的使用

太久没写前后端传递参数了,总是格式对不上号 前端传递对象参数,以及后端接受参数 一、接收参数注解 PathVariable二、接收参数注解 RequestParam2.1 get 请求,普通类型参数2.2 post 请求,普通类型参数 三、接收参数注解 RequestBodypost 请求,对象类型参数 总结 提示&#xff1…

Java之面向对象的思想

Java之面向对象的思想 一、如何理解面向对象二、面向对象和面向过程区别1. 面向过程1.1. 打开洗衣机盖子1.2. 把脏衣服放进洗衣机1.3. 加入适量的洗衣液1.4. 关上洗衣机盖子1.5. 选择洗衣的程序和时间1.6. 开始洗衣机1.7. 总结 2. 面向对象2.1. 属性&#xff1a;2.2. 方法&…

[C++] 刷题日记

785. 快速排序 #include <iostream> using namespace std;const int N 1e610;int n; int q[N];void quick_sort(int q[],int l,int r){if (l>r)return ;int x q[(lr)>>1],il-1,jr1;while (i<j){do i;while(q[i]<x);do --j;while(q[j]>x);if (i<j)sw…

【NLP】Attention机制和RNN

一、说明 循环神经网络是深度学习的主要内容之一,它允许神经网络处理文本、音频和视频等数据序列。它们可用于将序列简化为高级理解、注释序列,甚至从头开始生成新序列! 二、引进长记忆网络 基本的 RNN 设计很难处理较长的序列,但一种特殊的变体——“长短期记忆”网络 [1]…

three.js中的点对象(Point)和点材质(PointsMaterial)

一、点对象和点材质基本介绍 1. 点材质&#xff08;PointsMaterial&#xff09;&#xff1a; 点材质用于渲染点对象&#xff0c;它决定了点的颜色、透明度等属性。 常用属性有&#xff1a; color: 点的颜色&#xff0c;默认为白色。opacity: 点的透明度&#xff0c;默认为1…

List的去重操作

List的去重操作 1.采用Set集合的方式 List listnew ArrayList();for (int i 0; i < 10; i) {list.add(i);list.add(i);}//去重之前System.out.println(list);Set setnew LinkedHashSet(list);//方法1&#xff1a;去重之后System.out.println(new ArrayList<>(set));…

kubernetes核心概念 controller

kubernetes核心概念 Controller 一、pod控制器controller 1.1 Controller作用及分类 controller用于控制pod 参考: https://kubernetes.io/zh/docs/concepts/workloads/controllers/ 控制器主要分为: Deployments 部署无状态应用&#xff0c;控制pod升级,回退ReplicaSet 副…

AIGC大记事【2023-0625】【第五期】:《时代》专访ChatGPT之父:人工智能影响经济还需要很多年

大咖观点&#xff1a; 《时代》专访ChatGPT之父&#xff1a;人工智能影响经济还需要很多年孙正义&#xff1a;我每天和ChatGPT聊天&#xff0c;一场巨大革命即将到来&#xff0c;软银“终将统治世界&#xff01;”刘慈欣谈 ChatGPT&#xff1a;人类的无能反而是人类最后的屏障A…

【数据库】搭建 MMM 以及故障模拟

文章目录 搭建 MMM 以及故障模拟1. 环境配置2. 搭建 MySQL 多主多从模式2.1 修改 master01 配置文件2.2 把配置文件复制到其它 3 台数据库服务器2.3 配置主主复制&#xff0c;两台主服务器相互复制2.4 配置主从复制&#xff0c;在两台从服务器上做 3. 安装配置 MySQL-MMM3.1 安…