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.提出的方法