十七章:FickleNet:使用随机推理进行弱监督和半监督语义图像分割

0.摘要

        弱监督语义图像分割的主要障碍在于从粗糙的图像级注释中获取像素级信息的难度。大多数基于图像级注释的方法使用从分类器获得的定位地图,但这些地图仅关注对象的小区别部分,不捕捉精确的边界。FickleNet探索由通用深度神经网络创建的特征图上的各种位置的组合。它随机选择隐藏单元,然后使用它们来获取图像分类的激活分数。FickleNet隐含地学习了特征图中每个位置的一致性,从而产生了一个定位地图,可识别对象的区别和其他部分。通过选择随机隐藏单元对,从单个网络中获得了集合效应,这意味着从单个图像生成了各种定位地图。我们的方法不需要任何额外的训练步骤,只需向标准卷积神经网络添加一个简单的层;尽管如此,我们的方法在弱监督和半监督设置下都优于最近可比较的技术,在Pascal VOC 2012基准测试中表现良好。

1.引言

        语义分割是计算机视觉中最重要和最有趣的任务之一,深度学习的发展已经在完全监督的情况下取得了巨大的进展[3,36]。然而,要在实际应用中使用语义图像分割需要大量的对象类别和每个类别的标记数据。为每个对象类别标注像素级注释是费力的,并且阻碍了对象类别的扩展。这个问题可以通过使用比像素级注释更不确定且更易于获取的注释的弱监督方法来解决。然而,目前的弱监督方法在定位和分割精度方面仍存在许多问题,我们需要进一步研究并开发更有效的弱监督方法来解决这些问题。

        像素级注释使得完全监督的语义分割能够在学习对象边界和组件之间的关系方面实现可靠性。但是,使用图像级注释来训练分割网络是困难的,因为弱标记数据只表明某个类别的对象的存在,并没有提供任何有关它们位置或边界的信息。大多数使用图像级注释的弱监督方法依赖于由分类网络[37]获得的定位图,以弥合图像级和像素级注释之间的差距。然而,这些定位图仅关注对象的小区别部分,没有精确地表示它们的边界。要使这些方法的性能接近于完全监督的图像分割,就需要使分类器转移其主要任务,即在对象之间的区分中发现像素之间的关系。

        我们使用FickleNet解决了这个问题,它可以使用卷积神经网络中随机组合的隐藏单元从单个图像生成各种定位图,如图1(a)所示。从类似VGG-16 [26]的通用分类网络创建的特征图开始,FickleNet在每个滑动窗口位置随机选择隐藏单元,对应于卷积操作中的每个步幅,如图1(b)所示。这个过程通过dropout方法[28]简单实现。选择一个滑动窗口位置中所有可用的隐藏单元(确定性方法)倾向于产生一种平滑效应,混淆前景和背景,可能导致两个区域同时被激活或取消激活。然而,随机选择隐藏单元(随机方法)可以产生不同形状的区域,可以更清晰地描绘对象。由于FickleNet随机选择的隐藏单元的模式包括具有不同扩张率的膨胀卷积的内核的形状,因此可以将FickleNet视为扩张卷积的一般化,但FickleNet仅使用单个网络就可以潜在地匹配具有不同尺度和形状的对象,而扩张卷积需要具有不同扩张率的网络来缩放其内核。

        在常见的深度学习框架中,如PyTorch [22],在每个滑动窗口位置选择随机隐藏单元的操作不是在CUDA级别进行优化的。因此,一个朴素的实现FickleNet的方法,即在每个滑动窗口位置选择随机隐藏单元,然后进行卷积,将需要大量的迭代操作。然而,如果我们在进行随机选择之前扩展特征图,就可以使用深度学习框架提供的优化卷积函数。在进行扩展特征图之前,需要充分扩展特征图,以防止连续的滑动窗口位置重叠。然后,可以在扩展的特征图的空间轴上应用dropout,并使用与内核大小相等的步幅执行卷积操作。这样可以节省大量时间,而GPU内存使用量不会显著增加,因为要反向传播的参数数量保持不变。

        虽然许多现有的网络在其训练过程中使用随机正则化(例如,Dropout [28]),但随机效果通常在推断过程中被排除。然而,我们的推断过程包含随机过程,因此会产生各种定位图。在每个定位图中被分配给具有高分数的特定类别的像素被发现,并且这些像素被聚合成单个定位图。从FickleNet获得的定位图被用作分割网络的伪标签进行训练。本文的主要贡献可以总结如下:

        •我们提出了FickleNet,它使用dropout方法简单实现,发现了图像中位置之间的关系并扩大了分类器激活的区域。

        •我们介绍了一种扩展特征图的方法,使得我们的算法更快,GPU内存成本很小。

        •我们的工作在弱监督和半监督设置下均在Pascal VOC 2012基准测试中实现了最先进的性能。

图1。(a)FickleNet允许单个网络从单个图像生成多个定位图。(b)隐藏单元选择的概念描述。选择所有隐藏单元(确定性,左侧)会产生平滑效果,因为背景和前景一起被激活。随机选择的隐藏单元(随机性,中间和右侧)可以提供更灵活的组合,可以更清晰地对应于对象的部分。

2.相关工作

        弱监督语义图像分割方法使用不完整的注释,例如涂鸦、边界框或图像级注释,来替换强像素级注释。最近引入的方法使用提供位置信息的注释(如涂鸦或边界框)取得了成功的结果。我们现在回顾一些最近介绍的使用图像级注释的弱监督方法。类激活图(CAM)是从图像级别注释开始像素分类的好起点。CAM 发现神经网络中每个隐藏单元对分类分数的贡献,从而可以识别出大量贡献的隐藏单元。然而,CAM 倾向于集中在目标对象的小区域上,这使得它不适合训练语义分割网络。最近引入的弱监督方法通过对图像(第2.1节)、特征(第2.2节)或通过扩展CAM发现的区域(第2.3节)来扩展CAM激活的区域。

2.1.图像级别处理

        图像级别的隐藏和擦除已被提出作为防止分类器专注于对象区域的歧视性部分的方法。HaS [27] 隐藏训练图像的随机区域,强制分类网络寻找对象的其他部分。然而,隐藏随机区域的过程并不考虑对象的语义和大小。AE-PSL [31]从对象开始一个小的区域,然后通过擦除已经发现的区域,驱动分类网络发现一系列新的和互补的对象区域。虽然它可以逐步扩展属于一个对象的区域,但它需要多个分类网络来执行重复的分类和擦除步骤。GAIN [19]有一个 CAM,它被训练成以一种混淆分类器的方式擦除区域。这个 CAM 必须足够大,足以覆盖整个对象。然而,分类器主要对高活化反应,如果一个对象的唯一歧视性部分被擦除,它可能会感到困惑。

2.2.特征级处理

        特征级别的处理可用于扩展 CAM 激活的区域。ACoL [35] 和 TPL [14] 使用分类器识别对象的歧视性部分,并基于特征擦除它们。然后训练第二个分类器,从已经擦除的特征中找到对象的互补部分。这是一种在相对较高的层面上运行的有效技术。然而,它与图像级别擦除具有类似的缺点,在这些方法中第二个分类器和训练步骤是必不可少的,这可能导致次优的性能。此外,其歧视性部分已被擦除的特征可能会困扰第二个分类器,导致其训练不正确。PG-CAM [18] 从几个密集连接图层收集特征,然后合并结果定位图。

        MDC [33] 在一个通用分类网络中使用多个卷积块,每个块以不同的速率进行扩张,并汇总从每个块获得的 CAM,类似于集成学习的过程。不同扩张率产生的不同大小的感受野可以捕捉到不同的模式,但是 MDC 需要针对每个扩张率进行单独的训练过程,而且其限制为整数扩张率(例如1、3、6、9),意味着只有有限数量的集成可能性。此外,标准扩张卷积产生的感受野是固定大小的正方形,因此 MDC 倾向于识别出假阳性区域。

2.3.区域生长

        区域生长可以用于扩展由 CAM 生成的定位图,该 CAM 最初仅识别对象的小部分区域。AffinityNet [1] 在初始 CAM 的监督下学习像素级语义亲和力,识别属于同一对象的像素,然后通过从语义亲和度计算的转移矩阵的随机游走扩展初始 CAM。然而,学习语义亲和力需要一个额外的网络,结果严重依赖于 CAM 的质量。SEC [16]使用一种新的损失函数来扩展定位图,并使用条件随机场(CRF)[17]将其限制在物体边界范围内。DSRG [12]在其分割网络的训练期间优化初始定位图,因此 DSRG 不需要额外的网络来生长区域。区域生长的种子是从 CAM 中获取的,如果这些种子仅来自于物体的判别性部分,则很难将区域生长到非判别性部分。因此,我们利用具有 FickleNet 生成的定位图的分割网络。

图2. (a) FickleNet的朴素实现方式,需要在每个滑动窗口位置(红色和绿色方框)调用一次dropout和卷积函数。(b) 使用映射扩展的实现方式:现在用步长s一次执行卷积。输入特征映射被扩展,以便连续的滑动核(红色和绿色框)不重叠。

3.提出的方法

我们的程序包含以下步骤:

  1. 训练FickleNet:使用随机选择隐藏单元的方法进行多类别分类训练。FickleNet是一个神经网络模型。
  2. 生成定位图:使用训练图像生成定位图。定位图是对图像的局部信息进行标记的一种方法。
  3. 训练分割网络:将定位图作为伪标签,用于训练分割网络。分割网络是用于图像分割的一种神经网络模型。 我们用x ∈Rk×h×w表示从标准深度神经网络中通常获得的特征图的类型,其中w和h分别是k个通道的宽度和高度。 训练FickleNet和生成定位图的具体步骤如算法1所示。

3.1.随机隐藏单元选择

        FickleNet使用随机隐藏单元选择方法来探索从随机选择的隐藏单元对计算的分类得分中发现对象部分之间的关系,目的是将对象的非判别性部分与同一对象的判别性部分关联起来。这个过程通过在每个滑动窗口位置对特征x应用空间dropout [28]来实现,如图2(a)所示。这与标准的dropout技术不同,标准的dropout技术在每个前向传递中只对特征图中的隐藏单元进行一次采样,因此未被采样的隐藏单元无法对类别得分做出贡献。我们的方法在每个滑动窗口位置对隐藏单元进行采样,这意味着隐藏单元在某些窗口位置可能被激活,在其他位置可能被丢弃。

        这种选择隐藏单元的方法可以生成许多不同形状和大小的感受野,如图3所示。其中一些感受野可能类似于标准扩张卷积产生的感受野;因此,通过这种技术产生的结果可以预期包含以不同速率产生的标准扩张卷积的结果。这种选择过程可以通过3.1.1节中描述的扩张技术简单高效地实现,我们称之为保持中心的dropout方法,这在3.1.2节中有描述。

3.1.1.特征图扩展

        由于我们的方法需要在每个滑动窗口位置采样新的组合,我们不能直接利用流行的深度学习框架(如PyTorch [22])提供的CUDA级别优化的卷积函数。如果我们按照图2(a)所示的方式简单实现我们的方法,我们将需要在每个前向传递中调用卷积函数和dropout函数w×h次。通过扩展特征图,我们将每个前向传递中对每个函数的调用减少为一次。

        图2(b)展示了我们如何扩展输入特征图,以确保没有滑动窗口位置重叠。在扩展特征图之前,我们对x应用零填充,以使最终输出的尺寸与输入相等。经过零填充后的特征图大小变为k×(h+s-1)×(w+s-1),其中s是卷积核的大小。我们扩展零填充的特征图,使得连续的滑动窗口位置不重叠,扩展后的特征图xexpand的大小为k×(sh)×(sw)。然后,我们使用3.1.2节中介绍的保持中心的dropout技术在xexpand上选择隐藏单元。扩展过程的示例见附录(第??节)。尽管扩展后的特征图需要更多的GPU内存,但要训练的参数数量保持不变,因此对GPU的负载并没有显著增加。

 图3.从一个7×7的卷积核中选择9个隐藏单元(标记为蓝色)的示例。为简单起见,未显示通道。所选隐藏单元的形状有时包含具有不同扩张率的卷积核的形状。

3.1.2.中心保留空间丢弃

        我们通过将dropout方法[28]应用于空间位置来实现随机隐藏单元的选择。我们可以通过仅对扩展特征图xexpand应用一次dropout来实现与简单实现相同的结果。请注意,dropout在所有通道上均匀应用。我们不会丢弃每个滑动窗口位置的卷积核中心,以便可以找到每个步幅中卷积核中心与其他位置之间的关系。在以p为比率进行空间dropout之后,我们将修改后的特征图表示为xexpand p。虽然dropout通常只在训练期间使用,但我们将其应用于训练和推断过程中。

3.1.3.分类

        为了获得分类分数,将大小为s和步幅为s的卷积核应用于丢弃的特征图xexpand p。然后,我们获得一个尺寸为c×w×h的输出特征图,其中c是对象类别的数量。通过对该特征图应用全局平均池化和S形函数,我们获得一个分类分数S。然后,使用S形交叉熵损失函数更新FickleNet,该损失函数广泛用于多标签分类。

3.2.推理定位图

        现在我们可以从一张图像中获得各种分类分数,这些分数对应于随机选择的隐藏单元的组合,而每个随机选择都会生成一个不同的定位图。3.2.1节描述了如何从每个随机选择中获得一个定位图,而3.2.2节描述了如何将随机选择的定位图聚合成一个单独的定位图。

3.2.1.梯度加权类激活映射

        我们使用基于梯度的CAM(Grad-CAM)[25]来获得定位图。Grad-CAM是类激活映射(CAM)[37]的推广,它通过梯度流来发现每个隐藏单元对分类分数的类别特定贡献。我们计算目标类别分数相对于x(扩展前的特征图)的梯度,然后按这些梯度加权对特征图沿通道轴求和。我们可以表示每个目标类别c的Grad-CAM如下:

3.2.2.汇聚定位图

        FickleNet允许从一张图像中构建许多定位图,因为在每次随机选择中使用不同的隐藏单元组合来计算分类分数。我们从一张图像中构建出N个不同的定位图,并将它们聚合成一个单独的定位图。令M[i](1 ≤ i ≤ N)表示从第i个随机选择构建的定位图。我们将这N个定位图聚合起来,使得聚合图中位于位置u的像素被分配给类别c,如果在任何M[i]中类别c在u处的激活分数高于阈值θ。在训练过程中,忽略未分配给任何类别的像素。如果一个像素被分配给多个类别,我们会在N个定位图的平均图中检查其类别分数,并将该像素分配给平均图中得分最高的类别。

3.3.训练分割网络

       在第3.1节和3.2节中描述的定位图构建过程中,我们可以为语义图像分割网络提供伪标签。我们使用与DSRG[12]相同的背景线索。我们将从FickleNet生成的定位图作为弱监督分割的初始线索输入到DSRG中。对于半监督学习,我们引入了一个额外的损失,该损失来自由人完全注释的数据。令C为图像中存在的类别集合。我们训练一个分割网络,使用以下损失函数:

4.实验

4.1.实验设置

数据集:我们在PASCAL VOC 2012图像分割基准测试[6]上进行了实验,该数据集包含21个对象类别,包括一个背景类别。使用与其他弱监督语义分割工作相同的协议,我们使用带有图像级注释的10,582个训练图像进行了网络训练。我们报告了1,449个验证图像和1,456个测试图像的平均交并比(mIoU)。测试图像的结果是在官方的PASCAL VOC评估服务器上获得的。

网络细节:FickleNet基于VGG-16网络[26],使用Imagenet[5]数据集进行预训练。我们修改了VGG-16网络,移除了所有全连接层和最后一个池化层,并将最后一个块的卷积层替换为扩张卷积,扩张率为2。我们将卷积核大小s设置为9,dropout率p设置为0.9。分割任务由DSRG[12]执行。

实验细节:我们使用了一个小批量大小为10来训练FickleNet。我们将训练图像随机裁剪为321×321像素的大小,以使特征图x的大小变为512×41×41。初始学习率设为0.001,每10个epoch减半一次。我们使用了Adam优化器[15],使用其默认设置。在分割训练过程中,我们使用了与DSRG[12]相同的设置。我们将每个图像的不同定位图数N设为200,阈值θ设为0.35。对于半监督学习,我们将α设为2。

可重现性:我们使用PyTorch[22]来训练FickleNet并进行定位图构建,并在分割步骤中使用了Caffe框架[13]。所有实验都在NVIDIA TITAN Xp GPU上进行。

4.2.与当前方法的对比

弱监督分割:我们将我们的方法与其他最近引入的具有不同程度监督的弱监督语义分割方法进行了比较。表1显示了在PASCAL VOC 2012图像上的结果。我们的方法在通过图像级注释提供相同程度监督的情况下,表现出色,分别为验证图像和测试图像的mIoU值为61.2和61.9。与我们的骨干网络DSRG相比,这分别是验证图像和测试图像上分别提高了2.2%和1.5%。需要注意的是,与许多其他最新技术相比,我们的方法不需要额外的训练步骤或额外的网络,如AffinityNet[1]需要一个额外的网络来学习语义关联性,或者AE-PSL[31]需要几个训练步骤。

        表2显示了在使用基于ResNet的分割网络在PASCAL VOC 2012图像上的结果。我们使用DeepLab-v2-ResNet101实现了分别为验证图像和测试图像的mIoU值为64.9和65.3。与DSRG相比,这分别提高了3.5%和2.1%。AffinityNet[1]使用基于ResNet-38的网络[34],其具有比ResNet-101更强大的表示能力。

        除了AISI [11]之外,我们的方法还显著优于基于额外监督的方法。这些方法包括在COCO [20]图像的像素级注释上训练的TransferNet [9],以及在大量未标记的YouTube视频上提供的CrawlSeg [10]。AISI [11]利用了通过良好注释的实例级注释训练的显著实例检测器[7]。

        图4展示了FickleNet和DSRG预测分割掩膜的质量结果。FickleNet提供的监督比DSRG使用的监督产生了更大和更准确的目标对象区域,使分割网络能够考虑更广泛的目标对象。因此,使用FickleNet生成的定位图训练的分割网络比DSRG产生更准确的结果,因为FickleNet可以减少虚警并覆盖更大的目标对象区域。

半监督分割:表3显示,我们的方法在仅使用PASCAL数据集中13.8%带有像素级注释的图像进行训练时,产生的mIoU为65.8,相当于使用完全注释数据训练的DeepLab的97.3%。FickleNet在验证图像上的性能比我们的基准网络DSRG提高了1.5%。需要注意的是,与仅使用1.4K完全注释数据训练的Deeplab相比,GAIN的性能较低。GAIN使用像素级注释来训练分类器,而不是分割网络,因此像素级的真值间接影响了分割网络的训练。图4显示了DSRG和FickleNet的分割图示例,这证明我们的系统能够以半监督的方式正常运行。

表1. PASCAL VOC 2012验证集和测试集上弱监督语义分割方法的比较。这里列出的方法使用DeepLab-VGG16进行分割。

表2. PASCAL VOC 2012验证集和测试集上弱监督语义分割方法的比较。这里列出的方法使用基于ResNet的分割模型。

表3. PASCAL VOC 2012验证集上半监督语义分割方法的比较。我们还提供了DeepLab使用1.4K和10.6K强标注数据的性能。

表4. 在没有和有地图扩展的情况下,训练和CAM提取的运行时间和GPU内存使用情况。

表5. 在PASCAL VOC 2012验证图像上使用不同的dropout率(p)进行比较的mIoU得分。

图4. 弱监督和半监督方式下对Pascal VOC 2012验证图像的预测分割掩模的示例。

图5. (a) 使用不同的dropout率p从每个隐藏单元的随机选择中得到的定位图。(b) 在Pascal VOC 2012验证图像上对不同N的性能。

4.3.消融研究

地图扩展技术的效果:为了展示第3.1.1节中介绍的地图扩展技术的效果,我们将FickleNet的朴素实现(图2(a))与具有地图扩展的FickleNet实现(图2(b))的运行时间和GPU使用情况进行了比较。表4显示,训练和CAM提取时间分别减少了15.4倍和14.2倍,但GPU内存使用量增加了12%。

迭代推理的分析:我们比较了使用不同数量的定位图N从单个图像中得到的mIoU得分。图5(b)显示mIoU随着定位图数量N的增加而增加。我们解释这一现象是指额外的随机选择可以识别出更多目标对象的区域,从而更大的区域可以通过聚合的定位图表示出来。如果N大于200,则mIoU收敛到61.2。图5(a)显示了从单个图像中获得的不同CAM的示例。

dropout率的影响:我们分析了FickleNet使用的dropout率的影响。图6显示,dropout率为0.9的FickleNet能够覆盖比使用确定性分类器的DSRG更大的目标对象区域。较高的dropout率还会导致更广泛激活的定位图,因为对象的判别部分更有可能被丢弃,从而使非判别部分可以用于分类。相反,如果dropout率较低,对象的判别部分很少被丢弃,它们通常足以进行分类;因此分类器很少激活非判别部分。如图5(a)所示,dropout率较低的FickleNet倾向于仅激活对象的判别部分,即使随机采样产生了许多隐藏单元的模式。较高的dropout率导致激活模式更加随机,使得每次随机选择更有可能考虑对象的不同非判别部分。这种效果也反映在表5中的定量结果中。

与一般的dropout方法的比较:我们将FickleNet与使用一般的dropout方法创建的网络进行了比较,而不是使用隐藏单元选择。图6显示,使用一般的dropout方法创建的网络的定位图倾向于显示噪声激活:在前向传递过程中,未被采样的隐藏单元无法对类别得分做出贡献,这意味着这些被丢弃的单元不会对定位图做出贡献。请注意,FickleNet中的隐藏单元可能在某些窗口位置激活,而在其他位置被丢弃,以便每个隐藏单元都能影响分类得分。在表5中,使用一般dropout方法创建的网络的定位图训练的分割网络显示出比FickleNet更差的结果。

每个步骤的有效性:表6显示了使用一般的dropout(G)、随机选择(S)和确定性方法(D)进行训练和推理的几种组合的结果。如预期的,“train S +infer D”比“train D +infer D”更好,因为随机选择让网络考虑了非判别部分,但最好的mIoU是通过“train S +infer S”获得的。

表6.每个步骤的有效性。G-一般的dropout,S-随机选择,D-确定性方法。

图6.来自DSRG和FickleNet的定位图,使用不同的dropout率(p=0表示确定性网络),以及来自一般的dropout方法的定位图。使用公开可用的DSRG定位线索可视化了DSRG的定位图(第二列)。

5.概括

        我们解决了仅使用图像级别注释的语义图像分割问题。通过在训练和推理过程中随机选择特征,我们从单个图像中获得许多不同的定位图,然后将这些定位图聚合成一个单一的定位图。这个定位图中包含的对象部分区域比等效的确定性技术生成的定位图更大且更一致。我们的方法可以通过扩展特征图来避免卷积过程中滑动核之间的重叠,在GPU上高效实现。我们展示了FickleNet在弱监督和半监督分割中产生的结果比其他最先进的方法更好。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值