魏云超作者

让机器“一叶知秋”:弱监督视觉语义分割

编者按:西汉刘安的《淮南子·说山训》中有这样一段话:

“见一叶落,而知岁之将暮;

睹瓶中之冰,而知天下之寒.”

这两句话显示了人见微而知著的能力,人对这个世界的认知,是在对周围世界的不断探索过程中逐步形成的。从第一次张开双眼观察这个世界,到对这个世界的每一次发问,我们在父母的监督之下成长,整个学习过程也是伴随着外部反馈的大量监督信息。

我们一直试图让机器像人一样学习,因此,在目标检测分类任务中,我们为机器提供了海量的有监督数据,使得机器在某些特定领域甚至取得了远超人类的能力。

然而,对于语义分割任务,大量的像素级别的标注意味着无法想象的人工成本,与之相对应,人对视野内目标的语义分割,也无需以精细到像素级别的监督信息为保障,而只需以弱监督作为辅助。因此,学术界衍生出了针对弱监督的语义分割这一前沿方向。

今天,来自美国伊利诺伊大学香槟分校的魏云超博士,将以一片叶子作为“种子点”出发,带着大家深度学习,直至扩散出整幅图像中秋色的mask。

文末,大讲堂提供文中提到参考文献的下载链接。


本报告主要是针对弱监督视觉语义分割问题来介绍一下近两年来的一些工作。


对于语义分割,目前大家用到最多的就是这种全卷积网络。在全监督训练的情况下,我们需要给定训练图片及其对应的像素级标注的mask。然而这种像素级的mask往往很难获取。


比如,我们如果要在ImageNet上做语义分割的话,其标注的工作量会非常大。具体地,ImageNet上大概包括了2万类别,如果每一类我们只标100张图片用于训练的话,最终则需要标二百万的训练图片。如果标注一张图片需要五分钟,则一个人大概需要标注19年才能完成。因此大规模图像的全监督语义分割往往在数据标注上需要耗费大量的时间和金钱。


因此我们考虑对于语义分割任务能否采用一些相对于像素级标注更容易获取的标注作为监督信息。这里我们给出了四种简单的标注方式,包括物体框、线条、点以及图像标签。我们称这些比像素级mask更容易获取的监督方式为弱监督。一般来讲,在这些弱监督信息中图像级的标签最容易获取。ruo


所以我们接下来的工作也都是围绕如何利用图像级的标签作为监督信息,最终实现像素级别的分类。实现这一目标的关键是如何构建训练图像中图像标签和像素之间的关联,即自动的推断出物体在图像中的位置。进而实现弱监督的物体定位或语义分割等任务。


这是我们根据近两年在弱监督学习上的一些工作,主要探索了如何有效构建图像语义标签和像素之间的关联。这些工作在弱(半)监督的语义分割或定位等任务上都取得了当时最好的性能。


首先是最早在PR上面一篇文章,我们提出了一种Proposal-based的方法来构建图像标签跟语义之间的关联。


这篇文章的思路是训练一个多标签的分类网络,进而利用该网络对图片产生的proposal进行分类,最后将那些在某个类别上confidence比较高的proposal映射回原来的图片,从而获得语义标签和localization的关联。我们利用这种粗糙的localization图作为监督信息训练语义分割网络。


我们利用了当时提出的Hypotheses-CNN-Pooling网络,训练了用于判别proposal类别的分类网络。最后利用那些高confidence的proposal生成物体的定位图。虽然这个工作当时取得了比较高的分割性能,但有两个明显的缺点。首先,该方法需要对所有的proposal都做一次分类,因此会有较高的时耗。其次,直接将proposal内的像素点作为物体区域会引入很多false positive像素,比如属于背景的像素。


为了克服proposal-based方法的缺点,我们在2017年提出了一种Simple to Complex的方法。


这个方法基于了一个有意思的观察。我们发现Internet上的图片可以大致分为两种,即简单图片和复杂图片。简单图片主要是指图片中的物体类别单一并且背景比较干净;复杂图片主要是指图片中物体类别语义多样并且背景非常杂乱。我们发现对于简单图片,可以通过显著性检测技术有效地获取包含前背景信息显著图。


从上面的图中可以看出,在显著图上像素值越高,其同语义的关联性就越大。因此在知道简单图片语义标签的情况下,我们很容易通过显著图构建语义标签跟像素点的关系。


基于这样的观察,我们提出了一种self-paced的Simple to Complex训练框架。我们首先从网络上下载大量的简单图片,然后通过显著性检测技术去获取其对应的显著图。进而利用显著图和语义标签作为监督信息去训练一个Initial的分割网络。特别地,在利用显著图作为监督信息的情况下每个pixel会以不同的概率属于物体或者背景。比如属于 “马” 的某个像素点可能以0.9和0.1的概率分别属于前景物体 “马” 和背景。在Initial网络训练完成后,其对简单图片已经具备了一定的分割能力,进而我们利用该网络预测出所有简单图片的masks,并利用这些masks训练一个Enhanced语义分割网络。最后我们通过Enhanced网络预测更多复杂图片的masks,并训练出一个更好的语义分割网络,即Powerful DCNN。


这个是我们构建的Flickr-Clean 简单图像库及部分图片对应显著图。可以看出通过显著图构建像素和语义之间关系的方式是很有效的。


通过左边的表格可以看出,Initial, Enhanced和Powerful网络对图像的语义分割能力在不断增强。通过右边的结果图也可以看出分割效果变得越来越好。这个方法虽然很简单,但在Pascal VOC上比当时最好的性能高出十个百分点。然而这个方法也有两个很明显的缺点:1)必须收集大量的简单图片,否则很难训练出一个性能较高的Initial网络并不断提高;2)训练样本多,训练时间长。


鉴于这些不足,我们希望可以发现一种不依赖于简单的图片的方法,并可以达到较高的语义分割性能。于是我们在2017年提出了Adversarial Erasing。


2016年发表在CVPR上的一篇文章(CAM)发现,分类网络可以通过Top-down的方式定位出图片上的哪些区域对物体分类的贡献较大,而这些区域往往属于对应语义的物体。然而,CAM方法的主要问题在于它只能发现最具判别力的一些物体区域(比如狗的头部),这些区域往往属于目标物体的某个part并且分布稀疏。这同语义分割需要定位完整物体的目标并不一致。


为了定位较为完整的物体,我们提出了一种Adversarial Erasing的方法。该方法的motivation主要是通过不断擦除物体上最具判别力的一些区域,使得分类网络发现更多的物体的其它区域。如左图所示,我们首先将包含狗的图片输入分类网络中,通过训练可以获得属于狗的最具判别力的区域,即狗的头部。进而我们将狗的头部从图片中擦除掉,并将擦除后的图片输入分类网络进行再训练。网络会寻找其它的证据使得图片可以被正确分类,进而找到狗的胸部。重复此操作,狗的脚部也可以进一步被发现。最后通过融合擦除掉的区域就可以获得物体的整个区域。右图给出了更多示例以及最后通过融合擦除区域获得的整个物体区域。


由于最终的目标是语义分割,我们最后把mining出的物体区域生成了图像的mask并用于训练语义分割网络,这部分在本文不做过多介绍,具体细节可以参阅paper。


Adversarial Erasing方法没有用到任何额外数据,并在VOC12上获得了 55. 7的mIoU值。虽然这篇工作用更简单的方式(相对Simple to Complex) 获得了更高的性能,但也存在两个明显的问题:1)需要多次训练分类网络,时耗较高;2)对于每张训练图片很难确定何时停止擦除操作。我们在文章中采用通过观察分类网络收敛的loss值的方式来决定擦除的次数,但该方法很难保证所有训练图片都能达到最好的擦除效果。


针对Adversarial Erasing的两个缺点,我们进一步提出了一种Adversarial Complementary Learning的方法,并被CVPR 2018录用。首先我们发现Network-in-Network中提出的Global Avg Pooling (GAP) + Classification Loss的方式就可以获得跟CAM方法中完全一样的物体定位图 (如右图所示),我们在文章里也给出了数学证明。有了这个前提,我们就可以很容易的将Adversarial Erasing的思想嵌入到训练过程中。


这是我们Adversarial Complementary Learning的框架图。我们首先利用一个分类网络来发现一些物体的判别区域,进而将这些区域从中间的特征图中擦除。我们将擦除后的特征图输入到另外一个分支中进行训练,进而获得同第一个分支互补的物体定位图。最后,我们将从两个分支获得物体定位图合并起来获得最终的结果。


这是我们在ImageNet上的实验结果。可以看出不同的分类器定位的区域是具有互补性的,并且最后融合出了我们想要的结果。通过我们的定位图生成的物体框相比CAM方法也更加准确。


我们的方法在ImageNet上达到了最好的定位性能。同时也测试了在Pascal VOC测试了语义分割结果,性能相比Adversarial Erasing提升了3.1个百分点(55.7->58.8)。


我们在今年的CVPR上也发表了另外一篇相关的文章,通过一种更简单的方式获得了更好的定位结果。物体的某个区域之所以会被highlight出来,其实是因为这部分特征的判别力较强。如果这部分判别力较强的特征可以transfer到物体的其它区域,那么其它判别力较弱的区域也有可能被highlight出来。我们发现这个想法可以很容易的通过加宽卷积(dilated convolution)的方式实现。如上图所示,在输入的特征图上只有鸟的头部判别力最强(绿圈内的区域),随着dilation rate的提升越来越多的距离判别区域较远的物体区域都被成功的highlight。


基于这个观察,我们在分类网络中引入了四种dilation rate不同的分支进行分类训练。从左图可以看出,不同的分支可以定位出了不同的物体区域,并最终融合出一个非常完整的物体定位图。如果把定位图应用于语义分割,我们需要通过一个threshold将物体区域从定位图中取出。右图对比了我们的方法跟CAM的对比,可以看出我们的方法无论对小物体还是大物体都可以很好定位,因此threshold也更容易选取。


基于生成的物体定位图,我们尝试训练了弱监督和半监督的语义分割网络。其中半监督是指一部分图像的masks是通过人工标定的,而另外一部分仅利用了图像级的标签。


我们对比了在不同设定下的分割图结果,可以看出随着人工标定图片的增多,效果也在一步步提升。同时,在弱监督的设定下,我们的方法在Pascal VOC上也获得了更高的分割性能(58.8->60.8)。在仅利用1400多张人工标注图的情况下性能可以进一步提升到68.5。该结果非常逼近全监督(1万张人工标注图)情况下的分割结果。


在今年的AAAI上,我们发表了另外一种半监督语义分割的文章。


在上个工作中提到的半监督方式可以被定义为In-category的半监督。In-category是指如果训练某个类的分割网络,则必须标定一些属于此类的图片。但在大规模类别的情况下(如ImageNet中的2万类),少量的标注仍会耗费大量的时间。因此,我们在这个工作中提出了一种Cross-category的半监督方法。Cross-category是指只有一小部分的类别具有人工标注的masks,而大部分类别都只有图像的标签。我们的目标是将在少量类别上学习到的分割能力迁移到大量的类别上。


在这个工作中我们提出了一种Transferable Semi-supervised Network,主要包括了Label Transfer Network和Prediction Transfer Network。


对于Label Transfer Network,我们首先利用有人工标注的图片训练了一个class-agnostic的前背景分割网络。进而通过CAM的方法找到每个类别在图片上最具判别力的种子点。最后我们通过self-diffusion的算法,将种子点在class-agnostic的分割图上扩散出属于不同类别物体的整个区域,从而获得包含语义信息的mask。


为了使得预测的mask更接近于人工标注的mask,我们又提出了Prediction Transfer Network。P-Net利用mask上pixel的语义信息,将输入图片encode成跟语义数目一致的图片数量(如Pascal VOC上为21),并concat到一起作为input。我们利用GAN的思想训练出discriminator,用于判断哪些input是通过真实mask生成。最后我们固定P-Net的参数并对预测的mask给定假的标签,使得预测的mask尽可能逼近人工标注的mask。我们在Pascal VOC上仅用到了10个类别的人工标注mask,并在20个类上获得了64.6的分割性能。


我们最终的目的是希望该方法可以实现大规模类别的语义分割,因此也在ImageNet上做了实验。上图是在部分类别上的分割结果。虽然没有任何人工标注信息,可以看出我们的方法仍然可以获得令人满意的分割结果。


我们所有的工作都是围绕如何生成高质量的物体定位图开展的。这些物体定位图进而可以服务于语义分割或检测等任务。如何更高效的定位复杂场景内的物体、确定不同物体之间的边界是我们后续探索的目标。


文中提到参考文献的下载链接为:

链接: https://pan.baidu.com/s/1x82GXb7KwI_jNHWzZrCY9Q 密码: 1d3p

入门
1
相关数据
分类问题技术
Classification

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

收敛技术
Convergence

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

映射技术
Mapping

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

池化技术
Pooling

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

参数技术
parameter

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

监督学习技术
Supervised learning

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

深度学习技术
Deep learning

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如,人脸识别或面部表情识别)。 近年来监督式深度学习方法(以反馈算法训练CNN、LSTM等)获得了空前的成功,而基于半监督或非监督式的方法(如DBM、DBN、stacked autoencoder)虽然在深度学习兴起阶段起到了重要的启蒙作用,但仍处在研究阶段并已获得不错的进展。在未来,非监督式学习将是深度学习的重要研究方向,因为人和动物的学习大多是非监督式的,我们通过观察来发现世界的构造,而不是被提前告知所有物体的名字。 至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

推荐文章
从论文到测试:Facebook Detectron开源项目初探
机器之心12
一篇看懂CVPR 2017五大研究前沿 | 腾讯AI Lab深度解析
腾讯AI实验室
2010-2016年被引用次数最多的深度学习论文
机器之心
返回顶部