程明明作者

程明明:面向弱监督的图像理解

编者按:

若言琴上有琴声,放在匣中何不鸣?

若言声在指头上,何不于君指上听?

苏轼的《琴诗》暗示了全局认知对于场景理解的重要性。而在图像理解领域,相较于基于精细标注数据的全监督学习,弱监督学习本质上是一种试图从全局出发来理解场景的方式,也更接近于人类对世界的认知机制。本文中,来自南开大学的程明明副教授,将从局部认知拓展至全局认知,为大家介绍面向弱监督的图像理解。大讲堂特别在文末提供文章以及代码的下载链接。

我报告的主题是“面向弱监督的图像理解”,并对我们组的相关工作进行总结和介绍。

本次报告中介绍的所有工作代码都是开源的,大家可以扫描图中二维码获取我们主页进行下载。

理解图像信息是计算机视觉的重要部分,我们希望计算机能够像人的眼睛一样看见并理解图像中的内容。

现在计算机视觉领域的大多数问题还是依赖于特定的数据集进行训练和测试评估的。

而Data annotation(数据标注)的成本是极其高昂的。比如,对于PASCAL VOC数据集,需要十余工人来标注27374个bounding box(标注框),而对于ImageNet甚至需要25000名人员对上千万张数据进行标注。MIT的Antonio Torralba曾经在CVML会议上讲过一个非常有意思的故事,他的退休的母亲帮他做了20余万分割目标的精细标注,他开玩笑说希望有更多的父母参与到这份工作中来。

如图,是ADE20K数据集的一张图片,针对分割任务标注起来是非常困难的。一方面高质量的图像标注为我们进行图像理解提供了方便,另一方面,获取这样的标注是非常困难和耗时的。而回顾我们从小识物的过程,父母都是指着不同物体告诉我们每一个物体是什么,而不用精确地描绘物体的轮廓。这种从物体层面的认识区别于现有多数算法对像素精度标注的依赖。


这里我们对近期的工作做了一些梳理。在low level vision层面,我们做了一些基于attention mechanism(注意力机制)的工作,以及边缘检测和区域分割工作来对图像进行预处理和category-independent的图像分析,注意力机制可以帮助我们准确快速地定位图像的区域,而不需要进行人工分割。

在light weighted semantic parsing方面,我们一方面将介绍语义分割,另一方面介绍它和interaction的结合。

最后,为大家介绍它们在图像及视觉领域的应用,比如进行editing(编辑)、Synthesis(合成)、web images(网络图片)方面的工作。


Low Level Vision


视觉注意力机制在图像认知中起到了非常重要的作用。对于机器而言,传统方法采用滑动窗口机制来检测图像中的每一个位置可能是什么样的物体,而人类观察图像并不是基于滑动窗口的机制对上百万个图像窗口进行搜索和检测,往往是借助很强的注意力来定位可能的物体区域,只是判断少量潜在物体区域的具体类别信息,这能够帮助我们进行快速有效地识别,并摆脱对大数据的依赖。

注意力机制有几个重要的分支:其一为fixation prediction,旨在预测出图像中的注视点,这个注视点有可能是bottom-up与任务无关的,还有可能是top-down与当前任务相关的;其二为salient object detection(显著性物体检测);其三为objectness proposals,它是基于窗口的度量方法,通过预测图像中的每个窗口有多大可能性含有物体,有助于后期做物体检测。

首先介绍我们基于全局对比的显著性区域检测工作。我们通过对图像预分割,根据图像区域和其他所有区域的对比度来计算显著性物体的区域。我们将在后面介绍如何用它来进行弱监督的学习。

在公开数据集上的测试结果显示我们的方法相对于传统方法有较大的提升。

刚才的工作无论是选择特征还是特征组合都是基于人手工的方法来做的。我们提出了基于学习的方式进行显著性物体检测,对每个区域提取特征,基于机器学习的方式自动选择特征的组合,这样能得到更好的分割结果。这个工作也取得了非深度学习方法中最好的结果。

如果大家对我们的这方面工作感兴趣,可以看这篇Benchmark综述文章,我们基于40多个主流的数据集进行了实验比较。

除了对特征的组合进行学习,我们去年CVPR上有一个工作通过深度方法对特征本身也进行学习,来得到显著性物体的区域。通过把不同层次的深度特征结合起来,通过一些short connections(短连接)的形式,能得到非常好的显著性物体检测结果,

我们采用多层次的信息融合方式,如上图中间所示,它是一种深度神经网络架构。对于我们的方法,越高层的卷积运算,可以得到更加大尺度的信息。我们把不同尺度信息通过short-connection层连接起来,同时通过side output做指导,能够得到更好的显著性物体检测的结果。

近几年,显著性物体检测取得了很大的进步。在很多公开数据集上,显著性物体检测的结果已接近实用,比如在MSRA-B和ECSSD数据集上precision和recall都已达到了90%以上的结果,同时missing error都已下降到零点零几的水平。由此启发我们是否能将它用于弱监督学习中去,从显著性物体检测的结果来学习知识。

物体是由闭合轮廓围成的区域并有其重心,我们在2014年的一个工作中据此设计了一种根据图像梯度估计图像中区域可能含有物体的可能性的方法。

在PASCAL VOC2007数据集上进行测试,我们的方法和传统的方法效果基本接近,但是我们的方法速度要快出1000倍。

除了注意力机制边缘检测也是对弱监督学习非常有帮助的。

这是我们近期发表在CVPR2017的边缘检测方面的工作。我们发现在不同的卷积层都有不同的有用信息,与其从池化层的前一层中拿出来做整合,不如提出所有卷积层的信息充分利用。

传统上我们在几次卷积运算之后再做池化,中间层的特征只利用池化前的最后一层。我们新的工作把不同层的信息叠加起来,通过concat的方式来得到更加丰富的特征表达,通过这样的特征表达来训练边缘检测的结果。

这样的方法也达到了非常好的效果。比如在pascal voc数据集上,我们的方法是国际上首个能够实时运算,并且结果的F measure值已经超过当时在伯克利segmentation dataset上的人类平均的标注质量的方法。

此外,在low level vision里面,还有分割问题。通过对图像分组得到很多区域,期望每一个region里面只含有一个物体类别,作为比较强的约束信息可以帮助我们更好地理解图像内容。

这里边一个例子就是,我们曾经用显著性物体检测的结果帮助我们initialize图像的区域,然后通过iteratively run GrabCut的方法分割出图像中的重要物体区域。这些分割信息加上keyword 信息本身可以帮助我们生成一些高质量的pixel-accurcy label(像素层面的图像标签),来更好地做语义分割。

除了做语义分割之外,我们直接用图像处理的方式(比如显著性物体检测、分割等)进行处理,我们对Internet image做object segmentation和显著性物体检测,借助一些关键字在分割里面做retrievel,得到这些retreival信息后,top ranking里面的retrieval results信息很多都是我们需要的物体类别,通过物体类别自动获取的example 包括它的分割信息去学习一些apperance model学习一些更加重要的知识,通过这些知识来更新我们对显著性物体的理解。

还有一个分割的工作是对图像做over segmentation,就是把图像分成很多块,我们希望每个块都不要跨越多个物体,因为同一个块通常只属于其中一个物体,哪怕区域里面有一些噪声,通过平均抑制噪声让分割信息更好,之前常用的over segmentation方法是efficient graph based image segmentation,其缺点是比较慢,因此我们在ECCV2016提出了一种基于GPU的方法对图像预处理而得到superpixel(超像素),然后对超像素提取特征并通过SVM(支持向量机)去学习一些特征组合,再对特征组合进行融合来得到非常好的结果。

在伯克利的数据集上我们的方法取得了非常好的结果,速度上每秒能处理几十上百张图像,F measure值也不错,可以作为low-level领域的一个很好的工具去更好地约束弱监督学习的方式。


Light Weighted Semantic Parsing


之前介绍的low level vision领域的注意力机制边缘检测、图像分割相关工作结果都和图像的object category(物体类别)无关,因此这些信息就可以直接地运用到图像中去,帮助我们约束一个问题。比如图像里只含有一个物体,训练集里哪怕没有语义分割信息只有关键字信息,也会帮助我们去做语义分割。

这里介绍我们的一个工作(STC:A Simple to Complex Framework for Weakly-supervised Semantic Segmentation)。通过显著性物体检测的结果,自动地生成语义分割的标签。通过low-level vision得到的约束能够帮助我们在弱监督的语义分割的学习中,减少对人工标注的依赖。

上一个工作是通过bottom-up的方式进行分割,发表在CVPR2017的另外一个工作使用一种top-dowm的方式。比如针对一个分类任务,可以通过attention network找到哪个区域属于哪类别,通过迭代使用top-down的注意力机制,更好地实现语义分割。

从实验结果可以得知,虽然只有keyword的监督信息,语义分割的结果通过top-down attention机制也能得到很好的改进。

除了语义分割之外,通过light weighted semantic parsing,我们还可以支持一些interaction的工作。

在interaction方面特别是在graphics方面, 很多情况下我们关注一些应用问题,比如做image manipulation,图像编辑。对于这样的问题,graphics领域的大公司比如photoshop、迪士尼会更加关注。对于mage level detection(图像层面的物体检测)问题,人与机器之间存在一定的鸿沟,图像在计算机中是以像素为单位存储的,而人是从物体、场景层次等关系来理解的。基于这种机理,我们只能选择一些像素来进行处理,一方面这些像素选择时候可能会出现错误,另一方面这种方式不符合人的直观理解,人脑是从high-level的角度来思考。我们试图借助计算机视觉的一些工具对图像的内容进行理解,使得图像编辑更加符合人的直观感受。

这是在SIGGRAPH2010年的一个工作,对于一张图像,通过简单交互找到图像中的不同物体,同时通过相似对象的分析把物体的遮挡部分补全,并分析图像中物体层次的关系,这里不同于视觉中的图像深度,我们关心的只是物体大小位置等相对关系。即使有这些简单的关系,我们也可以做图像编辑的简单应用。

  1.  

另外一个工作是我们把interaction(交互)扩展到三维空间,通过输入的RGB和depth(深度)图像重构出三维场景,在重构的过程中也可以做一些用户的交互。


Graphics/Vision Applications


下面介绍一下我们light weighted semantic parsing的工作在图形学和视觉领域的应用,首先是在图像编辑中的应用。

其中一个将语义解析的结果用于图形学应用的事例是,通过对图像的理解做一些交互任务。

其中一个是基于语音的交互。通过一些移动设备拍摄照片,这些照片其实只是二维矩阵,须对其进行处理才能更好地利用图像,我们试图采用交互的方式提高这类方法的鲁棒性,但是这些设备没有外接鼠标键盘,传统的交互方式在此并不能被很好地用起来,因此我们试图寻找方法更好地利用这些图像信息。

比如一个非常简单的图像编辑的操作,用户语音指令为“把图像中间靠下方的木桌子变得低一点”。这个任务离不开对图像里面每一个像素语义的理解,把用户指令中的动词自动转化为图像编辑的一些操作,名词和形容词对应物体检测中的属性分析,通过物体检测和属性分析,来实现并服务于图像编辑应用。这个问题是image caption(从图像生成语言)的反问题。

另外给大家介绍把light weighted semantic parsing的结果用于图像合成(synthesis)的工作。

这是我们之前做的一个sketch2photo图像合成工作,用户输入类似于左上角的图像(包含很多keywords),每个keyword就可以对应很多的Internet image,然后可以把物体区域自动分割出来,并通过轮廓比对获取目标区域,然后据此就可以自动生成目标图像。再加之一些图形学里的合成处理,使得生成的图像符合用户输入的轮廓信息。

除了对单个图像的编辑和合成,我们还可以对海量的web images进行分析。

在web images里面,国际上很多研究者用我们的工作开展了object discovery,图像的彩色化(把黑白图像变成彩色),图像分类及语义分割等工作。

今天主要对我们组的工作做了survey性质的介绍,上图是我们在南开的团队。这是我们组的一些低年级的同学们近来发表的学术成果。希望有更多的合作也欢迎硕士生的加入!


深度学习大讲堂
深度学习大讲堂

高质量原创内容平台,邀请学术界、工业界一线专家撰稿,致力于推送人工智能与深度学习最新技术、产品和活动信息。

入门
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

池化技术

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

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

监督学习技术

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

支持向量机技术

在机器学习中,支持向量机是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

边缘检测技术

边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。这些包括(i)深度上的不连续、(ii)表面方向不连续、(iii)物质属性变化和(iv)场景照明变化。 边缘检测是图像处理和计算机视觉中,尤其是特征检测中的一个研究领域。

图像处理技术

图像处理是指对图像进行分析、加工和处理,使其满足视觉、心理或其他要求的技术。 图像处理是信号处理在图像领域上的一个应用。 目前大多数的图像均是以数字形式存储,因而图像处理很多情况下指数字图像处理。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
暂无评论
暂无评论~