二十三章:抗对抗性操纵的弱监督和半监督语义分割的属性解释

0.摘要

        弱监督语义分割从分类器中生成像素级定位,但往往会限制其关注目标对象的一个小的区域。AdvCAM是一种图像的属性图,通过增加分类分数来进行操作。这种操作以反对抗的方式实现,沿着像素梯度的相反方向扰动图像。它迫使最初被认为不具有区分度的区域参与后续的分类,并产生逐步识别目标对象更多区域的属性图。此外,我们引入了一种新的正则化过程,抑制了与目标对象无关的区域的错误归因,并限制了已经具有高分数的区域的归因。在PASCAL VOC 2012测试图像上,我们分别实现了弱监督和半监督语义分割的mIoUs分别为68.0和76.9,这代表了新的最先进水平。代码可在以下链接找到:https://github.com/jbeomlee93/AdvCAM。

1.引言

        语义分割是将语义标签分配给图像中的每个像素的过程。在图像识别和场景理解中,它是一项重要的任务。深度神经网络(DNNs)在语义分割方面取得了巨大的进展[8,22],但它们需要大量使用像素级标签进行注释的训练图像。准备这样的训练数据集非常昂贵:对于包含平均2.8个对象的图像,每张图像的像素级注释需要约4分钟[4],而对于描绘复杂场景的单个大型(2048×1024)图像,像素级注释需要超过90分钟[9]。

        对于像素级注释的需求可以通过弱监督学习来解决,其中一个分割网络在具有比像素级标签更便宜获取的较少详细注释的图像上进行训练。弱监督方法可以使用涂鸦[54]、点[4]、边界框[26,51]和类别标签[2,6,29,48]作为注释。使用类别标签对图像进行标注大约需要20秒[4],使得类别标签成为最便宜的选项。此外,许多公共数据集已经使用类别标签进行了注释[10,12],自动化的网络搜索也可以提供带有类别标签的图像[20,30,47],尽管这些标签的准确性可能较低。这些考虑使得类别标签成为最受欢迎的弱监督形式。

        大多数使用类别标签的弱监督分割方法依赖于从训练好的分类器中获得的属性图[46,64]。这样的属性图标识了分类器所关注的图像区域。然而,这些重要或有区分度的区域相对较小,大多数属性图并不代表目标对象所占据的整个区域,这使得这些属性图不适合用于训练语义分割网络。因此,许多研究人员尝试通过操作图像[33,50,57]或特征图[21,29,63]来扩展区域,以覆盖目标对象的更多部分。

        一种常用的操作方法是擦除:强制分类器从已删除的有区分度区域中寻找目标对象的新区域。擦除是有效的,但它需要修改网络,通常是通过添加额外的层[21,63]或额外的训练步骤[57]。另一个困难是为迭代擦除提供可靠的终止条件;对图像的有区分度区域进行擦除可能导致DNN对该图像进行错误分类。如果从已擦除有区分度区域的图像越过决策边界,如图1(a)所示,可能会生成错误的属性图。另一种操作方法是随机扰动,如图1(b)所示。FickleNet [29]通过对DNN的特征图应用随机丢弃,将它们聚合成一个统一的属性图,从而使属性图多样化。

        我们提出了一种新的操作方法,用于扩展目标对象的有区分度区域。我们的方法基于对抗攻击[16,28],但目的是良性的。对抗攻击寻找一个图像的微小扰动,将其推向决策边界,以改变分类结果。相反,我们的方法以反对抗攻击的方式进行操作,旨在找到一种扰动,将操纵的图像推离决策边界,如图1(c)所示。这种操作是通过对抗攀升实现的,即通过沿着像素梯度扰动图像,增加目标类别的分类得分。结果是非有区分度区域,尽管与该类别相关,但逐渐参与了分类过程,使得操纵图像的CAM识别出更多的对象区域。图1(d)展示了通过迭代应用这种操作技术获得的CAM示例。

        沿着梯度上升确保了分类得分的增加,但是重复上升可能会导致不相关的区域(如背景的某些部分或其他对象的区域)一起被激活,或者目标对象的某些部分的属性分数被大幅增加。我们可以通过引入正则化项来解决这些问题,抑制其他类别的得分,并限制已经具有高分数的区域的属性分数。通过以这种方式进行迭代操作的图像获得的属性图可以用作伪标签来以弱监督和半监督的方式训练语义分割网络。

        我们的方法是对训练好的分类器的事后分析,可以在不修改现有方法的情况下改善性能,从而在弱监督和半监督语义分割中在PASCAL VOC 2012基准测试中取得新的最先进性能。

本文的主要贡献有三点:

  • 我们提出了AdvCAM,一种通过操纵图像来增加分类得分的属性图,使其能够识别更多的目标区域。
  • 我们经验证明,我们的方法在不修改或重新训练网络的情况下,改善了几种弱监督语义分割方法的性能。
  • 我们的技术在Pascal VOC 2012基准测试中比现有方法在弱监督和半监督语义分割方面表现出显著更好的性能。

图1:弱监督语义分割图像操作方法的概念描述:(a)擦除[21,57,63];(b)FickleNet [29];(c)AdvCAM;(d)通过迭代操纵图像获得的连续属性图的示例。

2.相关工作

2.1.弱监督学习

        现有的弱监督语义分割方法旨在通过获取一个改进的初始种子,其中包含了目标对象所占据的区域的良好近似,然后扩大该区域,以便更多地识别出对象。

获取高质量的种子:已经提出了几种方法来改进从分类器中获得的初始种子的质量。Wang等人[56]在分类器训练过程中使用等变性正则化,使得从不同变换图像中获得的属性图对于这些变换是等变的。Chang等人[6]通过使用隐含的语义类别来改进特征学习,这些类别是注释父类别的子类别,可以通过聚类图像特征来伪标记。Fan等人[13]和Sun等人[53]通过考虑跨图像的语义相似性和差异性来捕捉几个图像之间的共享信息。Wei等人[58]和Lee等人[32]通过将来自不同膨胀卷积或DNN的不同层的多个属性图进行合并,来考虑目标对象在多个上下文中的情况。

扩大目标区域:一些研究人员使用类似于区域生长的方法,通过检查每个像素的邻域来扩展初始的CAM[64]种子。语义标签从最初可以与目标对象明确关联的区域传播到最初不确定的区域。SEC[27]和DSRG[23]从包含不确定区域的初始CAM种子开始,在分割网络的训练过程中给这些不确定区域分配伪标签。PSA[2]和IRN[1]通过随机游走将目标区域扩展到语义上相似的区域。BEM[7]通过合成一个伪边界从CAM开始,然后使用类似于PSA[2]的传播方法进行扩展。

2.2.半监督学习

        在半监督学习中,使用少量具有像素级注释的图像以及大量具有弱注释或没有注释的图像来训练分割网络。交叉一致性训练(CCT)[42]涉及使用未标记或弱标记的图像对分割网络进行训练,通过强制预测在不同扰动下的不变性,例如注入随机噪声。Souly等人[52]通过使用由生成对抗网络[15]合成的图像来改进特征学习。Hung等人[24]采用对抗训练方案,减少预测的分割图与真实地图之间的分布差距。

2.3.对抗攻击

        对抗攻击方法试图通过呈现经过操纵的输入来欺骗DNN,以达到欺骗的目的。对抗攻击可以应用于分类[16,40]、语义分割[3]和物体检测[60]。对抗性图像操作[11]或模型参数操作[19]也可以产生欺骗性的属性图。这些攻击的目标是用虚假的属性图替换一个属性图,在不显著改变DNN的输出的情况下,突出显示同一图像中的另一个位置。这些方法的目的是操纵图像以引起神经网络的意外行为。相比之下,我们的目标是找到适当的输入图像操作,以便最终的属性图能更好地覆盖目标对象。

3.提出的方法

        我们在第3.1节中更仔细地研究了对抗攻击方法和类激活映射。在第3.2节和第3.3节中,我们介绍了AdvCAM并解释了如何为弱监督语义分割生成伪标签。最后,在第3.4节中展示了如何使用生成的伪标签训练语义分割网络。

3.1.前期准备工作

对抗攻击更详细说明:对抗攻击旨在找到一个小的像素级扰动,可以改变DNN的输出。换句话说,给定一个输入x,它找到满足NN(x)≠NN(x + n)的扰动n,其中NN(·)是神经网络的输出。一种典型的构造n的方法[16]是考虑到NN的决策边界的法向量,可以通过求解NN相对于x的梯度来实现。然后可以得到一个操作后的图像x',如下所示:

 其中ξ确定了对图像的改变程度。这个过程可以理解为梯度下降。

类激活映射(CAM):它确定了分类器所使用的图像区域。CAM是根据特征图的每个通道对分类分数的类别特定贡献计算得出的。它基于一个卷积神经网络,在最后的分类层之前具有全局平均池化(GAP)。可以通过以下方式计算出从图像x计算出的类激活映射CAM(x):

        其中wc是类别c的最终分类层的权重,f(x)是在GAP之前x的特征图。CAM填补了图像级别和像素级别注释之间的差距。然而,CAM得到的区域通常比目标物体的完整范围要小得多,因为小的区域提供了足够的分类信息。

3.2.对抗性类激活图(Adversarial Class Activation Map)

3.2.1.对抗攀升

        AdvCAM是通过对抗攻击获得的属性图,它是一种反对抗攻击的技术,通过操作图像以增加该图像的分类得分,使分类器能够识别更多的物体区域。这与基于Eq.1的对抗攻击相反,对抗攻击是通过操作图像来降低分类得分。受到PGD [28]的启发,可以使用以下关系对初始图像x0进行迭代对抗攀升:

 

        其中t(1≤t≤T)是对抗步骤的索引,xt是第t步中操作后的图像,yct−1是类别c中xt−1的分类标签。这个过程使得以前不具有区分性但相关的特征更多地参与分类。因此,通过迭代操作的连续图像所获得的CAM可以期望识别出越来越多的目标物体区域。我们通过聚合每个迭代t中从操作图像获得的CAM,生成一个包含迭代结果的定位图A,如下所示:

 

3.2.2.对抗攀升如何改进CAMs?

        分类标签yc和CAM之间的连接,即yc = GAP(CAM)[63],推断出对抗攀升增加了yc和CAM。在这个过程中,参与分类的特征被增强。为了更好地理解对抗攀升如何生成更密集的CAM,我们考虑两个问题:1非区分性特征是否可以被增强?2这些增强的特征从人类的角度来看是否与类别相关?

1)非区分性特征是否可以被增强?:有人可能认为,改变具有较大梯度的像素主要增强区分性特征。由于感受野的影响,这个像素改变会影响许多特征。然而,并不是所有受影响的特征都是必然的区分性特征。我们通过经验支持这个分析。我们定义区分性区域RD={i|CAM(x0)i ≥0.5}和非区分性区域RND={i|0.1<CAM(x0)i <0.5},其中i是位置索引。像素放大比例si t i t是位置i和步骤t处的CAM(xt)i/CAM(x0)i。图2(a)显示,对抗攀升使得si t∈RD和si∈RND t i∈RND t增长,但是增强的非区分性特征比区分性特征更多,从而导致了更密集的CAM。

2)从人类的角度来看,这些增强的特征是否与类别相关?我们现在考虑高亮显示的非区分性特征是否从人类的角度来看与类别相关。Moosavi等人[41]认为,对于输入来说,具有尖锐曲率的损失函数使得神经网络易受到对抗攻击。随后的研究表明,通过减小损失曲面的曲率[41]或者促使损失函数呈线性行为[44]来获得的平坦损失函数曲面可以提高神经网络的鲁棒性。在这个意义上具有鲁棒性的系统已被证明能够产生更符合人类感知的特征,并且更易于理解的方式操作[25,45,55]。

        同样的道理,我们可以期望通过对抗攀升操作的图像将产生与人类感知相吻合的特征,因为对抗攀升所影响的损失曲面的曲率很小。为了支持这一点,我们按照Moosavi等人的方法,可视化了我们训练的分类器的损失曲面:我们从计算的分类损失ℓ中获得一个操作向量n和一个随机向量r。我们使用一系列插值比率将操作向量和随机向量之间插值得到的向量对图像进行操作,并计算得到相应的分类损失值。通过对抗攀升获得的损失曲面(图3(a))比通过对抗攻击获得的损失曲面(图3(b))更加平坦。因此,我们可以合理地期望对抗攀升增加与人类角度相关的特征的归因,从而得到更好的CAM。

图2:对于100个图像,i∈RD和i∈RND的像素放大比例si t的分布,(a)没有正则化,(b)有正则化。

3.3.正则化

        即使通过对抗攀升获得的损失曲面相对平坦,过多的重复对抗操作可能会导致激活与错误类别中的物体对应的区域,或者增加已经具有高分数的区域的归因分数。为了解决这个问题,我们采取以下两个步骤:(i)抑制与其他类别相关的逻辑值,(ii)限制目标对象的区分性区域上的高归因分数。

抑制其他类别:在一张图像中,不同类别的物体可以相互增加逻辑值。例如,由于椅子和餐桌在图像中主要一起出现,神经网络可能会从餐桌区域推断出椅子的增加的逻辑值。因此,我们添加了一个正则化项,减小除了c类别之外的所有类别的逻辑值。

限制高归因分数:如3.2.2节中所述,对抗攀升会增加特征图中区分性和非区分性区域的归因分数。然而,区分性区域的归因分数的增长存在两个问题:1)它阻止了新的区域被额外归因到分类分数中;2)如果在对抗攀升过程中归因分数的最大值增加,剩余区域的归一化分数可能会降低。请参见图4(b)中的蓝色框。

        因此,在对抗攀升过程中,我们限制已经具有高分数的区域的归因分数,以使这些区域的归因分数保持与x0相似。我们通过引入一个限制掩码M来实现这个方案,该掩码包含那些CAM(xt−1)的归因分数高于阈值τ的区域。具体而言,M可以表示如下:

        其中1(·)是一个指示函数。图4(a)显示了一个示例的掩码M。我们添加了一个正则化项,以使与M区域对应的CAM值强制等于CAM(x0)的值。通过这种正则化,si t∈RD保持相对恒定,但si t∈RND在对抗攀升过程中仍然增长(图2(b))。图2显示,对抗攀升比区分性特征更多地增强了非区分性特征(<2×),而正则化使这种差异更大(>2.5×)。因此,目标对象的新区域可以更有效地被发现,从而得到更密集的CAM(图4(b))。为了应用正则化,我们将公式3修改如下:

 C是所有类别的集合,λ是一个超参数,用于控制掩码正则化的影响,⊙表示逐元素乘法。

图4:(a)一张示例图像及其CAM和限制掩码M。(b)初始CAM以及经过5、10和20步对抗攀升后的CAM,包括有和没有正则化的情况。

3.4.训练分割网络

        由于CAM是从分类器生成的下采样的中间特征中获得的,它粗略地定位目标对象,无法表示其精确的边界。许多生成弱监督语义分割初始种子的方法通过使用现有的种子细化方法[1,2,23]来修改它们的初始种子来构建伪地面真值。例如,SEAM [56]和Chang等人[6]使用PSA [2];MBMNet [37]和CONTA [61]使用IRN [1]。我们还将种子细化方法应用于粗糙地图A。对于弱监督学习,我们将生成的轮廓用作DeepLab-v2的伪地面真值,DeepLab-v2是在ImageNet数据集[10]上预训练的。对于半监督学习,我们使用CCT [42],它使用IRN [1]生成伪地面真值掩码;我们将其替换为刚刚描述的我们的掩码。

4.实验

4.1.实验设置

数据集:我们在PASCAL VOC 2012 [12]数据集上进行了实验。这个数据集中的图像带有完全监督语义分割的掩码,但我们只将它们用于评估。在弱监督设置下,我们在Hariharan等人提供的10,582个训练图像上训练我们的网络,这些图像有图像级别的注释。在半监督设置下,我们使用了1,464个带有像素级别注释的训练图像和9,118个具有类别标签的训练图像,这是根据之前的工作[29,38,42,58]进行的。我们通过计算1,449个验证图像和1,456个测试图像的平均交并比(mIoU)值来评估我们的结果。由于测试图像的标签不公开,这些图像的结果是从官方的PASCAL VOC评估服务器获得的。

可重现性:我们进行了T = 27和ξ = 0.008的迭代对抗攀升。我们将λ设置为7,τ设置为0.5。为了生成初始种子,我们遵循了Ahn等人[1]的过程,包括使用ResNet-50 [18]。对于最终的分割,我们使用DeepLab-v2-ResNet101 [8]作为骨干网络。我们遵循了[8]的默认设置进行训练,其中包括将图像裁剪为321×321像素。在半监督设置中,我们使用了Ouali等人[42]相同的设置。

4.2.实验结果

掩码的质量:表1比较了我们的方法和其他最近技术所得到的初始种子和伪地面真值掩码。种子和掩码都是从PASCAL VOC数据集的训练图像中生成的。对于初始种子,我们通过将一系列阈值应用于地图A中的前景和背景来报告最佳结果,类似于SEAM [56]的方法。我们的初始种子比原始的CAMs [64]好6.8%,CAMs被视为基准,而且也优于其他方法。需要注意的是,Chang等人[6]和SEAM [56]使用Wide ResNet-38 [59],它提供比ResNet-50 [18]更好的表示能力。SEAM [56]还使用了一个辅助的自注意模块,通过考虑像素之间的关系对初始CAM进行像素级细化。我们将CRF,一种广泛使用的后处理方法,应用于Chang等人[6]、SEAM [56]、IRN [1]和我们的方法的初始种子。除了SEAM之外,CRF平均提高了种子超过5%,但只提高了SEAM的种子1.4%。我们认为这是因为SEAM的种子已经通过自注意模块进行了细化。我们应用CRF后的种子比SEAM的种子好5.3%。

        我们还将经过种子细化后提取的伪地面真值掩码与现有方法进行了比较。大多数方法使用PSA [2]或IRN [1]对其初始种子进行细化。为了进行公平比较,我们使用这两种种子细化技术生成了伪地面真值掩码。表1显示,无论使用哪种种子细化技术,我们的方法都明显优于其他方法。

弱监督语义分割:表2将我们的方法与其他最近引入的弱监督语义分割方法进行了比较,这些方法具有不同级别的监督:完全监督的像素级掩码(P),边界框(B)或图像类别标签(I),带有或不带有显著目标掩码(S)。表2中的所有结果都是使用基于ResNet的骨干网络[18]获得的。仅使用图像级注释,我们的方法在PASCAL VOC 2012验证集和测试集图像上分别实现了68.1和68.0的mIoU值。在相同级别的监督下,这显著优于其他方法。特别是,验证图像的mIoU值比IRN [1]高出4.6%,IRN是我们的基准方法。在我们的竞争对手中,表现最好的方法CONTA [61]实现了66.1的mIoU值;但他们的方法依赖于SEAM [56],而SEAM已被证明优于IRN [1]。如果CONTA与IRN一起实施,得到的mIoU值为65.3,比我们的方法差2.8%。图5展示了FickleNet [29]、IRN [1]和我们的方法生成的语义掩码的示例。

我们的方法还优于使用辅助显著目标掩码监督[35,36]的其他方法,这些方法提供了图像中显著对象的精确边界信息,或者使用额外的网络图像或视频[30,53]。我们的方法的性能也与使用边界框监督的方法[26,31,51]相当。

半监督语义分割:表3将我们的方法在PASCAL VOC验证集和测试集图像上的mIoU分数与其他最近的半监督分割方法进行了比较,这些方法使用了1.5K张带有完全监督掩码的图像和9.1K张带有弱标注的图像。表3中的所有方法都是基于ResNet的骨干网络[18]实现的,除了使用VGG骨干网络[49]的标记了(†)的方法。我们在PASCAL VOC 2012验证集和测试集图像上分别实现了77.8和76.9的mIoU值,这比在相同级别的监督下的其他方法更好。具体而言,我们的方法在验证图像上的性能比CCT [42]好4.6%,CCT是我们的基准方法。我们的方法甚至优于Song等人[51]使用边界框标签对9.1K图像进行分割,而不是使用类别标签。图5展示了CCT [42]和我们的方法生成的语义掩码的示例。

表1:在PASCAL VOC 2012训练图像上,初始种子(Seed)、带有CRF的种子(+CRF)和伪地面真值掩码(Mask)的mIoU(%)值。

表2:PASCAL VOC 2012验证集和测试集上的弱监督语义分割性能。

表3:PASCAL VOC 2012验证集和测试集上半监督语义分割方法的比较。

5.讨论

5.1.迭代对抗攀升

        我们通过评估初始种子的mIoU来分析第3.3节中介绍的迭代对抗攀爬和正则化技术的有效性。图6(a)显示了每个对抗迭代的初始种子的mIoU。最初,无论是否进行正则化,mIoU都急剧上升;但是在没有正则化的情况下,曲线在第8次迭代左右达到峰值。

        为了分析这一点,我们根据噪声的比例评估了每个对抗攀爬迭代中新定位区域的真实性。我们将噪声定义为被分类为前景但实际上是背景的像素比例。如图6(b)所示,在没有正则化的情况下,噪声比例在一些迭代后急剧上升,这意味着新的区域往往在背景区域内。正则化允许在多达30个对抗步骤中找到目标对象的新区域,并且使噪声比例远远低于初始CAM。图7展示了带有和不带有正则化的每个对抗迭代中的显著图示例。

图5:PASCAL VOC验证集图像的弱监督和半监督方式下的预测语义掩码示例。

图6:对抗攀爬和正则化对种子质量(a)和噪声比例(b)的影响。(c)正则化系数λ的影响。(d)掩码阈值τ的影响。(e)步长ξ的影响。

表4:AdvCAM对不同生成初始种子方法的影响:PASCAL VOC 2012训练图像的初始种子的mIoU(种子)和伪地面真实掩码的mIoU(掩码)。

5.2.超参数分析

        在前一节中,我们研究了对抗迭代次数对初始种子的影响(图6(a)和(b))。我们还分析了初始种子的mIoU对AdvCAM使用的其他三个超参数的敏感性。

正则化系数λ:它控制对抗攀爬过程中已经具有高分数的区域的归因分数限制的掩码技术的影响,如公式(7)所示。图6(c)展示了不同λ值下初始种子的mIoU。当λ=0时,没有正则化。掩码技术提高了超过5%的性能(λ=0为50.43,λ=7为55.55)。在λ=5之后,曲线趋于平缓,这表明选择一个合适的λ值并不困难。

掩码阈值τ:它控制在公式(5)中限制掩码M的大小,决定在对抗攀爬过程中有多少像素的归因值将保持与原始CAM类似。图6(d)展示了不同τ值下初始种子的mIoU。这个参数比λ更不敏感:在0.3和0.7之间变化τ只会导致mIoU变化不到1%。 步长ξ:它决定了在公式(6)中对图像进行操作的程度。图6(e)展示了不同ξ值下初始种子的mIoU。在我们的系统中,步长ξ的变化并不特别显著。

步长ξ:它确定了在公式(6)中对图像进行操作的程度。图6(e)展示了不同ξ值下初始种子的mIoU。在我们的系统中,步长ξ的变化并不特别显著。

5.3.我们方法的普适性

        除了IRN [1]之外,我们还尝试了两种生成弱监督语义分割初始种子的最新方法,分别是Chang et al. [6]和SEAM [56]。我们尽可能使用了作者训练好的分类器,但由于作者没有提供IRN [1]的预训练分类器,我们重新训练了它的分类器。我们也按照他们的实验设置,包括骨干网络和掩码细化方法,即我们使用PSA [2]来细化“Chang et al.+AdvCAM”或“SEAM +AdvCAM”得到的初始种子。表4给出了将每种方法与对抗攀爬相结合的初始种子和伪地面真实掩码的mIoU值。使用AdvCAM平均提高了初始种子的质量超过4%。我们的方法不需要修改或重新训练这些初始种子生成器。 

图7:展示了通过迭代对抗攀爬对图像进行操作后得到的初始CAM(蓝色框)和连续的定位图示例,其中上方是使用正则化过程,下方是没有使用正则化。

图8:展示了具有“bird”(蓝色)和“cat”(绿色)标签的图像的特征流形,以及每个类别的一张图像的对抗攀爬轨迹。特征的维度通过t-SNE [39]进行了降维。

5.4.流行可视化

        为了在特征级别上可视化对抗攀爬的轨迹,我们使用了t-SNE降维[39]。我们收集了包含单个猫或鸟类的图像,并且这些图像被分类器正确预测。然后,我们构建了一个包含这些图像特征的集合F,这些特征是在最终分类层之前提取的。我们还选择了一张代表性的猫的图像和一张代表性的鸟的图像,并构建了一个包含这两张图像及其通过对抗攀爬生成的20张图像的特征集合F'。图8展示了F ∪F'中特征的t-SNE可视化结果。我们可以看到,对抗攀爬实际上将特征从将蓝色区域和绿色区域分开的决策边界上推开。此外,尽管经过了20步的对抗攀爬,操作后的特征并没有显著偏离每个类别的特征流形。

6.结论

        我们展示了如何利用对抗操作来扩展目标对象的小的可区分区域,从而获得更好的目标对象定位。我们通过对输入图像计算分类器输出相对于输入图像的梯度来获得像素级扰动,从而增加被扰动图像的分类得分。操作后的图像的归因图覆盖了更多的目标对象。这是对经过训练的分类器的事后分析,因此不需要对分类器进行修改或重新训练。这使得AdvCAM可以方便地集成到现有方法中。我们已经展示了AdvCAM确实可以与最近的弱监督语义分割网络相结合,并在弱监督和半监督语义分割方面取得了新的最优性能。

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

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

相关文章

10. Mybatis 项目的创建

目录 1. Mybatis 概念 2. 第一个 Mybits 查询 2.1 创建数据库和表 2.2 添加 Mybatis 框架支持 2.3 添加配置文件 2.4 配置 MyBatis 中的 XML 路径 2.5 添加业务代码 在学习 Mybatis 之前&#xff0c;我们需要知道 Mybatis 和 Spring 没有任何的关系。如果一定要强调二者…

建造者设计模式 + 高阶函数 => DSL

该设计模式适用于创建复杂对象&#xff0c;该复杂对象通常是由各个部分的子对象用一定的算法或者步骤构成&#xff0c;针对每个子对象内部算法和步骤通常是稳定的&#xff0c;但是该复杂对象的确实由于不同的需求而选择使用不同的子对象进行组装。对于构建该复杂的对象&#xf…

20.0 HTTP 通信

1. web开发 1.1 web开发介绍 Web指的是World Wide Web(万维网), 是一种基于互联网的信息系统. 万维网由一系列通过超文本链接相互连接的页面组成, 这些页面中包含了文本, 图像, 音频, 视频等多媒体内容. 用户可以通过浏览器访问万维网上的网页, 并通过超链接在不同页面之间导…

Golang速成

目录 Golang 语言特性Golang的优势Golang 的应用场景Golang 的不足 基础语法变量的声明常量与 iotastring字符串遍历strings 包bytes 包strconv 包unicode 包 循环语句range 函数多返回值init 函数闭包import 导包匿名函数 指针defer切片 slice数组sliceslice 操作… mapmap 的…

数据结构基础知识、名词概述

1.1 基本概念和术语1.1.1 数据、 数据元素、 数据项和数据对象1.1.2 数据结构1.1.3 数据类型和抽象数据类型 1.2 抽象数据类型的表示与实现1.3 算法与算法分析&#xff08;1&#xff09;1.4 算法与算法分析&#xff08;2&#xff09;1.5 算法与算法分析&#xff08;3&#xff0…

pytest 自定义HOOK函数

除了系统提过的HOOK函数外&#xff0c;也可以通过自定义HOOK的方式实现想要的功能。 首先创建一个py文件&#xff0c;里面定义自己的HOOK函数&#xff0c;主要pytest里面的hook函数必须以pytest开头。 #myhook.pydef pytest_myhook(user):"""自定义HOOK函数&q…

LeetCode[面试题04.08]首个共同祖先

难度&#xff1a;Medium 题目&#xff1a; 设计并实现一个算法&#xff0c;找出二叉树中某两个节点的第一个共同祖先。不得将其他的节点存储在另外的数据结构中。注意&#xff1a;这不一定是二叉搜索树。 例如&#xff0c;给定如下二叉树: root [3,5,1,6,2,0,8,null,null,7,…

51单片机--AD/DA

AD/DA介绍 AD和DA是模拟信号和数字信号之间的转换过程。 AD&#xff0c;全称为模拟到数字&#xff08;Analog-to-Digital&#xff09;&#xff0c;指的是将模拟信号转换为数字信号的过程。在AD转换中&#xff0c;模拟信号经过采样、量化和编码等步骤&#xff0c;被转换为离散的…

C语言基础入门详解三

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂&#xff0c;风趣幽默"&#xff0c;感觉非常有意思,忍不住分享一下给大家。 &#x1f449;点击跳转到教程 一、C语言之函数指针 #include<stdio.h> #include<stdlib.h> /**函数指针 …

百度文心一言接入教程-Java版

原文链接 前言 前段时间由于种种原因我的AI BOT网站停运了数天&#xff0c;后来申请了百度的文心一言和阿里的通义千问开放接口&#xff0c;文心一言的接口很快就通过了&#xff0c;但是文心一言至今杳无音讯。文心一言通过审之后&#xff0c;很快将AI BOT的AI能力接入了文心…

uniapp使用echarts

uniapp使用echarts 1.下载资源包2.引入资源包3.代码示例注意事项 1.下载资源包 https://echarts.apache.org/zh/download.html 2.引入资源包 将资源包放入项目内 3.代码示例 <template><div style"width:100%;height:500rpx" id"line" ref&…

【网络】应用层——HTTP协议

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《网络》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; &#x1f3c0;认识HTTP协议 上篇文章中&#xff0c;本喵带着大家对HTTP有了一个初步的认识&#xff0…

使用Django自带的后台管理系统进行数据库管理的实例

Django自带的后台管理系统主要用来对数据库进行操作和管理。它是Django框架的一个强大功能&#xff0c;可以让你快速创建一个管理界面&#xff0c;用于管理你的应用程序的数据模型。 使用Django后台管理系统&#xff0c;你可以轻松地进行以下操作&#xff1a; 数据库管理&…

动态SQL 语句-更复杂的查询业务需求也能轻松拿捏

文章目录 动态SQL 语句-更复杂的查询业务需求动态SQL-官方文档为什么需要动态SQL动态SQL-基本介绍基本介绍动态SQL 必要性解决方案分析 动态SQL 常用标签动态SQL-案例演示if 标签应用实例where 标签应用实例choose/when/otherwise 应用实例forEach 标签应用实例trim 标签应用实…

【公益】Q学友联合福田人力资源局开展“侨香社区促就业 技能培训强本领”

落实《“十四五”就业促进规划》文件精神&#xff0c;进一步提高就业劳动者就业技能水平&#xff0c;提高居民就业率&#xff0c;侨香社区党委坚持以党建为引领&#xff0c;整合多方资源&#xff0c;深入开展“我为群众办实事”&#xff0c;切合群众实际、满足群众需求&#xf…

深度学习技巧应用24-深度学习手撕代码与训练流程的联系记忆方法

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用24-深度学习手撕代码与训练流程的联系记忆方法,大家都知道深度学习模型训练过程是个复杂的过程,这个过程包括数据的收集,数据的处理,模型的搭建,优化器的选择,损失函数的选择,模型训练,模型评估等步骤,其中缺少…

Java基础_网络编程

Java基础_网络编程 网络编程三要素InetAddress网络模型 UDP通信程序单播发送数据接收数据聊天室 组播广播 TCPTCP通信程序三次握手和四次挥手 来源Gitee地址 网络编程三要素 IP: 设备在网络中的地址&#xff0c;是唯一的标识端口号: 应用程序在设备中唯一的标识。协议: 数据在…

【Qt】利用Tool Button控件创建下拉菜单按钮

功能描述 利用qt进行界面设计和开发&#xff0c;创建下拉按钮。 详细实现 1、在qt侧工具栏利用设计打开.ui文件 2、创建按钮 创建一个Tool Button按钮&#xff0c;并在属性窗口中的QToolButton栏中选中MenuButtonPopup属性。 3、创建action 在Action编辑器创建对应的ac…

SQL编译优化原理

最近在团队的OLAP引擎上做了一些SQL编译优化的工作&#xff0c;整理到了语雀上&#xff0c;也顺便发在博客上了。SQL编译优化理论并不复杂&#xff0c;只需要掌握一些关系代数的基础就比较好理解&#xff1b;比较困难的在于reorder算法部分。 文章目录 基础概念关系代数等价 j…

k8s webhook实例,java springboot程序实现 对Pod创建请求添加边车容器 ,模拟istio实现日志文件清理

k8s webhook实例&#xff0c;java springboot程序实现 对Pod创建请求添加边车容器 &#xff0c;模拟istio实现日志文件清理 大纲 背景与原理实现流程开发部署my-docker-demo-sp-user服务模拟业务项目开发部署my-sidecar服务模拟边车程序开发部署服务my-docker-demo-k8s-opera…