雷锋网 AI 科技评论按:本文为 2018 年 5 月 11 日在微软亚洲研究院进行的 CVPR 2018 中国论文宣讲研讨会中最后一个Session ——「Human, Face and 3D Shape」环节的三场论文报告。
来自上海交通大学的卢策吾第一个报告,他介绍了他们在人体部分分割方面的工作。主要思想是在人体部分分割数据集难以获取的情况下,通过知识迁移的方式,使用人体姿态数据集+少量人体部分分割数据集,实现弱监督或半监督的人体部分分割。
第二个报告由来自北京邮电大学的赵凯莉介绍他们在人脸动作单元标注方面的工作。他们同样面临着数据集少且难以获取的困难。主要思想也是弱监督,即通过弱监督聚类的方式将大量标注图片、弱标注图片、未标注图片根据其视觉特性和弱标注特性进行聚类,对聚类后的结果进行重新标注。
最后一场报告时由清华大学的张子昭介绍了他们在提取3D对象特征方面的工作。该工作的一个基本考虑就是,从不同视角看3D物体所得到的视图,在辨别该物体是什么的问题上贡献并不相同,因此应当给予不同的权重;作为对比,之前的所有方法都是将这些视图等权处置。
雷锋网注:
[1] CVPR 2018 中国论文宣讲研讨会由微软亚洲研究院、清华大学媒体与网络技术教育部-微软重点实验室、商汤科技、中国计算机学会计算机视觉专委会、中国图象图形学会视觉大数据专委会合作举办,数十位 CVPR 2018 收录论文的作者在此论坛中分享其最新研究和技术观点。研讨会共包含了 6 个 session(共 22 个报告),1 个论坛,以及 20 多个 posters,雷锋网 AI 科技评论将为您详细报道。
[2] CVPR 2018 将于 6 月 18 - 22 日在美国盐湖城召开。据 CVPR 官网显示,今年大会有超过 3300 篇论文投稿,其中录取 979 篇;相比去年 783 篇论文,今年增长了近 25%。
更多报道请参看:
Session 3: Person Re-Identification and Tracking
Session 4: Vision and Language
报告题目:Weakly and Semi Supervised Human Body Part Parsing via Pose-Guided Knowledge Transfer
报告人:卢策吾 - 上海交通大学
论文下载地址:Weakly and Semi Supervised Human Body Part Parsing via Pose-Guided Knowledge Transfer
code下载地址:https://github.com/MVIG-SJTU/WSHP
这里主要讲了如何将人体图像的肢体进行分割。
为了更加精细地对人的行为进行分析,关键的一点就是能够将人体的各个部分分割出来。但是这个问题很难,因为让人去标注这些数据(一个部分一个部分地画出来)是非常困难的;也正是因为这样,目前这方面最大的数据集也只有少于 2000 个用于训练的标注数据。那么最好的方法就是让机器能够自动且有效地标记出这样的 label。
Human Parsing 只有极少的标注数据,而另一方面人体关键点(人体姿态)由于标注比较轻松,所以目前有非常多的标注数据。所以卢策吾团队就考虑是否可以利用人体姿态的数据,通过知识迁移来帮助自动地完成人体部分分割标注的任务。
思路就是,将带有关键点的图像与已有的少量标注过的 human body part parsing 数据集通过关键点的相似性进行临近搜索,然后以姿态作为指导进行知识迁移,从而实现人体部分分割的标注。
具体的方法共分为三步:输入带有关键点的图片+已有的部分分割数据集,首先根据关键点进行聚类,也即找到与输入图片相似的标注分割图片;然后进行对齐、变形,从而完成对输入图片的分割;这时候的结果存在很大的误差,最后一步则是进行精细化调整。
Discovering Pose-similar Cluster
为了度量不同姿态间的相似度,首先需要对所有的姿态进行归一化和对齐,即将身高统一,臀部关键点作为坐标原点。由此计算出输入图片中几个关键点与标注数据集中所有图片的对应关键点之间的欧氏距离,选出距离最小的 Top n 作为 similar cluster。
这里之所以选择 top n,而不是 top 1,是因为真实的人体千奇百怪(例如存在遮挡),某一个人体的分割不一定能够适用于另一个人体,所以要选择最相似的几个,在下一步生成 part-level prior 中做下平均。
Generating Part-level Prior
依据上面找到的 similar cluster,然后基于关键点即可以将已知的分割映射到图像上。这里 cluster 中每一个身体的部分都有 binary mask,将所有这些部分分别进行求平均,便得到了 bady part parsing。
Prior Refinement
前面通过迁移得到的 morphed part parsing result 可能与真实的 parsing 之间有些微的差别,且由于求平均会有阴影的存在,因此通过 refinement network 进一步进行调整。Refinement Network 采用的是 U-Net 的一个变体。
首先来看未经过 refine 和经过 refine 后的结果对比
从左到右分别为:输入图像、完全卷积网络预测的结果、输入图像相关的 part-level prior、经过 refinement network 预测出的结果。可以看出 refine 后的结果有相当好的表现。
实验验证,这种方法不仅能够用在单人的图像上,还能够对多人图像进行分割。如下图所示:
定量实验结果请参看论文。此外卢策吾团队还有另外四篇 CVPR 2018 论文,分别为:
Environment Upgrade Reinforcement Learning for Non-differentiable Multi-stage Pipelines
Recurrent Residual Module for Fast Inference in Videos
LiDAR-Video Driving Dataset: Learning Driving Policies Effectively
Beyond Holistic Object Recognition: Enriching Image Understanding with Part State
参考资料:
[1] https://zhuanlan.zhihu.com/p/36129234
[2] http://mvig.sjtu.edu.cn/publications/index.html
[3] https://github.com/MVIG-SJTU/WSHP
[4] https://arxiv.org/abs/1805.04310
[5]
Environment Upgrade Reinforcement Learning for Non-differentiable Multi-stage Pipelines
Recurrent Residual Module for Fast Inference in Videos
LiDAR-Video Driving Dataset: Learning Driving Policies Effectively
Beyond Holistic Object Recognition: Enriching Image Understanding with Part State
论文:Learning Facial Action Units from Web Images with Scalable Weakly Supervised Clustering
报告人:赵凯莉 - 北京邮电大学
论文下载地址:暂无
正如论文标题所述,赵凯莉团队所做的工作是使用弱监督聚类方法来学习面部活动单元(Action Units,AUs),动机则是有监督/半监督方法所需要的标注数据太少且收集困难。
这里首先需要解释一个概念,即什么是 AU?
我们知道,人脸表情识别的研究目前得到广泛的关注,但表情的主观性和个体之间的差异性给研究人员带来很大的挑战和困难。而另一方面,从解剖学角度来讲,每一个面部表情牵动着若干条肌肉线,而肌肉的变化影响着面部表面区域的变化。因此通过定义面部肌肉的动作单元,则可以提供一种更加客观的描述人脸表情的方法。目前较为科学的面部肌肉动作定义方式是通过面部活动编码系统 FACS 来定义。FACS 定义这种面部区域活动为「面部活动单元」,简称「AU」(Action Units)。基本的 AU 单元如下图所示:
例如,AU6 表示眼部周围的肌肉收缩。也就是说从太阳穴向眼睛的部位皮肤产生拉 扯,使得下三角区变高。并且引起脸颊的上扬。在此情况下,脸部变窄。与此 同时,眼睛下面的皮肤出现皱纹。AU12 表示嘴角上扬。在一个强度较弱的 AU12 下,此时会有脸颊上扬和眼睑 沟的加深。在一个强度较强的 AU12 下,眼睑和脸颊部分的褶皱加深,并且脸 颊变窄。AU14 嘴角收紧,使得嘴角向内运动并且嘴角变窄。在嘴角部分产生褶皱。
根据 FACS 定义,32 个 AU 的配合几乎可以表示所有的人脸情绪。如下图所示:
所以相比于基本 的表情识别或者是复杂的混合表情,面部活动单元 AUs 是一种更加客观、更加概括 性的、对人的情绪或者面部动作较为全面的定义方式。所以 AU 检测在表情识别中是重中之重。
AU 的检测目前有多种方法,一类属于完全监督,也即基于完全标注的数据来训练 AU 检测器;另一类则是半监督,也即利用部分监督数据加上补充的无标注数据来训练 AU 检测器。
但是这两类方法都需要有标注好数据。我们知道,即使是人的表情标注对普通人来说已经很困难了,更何况是人脸的 AU 标注。在收集 AU 标注数据时,一方面需要有经验的专家花费大量的精力,例如一个 1 分钟长的视频需要专家花费 30-45 分钟才能标注完;另一方面由于 AU 标注的主观性较大,所以即使是专家标注的数据也很容易出错或不准确,根据这些标注数据进行训练的分类器可能会有不一致的预测结果,从而影响性能。
基于这些考虑,赵凯莉团队提出使用弱监督聚类(weakly-supervised clustering,WSC)的方式来学习 AU。所谓弱监督,即数据集中有标签,但这些标签并不可靠,可能是不正确的,也可能是有多种标记或者标记不充分,或者局部标记等。赵凯莉团队这项工作的思路是,收集大量免费的网络图片,这些图片可能来自之前预训练后带有标注的数据集,也有可能来自网络关键词搜索,通过弱监督聚类将这些图片在嵌入到一个新的特征空间中,使得相似表情能够有更小的间距;在此基础上使用 majority voting 方法对相同类的图片进行重标注;最后用重标注的人脸图片去训练 AU 检测器。
这主要有两个步骤,首先是通过弱监督谱嵌入(weakly-supervised spectral embedding,WSE)找到一个嵌入空间,以能够让相同表情聚类在一起(如上面右图);其次是使用 rank-order 聚类方法对嵌入空间中的图片进行重标注。
弱监督谱嵌入
WSE 的作用就是发现一个嵌入空间,它能够保持视觉相似和弱标注的一致性,而不是像通常的 feature space 那样只是考虑视觉相似。所以用公式来表示就是
其中 f(W, L) 表示谱聚类,Ψ(W, G) 则是为了保持弱标注的一致性。
排序聚类重标注
在上一步通过 WSE 学习到嵌入空间后,第二步就是改善之前的弱标注。过程如下图:
首先,使用排序距离(rank-order distance,通过近邻排序测量两个样本之间的距离)为学习到的嵌入空间建立一个无向图。相同类的样本通常有相似的最近邻分布。随后,他们使用广度优先分层聚类找到簇内密度高且簇间密度低的簇。这两个过程称为 Rank-Order Clustering(ROC)。
为了描述聚类结果的质量,他们将模块化质量指数(Modularization Quality Index,MQI)进行了修改,亦适应无向图,因此也称为「uMQI」。
最后,基于 majority voting 直接将相同簇的图像视为相同的类。
通过上述方法标注的数据,如果拿来训练 AU 检测器,那么是否会有更好的表现呢?赵凯莉团队在其实验中通过使用 EmotioNet 数据集进行了验证,这个数据集包含了 100 万张来自互联网的图片,其中有 5 万张是有多种 AU 标记的图片。
通过实验的验证,有以下结论:
1)这种方式重标注的数据训练出的模型不逊于人类标注数据训练处的模型,超过其他方式(例如弱标注、半监督等)训练出的模型:
2)该方法提供了一种直观地剔除异常图片或噪声图片的方法,类似这些:
参考资料:
[1] https://github.com/BraveApple/paper/blob/master/Face%20Attribute/%E9%9D%A2%E9%83%A8%E6%B4%BB%E5%8A%A8%E5%8D%95%E5%85%83%E7%9A%84%E7%BB%93%E6%9E%84%E5%8C%96%E5%A4%9A%E6%A0%87%E7%AD%BE%E5%AD%A6%E4%B9%A0.pdf
[2] https://github.com/zkl20061823
[3] http://cdmd.cnki.com.cn/Article/CDMD-10013-1017292023.htm
[4] https://www.bilibili.com/video/av17005116/
报告题目:GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition
报告人:张子昭 - 清华大学
论文下载地址:暂无
在现实生活中存在着大量的3D对象的应用,例如增强现实和3D建模,因此我们需要构建有效的3D深度学习方法来解决3D对象的识别问题。对于这方面的研究已经有很多,代表性的工作有:发表在CVPR 2015的ShapeNet,它将3D模型表示成体素,输入到网络中提取特征从而进行分类;发表在CVPR 2017中的PointNet将3D对象用点云的数据来表示,然后对三维对象进行分类、部分分割以及场景语义分割等;发表在ICCV 2015中的MVCNN对三维对象从多个视角进行刻画,提取出每个视图的CNN特征,然后再通过池化层对多个视图的特征进行融合从而得到对象特征。
本质上来讲,张子昭所在团队的这项工作是对基于多视图的MVCNN方法的一种改进,出发点在于:考虑到从不同视角去看3D对象其辨识度也是不一样的,因此应该将不同视图按可辨识度进行分组并赋予不同的权重。
传统的MVCNN方法将视图的特征通过View Pooling直接得到对象特征,这种方式没法区分视图的权重。张子昭所在团队的想法是,先根据视图的可辨识度进行分组并进行组内View Pooling,得到组级的特征,然后再通过组间融合得到对象特征。基于这样的考虑,他们提出了View-Group-Shape的三层网络框架。
具体来说,整个网络的框架如下:
在上图中,首先将不同视角的视图输入到网络中,经过FCN和CNN分别提取出不同视图的特征(即图中“final View descriptors”这一步)。
另一方面,经FCN和初步特征描述之后,通过grouping module可以得到不同视图的可辨识度分数(将分数归一化到0-1之间)。值得强调的是,这里的grouping module唯一作用就是给不同视图进行打分。根据视图数量,例如五个,那么就将[0,1]分为5个等宽的组。不同的视图会根据其分数归到某个组中。
依据分组情况,每个组中的视图经过平均池化的方式得到这个组别的特征;同时依据不同的组别内视图的分数可以赋予该组别一个权重。组别特征+组别权重进行加权融合便可以得到最后的对象特征。
视图分组和组别权重
据张子昭介绍,其实验室在ModelNet-40数据集上进行的测试,这个数据集共有10000个左右的三维对象,共40类。
另一方面,3D对象的识别问题主要有两个任务:一是分类任务,即判断给定3D模型的类别,他们使用准确率作为评判标准;二是检索任务,即从数据库中找到与给定3D模型同一类的模型,他们使用mAP作为评价指标。
通过与过去的一些模型进行比较,发现无论是在分类任务还是检索任务中,GVCNN都有很大的提升;尤其是与MVCNN相比,在分类任务中提升了大约3%,在检索任务中提升了5%左右。
另一方面,在实际应用中很难获得三维对象固定视角和固定数量的视图。那么本文所提出的框架是否要求输入的视图数量或者视角是固定的呢?
他们进行了相关的实验,先用8视图进行训练,然后分别用1视图、2视图、4视图、8视图和12视图进行测试。
注:表中 * 表示不预设摄像机视角
实验结果表明随着视图数量越多,分类准确率也就越高。而另一方面,如果不预设摄像机的视角,而是随机选取8/12个视角进行测试,那么分辨率只有84.3% / 85.3%,相比固定视角的表现下降了很多。
基本思想就是将不同可辨识度的视图进行分组并赋予不同的权重,然后再进行融合得到整体的特征;而不像传统方法那样,所有视图的权重都是一样的。这种方法的本质就是,对样本进行精细化分类和赋权,总能带来性能上的提升。
参考资料:
[1] http://www.gaoyue.org/#publications
[2] http://std.xmu.edu.cn/11/70/c4739a332144/page.htm
[3] https://blog.csdn.net/dilusense/article/details/54630473
[4] Multi-view Convolutional Neural Networks for 3D Shape Recognition (MVCNN,视图)
[5] 3D ShapeNets: A Deep Representation for Volumetric Shapes (ShapNet,体素)
[6] PointNet: A 3D Convolutional Neural Network for real-time object class recognition (PointNet,点云)
相关文章: