如何妙笔勾檀妆:像素级语义理解

编者按:在徐凝的《宫中曲》中有这样一句诗,“一日新妆抛旧样”,描绘了中唐时期宫中女人换妆的场景,而另一句诗“檀妆唯约数条霞”,讲的则是复杂的檀妆其实只需寥寥数笔来勾勒。

而在计算机视觉世界中,像素级语义理解技术,则赋予了机器对人脸进行换妆的能力,其通过细粒度分割的方式,将面部的不同区域在像素级剥离开来,从而将换妆的过程简化为寥寥数笔。

今天,来自中科院信息工程研究所的刘偲副研究员 ,将为大家讲述如何利用像素级语义分割技术,在计算机视觉领域用寥寥数笔来为图像换妆。

文末,大讲堂特别提供文中提到所有文章的下载链接。



本次报告的主题为“图像的像素级语义理解”,本文将从语义分割算法出发,着重介绍其在场景解析、人脸解析、以及人体解析中的应用情况。文中所有应用成果均来自于中科院信息工程研究所网络空间技术实验室,http://liusi-group.com/。



物体分类作为计算机视觉一大重要研究方向,其目的是对图片整体进行分类,如上左图所示,物体分类判断图中含有桌子、人、灯。而当我们进一步想对图片的局部进行分类时,便需要进行物体检测,如上中图所示,用方框画出物体的位置并判断框中物体是桌子、人或是灯。当我们想更进一步,对图片中的每个像素进行分类时,我们便进入了一个更加细致的领域,那就是像素级的语义分割,如上右图,每个像素都标上了对应的类别。可以看出,从物体分类到物体检测再到语义分割,任务的粒度越来越细。今天我所要介绍的主要内容便是三者中最为细致的语义分割。



图像的像素级语义理解应用场景非常广泛,在自动驾驶、医疗影像处理、视频监控以及增强现实(AR)中都有很大的使用空间。例如在自动驾驶中可以通过对获取到的图像进行分割,以辅助车辆更好地对前方场景进行分析和判断;在医疗影像处理中,可以通过对图像进行解析,准确地发现并定位患者体内的病变组织,从而为治疗提供更多的可靠信息。


图像语义分割相关研究概述



首先回顾一下一些经典的图像分割数据集及算法。



早期语义分割数据集,通常包含图片数量、物体类别较少,例如2005年由微软提出的MSRC包含23类物体,591张图片。2008年的LabelMe则含有183类物体,3万多张图片。2009年第一个道路语义分割的数据集CamVid发布。2011年的SIFTFLOW类别数为33类,含有2688张图片。2012年的PASCAL VOC含有21类物体以及2913张图片,该数据集后来成为了语义分割任务中一个重要的benchmark dataset。后来2014年在PASCAL VOC的基础上,PASCAL CONTEXT将物体类别以及图片数量都进行了大幅地扩充。



2013年针对人脸分割的Helen分割数据集发布,同年发布的还有香港中文大学的人体分割数据集PPSS。随后,2014年发布的PASCAL PART将PASCAL VOC中物体的部位进行细分,提供了更加细致的分割标注。同年微软提出了COCO数据集,丰富的图片和类别使其成为了又一重要的benchmark dataset。随后,针对道路图片的Cityscape以及含有深度信息的SUN RGB-D数据集也被发布了出来。



2016年的DAVIS数据集将instance级的分割与视频相结合,提出了视频中的物体分割这一更加具有挑战的任务,类似的还有2017年发布的GyGO数据集。2017年中山大学、商汤科技集团等发布了一个更加完善的人体分割数据库LIP(Look into Person),同年发布的ADE20K则将物体类别推向了极致,数据集中标注了将近2700类的物体。近期由FAIR发布的Panoptic Segmentation则整合了已有的多个数据集并提出了一个新的分割任务。



现在我们来介绍一下语义分割算法的前世今生。早期的算法中有参数型方法的代表Texton Boost,也有Label Transfer等非参的方法。2012年发表于TPAMI的Learning Hierarchical Features for Scene Labeling则是第一篇将深度学习应用于语义分割的算法。



2015年由Long等人提出的Fully Convolutional Networks for Semantic Segmentation(FCN)不仅获得了当年CVPR的best paper候选,还引领了之后语义分割算法使用全卷积网络的方向。之后的Segnet提出了复用encoding特征的办法,带有洞的卷积(Dilated Convolution)扩大了网络的视野域,极大地提升了分割的精度,成为了语义分割网络的“标配”。 2015年梁小丹博士和我本人合作发表于TPAMI的Deep Human Parsing with Active Template Regression首次将语义分割应用于人像解析。我们的另一篇工作Matching-CNN meets KNN: Quasi-parametric human parsing则将KNN的方法与CNN进行结合,提升了网络对人体进行解析的能力。



之后Deeplab算法结合了dilated convolution以及fully connected crfs,提升了分割性能。RefineNet则提出了一种将高层语义特征以及底层特征进行融合的结构,极大地改进了性能。随后商汤科技公司提出的PSPNet引入了Pyramid Pooling Module,在获得了多个尺度特征的基础上,通过结合这些特征得到更好的分割结果。旷视科技提出的Large Kernel Matters则使用了较大的卷积以及一个Boundary Refinement模块来提升网络的整体性能。



之后FAIR的Mask RCNN提出RoI Align层,在faster-rcnn的基础上实现了instance级的语义分割。随后Deeplab的改进版MaskLab提出一种新的方向特征,改进了instance级分割效果。

回顾完语义分割的数据集以及常见算法。下面我们将介绍我们组在这方面的工作。



我将从场景解析、人脸解析以及人体解析三个方面来分别作介绍。


场景解析



首先,我们先介绍北交的刘婷,赵耀,韦世奎,UIUC魏云超和我合作的解析方面的工作。

壁纸作为家中装饰的一个非常重要的部分,常常决定了整个房间的气氛。于是很多人在装修时一定会想看一下自己的房间适合换上什么样的壁纸。因此,我们提出了一个可以对墙壁壁纸进行解析以及更换的模型。



具体来说,在给定输入的图片之后,我们先用一个基于VGG16的Deeplab-LargeFOV模型提取特征。此外,我们加入了两个1x1的卷积对con4和conv5的特征进行提取以得到图像的边缘信息,之后再将边缘信息与语义分割的结果进行融合,得到最终的分割结果。根据分割的结果,我们就可以对壁纸进行颜色和纹理的更换。该工作发表于2017年的ACM Multimedia会议。下图是一些结果展示。



人脸解析


介绍完场景解析的工作后,我们将介绍人脸解析方面的工作。



首先我们定义一下这里所说的人脸解析问题。如上图所示,对于给定的一张人脸图片,我们希望得到不同语义部位的分割结果,换句话说就是将图像中的每个像素标注为对应的类别。



上图是我们课题组在CVPR2017所发表的一份工作。通过加入一个可学习的放缩层,可以让网络自动地去调节视野域以得到最好的分割结果。为此我们设计了两个不同版本的网络,其中单支路版本使用一个resize factor对特征进行变换,并使用变换后的特征进行前向计算,得到最终分割结果。而多支路的版本则可以根据需要设置多个支路并让每个支路学习到不同的resize factor,最终将这些特征进行合并、并进行前向计算,得到分割结果。



上图是我们的方法与其他人脸解析算法的定量及定性结果比对。可以看出我们的算法显著提升了解析的效果。仔细看图中右方的结果图,可以看出在嘴唇、眉毛、眼睛等部位的结果上,我们的方法结果更好。



基于人脸解析,我们开展了多项工作。主要有智能美妆、妆容迁移、人脸老化三个工作。



首先是智能美妆部分。电商的发展以及美妆业的巨大市场催生了对智能美妆产品的需求。




根据人脸解析的结果,我们可以将指定的美妆产品应用于图片,最终得到美妆的结果。具体来说,在得到人脸解析结果后我们将选择的化妆产品应用于相应的区域。有了这一系统,我们可以在不用手动化妆、卸妆的情况下尝试不同的妆容效果。



一些女生看到明星的照片时,常常会想看自己化上同样的妆是什么样子。为此我们设计了一个基于深度学习的妆容迁移算法。




如上面两图所示。我们通过人脸解析算法得到妆容的关键区域,然后使用风格迁移的算法将不同区域的妆容转移至对应的区域。根据不同的参考妆容可以获得不同的迁移结果。通过控制迁移时的参数,我们还可以控制妆容的浓淡。相应工作发表于IJCAI 2016。



人脸解析的第三个应用是人脸老化。人脸老化对于跨年龄验证、走失人口寻找都有重要意义,而且具有一定的娱乐价值。在我们的工作中,先通过人脸解析提取人脸的主要部分,然后使用图片以及对应的年龄信息训练一个生成对抗网络(GAN)。在训练好模型后,将一个人的照片以及想转换到的年龄信息输入进这个模型,就可以得到相应年龄段的照片。该论文发表于ACM MM 2017。 

上图右方两行图片中,有一行是我们的网络生成的结果,有一行是真实的图片。各位猜一猜哪一行是真实的,哪一行是生成的。

正确答案是:第一行是生成的图片,第二行是真实的图片。不知道各位猜对了没有~

上图是两个不同人物的生成结果。我们生成了这两个人在0-10岁、19岁-29岁、40-49岁、及60岁以后四个年龄段的结果。可以从下面的动图里看到整个变化过程。

人体解析

最后介绍一下人体解析的相关工作。

与人脸解析部分相同,我们首先定义一下人体解析问题。对于一个给定的人物图片,人体解析的主要任务是将图片中人体的不同部位进行分类,最后获得像素级的分类结果。如上图所示。



那么研究人体解析有什么样的重要性呢?举两个经典案例,在周克华抢劫案以及长春盗车杀婴案件中,虽然案发城市已经有完备的监控设备,但由于缺乏相应的分析能力,导致视频的筛选和分析仍需人力来进行,被人们形容为“有眼无珠”。如果能减少相应的人力消耗并提高分析速度,将会给社会带来很大的积极影响。




如上图所示。设计好的分割模型可以准确地将人体图像进行分割,同时属性预测模型可以对人像进行准确的预测。这样一来,当我们拿到一个描述,例如图中“棕色上衣、黑色紧身裤,拿着白色行李箱的女性”时,计算机便可以快速地在海量监控数据中自动地找到匹配的图片或视频。



上图是我们CVPR2017的一个工作的网络结构框图。该工作充分利用了多帧的信息,得到了很好的人体分割结果。下面我们将介绍网络的各个部分以及相应的功能。



首先我们使用一个基于FCN(全卷积网络)的分割网络对视频中的不同帧进行分割。




然后我们使用分割时所使用的特征进行光流的估计,得到帧与帧之间的光流信息。


最后我们根据光流信息对不同帧的结果进行融合。最终得到目标帧的分割结果。下图是我们分割算法以及属性预测算法的动态演示图。

总结与展望

最后,我总结一下今天的分享并做一些展望。



今天我首先分享了我们在场景解析方面的工作,主要是壁纸虚拟更换以及图片去雾霾工作(由于篇幅未展开)。



然后介绍了我们小组在人脸解析方面的工作,包括妆容迁移、人脸老化、智能美妆。



最后我介绍了我们在人体解析方面的工作,主要是视频监控中的人体解析任务。



当然,图像的像素级语义理解还有很多的研究方向,例如图像去噪、图像修复、自动上色、超分辨率、去模糊等等。



对于未来的发展,我们认为主要有三个趋势。

  • 首先是模型的小型化,未来深度学习的模型将逐渐从计算、储存能力丰富的GPU集群走向CPU平台或是嵌入式设备中,这对模型的大小以及计算复杂度都将有更严格的限制。

  • 第二个趋势就是数据标注的低成本化,未来将会有更多的弱监督、半监督算法涌现,加上迁移学习的发展,我们对于数据的人工标注将会越来越少。相应的成本也将越来越低。

  • 最后是信息源的多模态化,现在的图像解析工作大多基于普通的RGB三通道图片。但随着信息源的增多,我们可以获得深度信息、雷达探测信息等更多的数据。通过这些数据的整合,我们将进一步提升解析算法的性能。

以上就是我今天的分享,大家如果感兴趣可以关注我们的主页 http://liusi-group.com/。


文中刘老师提到的文章下载链接为: 

https://pan.baidu.com/s/1pMuaqHd

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

入门像素级语义分割计算机视觉
相关数据
增强现实技术
Augmented reality

增强现实,是指透过摄影机影像的位置及角度精算并加上图像分析技术,让屏幕上的虚拟世界能够与现实世界场景进行结合与互动的技术。这种技术于1990年提出。随着随身电子产品运算能力的提升,增强现实的用途也越来越广。

计算机视觉技术
Computer Vision

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

生成对抗网络技术
Generative Adversarial Networks

生成对抗网络是一种无监督学习方法,是一种通过用对抗网络来训练生成模型的架构。它由两个网络组成:用来拟合数据分布的生成网络G,和用来判断输入是否“真实”的判别网络D。在训练过程中,生成网络-G通过接受一个随机的噪声来尽量模仿训练集中的真实图片去“欺骗”D,而D则尽可能的分辨真实数据和生成网络的输出,从而形成两个网络的博弈过程。理想的情况下,博弈的结果会得到一个可以“以假乱真”的生成模型。

池化技术
Pooling

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

参数技术
parameter

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

自动驾驶技术
self-driving

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

迁移学习技术
Transfer learning

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。 迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

深度学习技术
Deep learning

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

旷视机构
Face++

北京旷视科技有限公司是以人工智能技术为核心的行业物联解决方案提供商,致力于为全球行业用户提供领先的人工智能算法和解决方案,构建城市级智能物联网系统。旷视科技研发的人脸识别技术,图像识别技术,智能视频云产品,智能传感器产品,智能机器人产品已经广泛应用于金融、手机、安防、物流、零售等领域,核心客户不仅包含阿里巴巴、蚂蚁金服、华为、联想等行业级头部企业,同时服务于国家公安部、国家税务总局、中信银行、招商银行、华润集团等政府部门和央国企集团。