Advertisement

人体骨骼关键点检测综述

阅读量:
复制代码
    原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不得转载,不能用于商业目的。

包括但不限于本文及其其它相关机器学习和深度学习算法的详细阐述。可通过查阅《机器学习与应用》一书(清华大学出版社),由雷明所著,并经 SIGAI 公众号团队精心策划完成。自2019年1月首次出版以来已重印三次。

购买地址:书的购买地址

访问勘误页面:访问勘误页面

购买地址:书的购买地址

访问勘误页面:访问勘误页面

邀稿声明
各位SIGAIer,之前不少小伙伴要求写一篇Human Pose Estimation的综述,SIGAI有幸邀请了来自北大的东尼大佬为我们解析有关人体骨骼关键点检测技术的发展脉络。小编在这里表示感谢。同时SIGAI也欢迎其他业内专家来平台投稿,大家一起共建专业的人工智能知识分享平台。投稿一旦接收,SIGAI将会赠送雷明老师的《机器学习与应用》签名书,并根据实际情况提供相应的报酬和福利。
投稿请联系:SIGAI_admin


导言
人体骨骼的关键点对于描述人体姿态与预测人体行为而言至关重要。因此,在计算机视觉领域中,人体骨骼关键点检测被视为多种核心任务的基础性工作之一。这些任务包括但不仅限于动作分类、异常行为识别以及自动驾驶等应用范畴。随着深度学习技术的进步,在这一领域的研究已经取得了显著成果,并已逐渐渗透至计算机视觉相关的多个子领域当中。本文旨在介绍二维(2D)人体骨骼关键点的基本概念及其相关算法设计,在算法部分将重点阐述基于深度学习的人体骨骼关键点检测方法的主要思路与实现框架,并分别探讨自顶向下的(Top-Down)与自底向上的(Bottom-Up)两种主要实现策略。

相关介绍

什么是人体骨骼关键点检测

人体骨骼关键点检测也被称为Pose Estimation技术,在该技术中主要目的是识别人体的关键部位如关节和五官等,并基于这些关键点信息构建骨骼模型。

应用与挑战

人体骨骼关键点检测可视为计算机视觉的重要基石,在这一学科的多个相关研究领域均发挥着基础性作用。例如,在行为识别、人物跟踪以及步态分析等相关领域均有显著的应用价值。其应用范围涵盖智能视频监控系统、健康监护系统、人机交互界面、虚拟现实技术以及运动捕捉技术等多个方面。此外,在智能家居系统、智能安防设备以及竞技训练辅助方案等领域也有广泛的应用前景。

由于人体具有相当的柔韧性,在外观上会呈现出多种形态与姿势。任何局部细微的变化都会带来新的形态特征。值得注意的是这些关键点的可见性会受到穿着材质的姿态方向以及拍摄角度等多种因素的影响此外还面临着物体遮挡光照偏差以及大气浑浊等因素所带来的干扰。从视觉效果上看2D与3D的人体关键点呈现出了显著的不同之处其中最值得注意的是身体各部位会产生长度压缩效应(长度压缩)。这种复杂的现象使得精确提取人体骨骼的关键点成为一个极具挑战性的研究课题

相关数据集

LSP(Leeds Sports Pose Dataset)是一个单个人体的关键点检测数据集,在该领域仅包含14个关键点,并包含约2000份样本。该数据集在当前研究中逐渐被淘汰

FLIC(Frames Labeled In Cinema):这是一个专门用于单人人体关键点检测的数据集,并包含9个关键点和约20万个样本;在当前的研究领域中对该数据集的使用已逐渐减少

MPII(MPII Human Pose Dataset):这是一个专门用于单人和多人人体关键点检测的数据集;该数据集包含16个关键点,并包含高达25,000条样本。

MSCOCO: 含有17个关键点的人体多目标检测数据集, 包括超过30万样本的数据, 当前的研究工作普遍需要在此数据集上进行验证。

人工智能挑战赛:人体关键点检测竞赛数据集共有14个关键点约38万样本公开数据集;

PoseTrack作为最新的人体骨骼关键点数据集,在该领域处于领先地位,并提供丰富的人体动作分析功能。该数据集不仅支持单帧和多帧的关键点检测与跟踪,并且能够实现多人人体关键点同步跟踪。涵盖单帧关键点检测、多帧关键点检测以及多人关键点同步跟踪功能的该数据集,在实验中处理过超过500个高质量视频序列,并能每秒处理2万以上的帧数。

传统算法概述

传统的人体骨骼关键点检测算法主要基于几何约束条件,在模板匹配方法框架下展开工作。其核心在于如何利用模板来表达整个人体结构及其组成部分:首先是人体关键点的位置描述;其次是各部位骨骼特征的具体表现;最后是各部位之间相互关联关系的表现方式。选择一个有效的模板匹配方案能够帮助模拟更多人体姿势的可能性,并从而能够实现对人体姿态形态的有效识别。

从Pictorial Structure角度来看,在计算机视觉领域中占据重要地位的是一种较为经典的算法思路。具体包括两大核心要素:其中之一是单元模板(Unary Templates),另一个是模板关系(Pairwise Springs)。其中对模版关系的深入研究,则提出了著名的弹簧形变模型机制。这种机制充分考虑了物体的空间属性与几何特征,并在此基础上构建了部件模型与整体模型之间的空间相对位置关系模型。通过运用物体的空间先验知识进行约束与调节,在保证整体结构合理性的前提下实现了部件细节的有效捕捉与精确重建。

在后续的研究中,Yang & Ramanan为适应更为广泛的体姿变化提出了"mini parts"这一概念。他们将每个肢体结构(part)细分为更小的partlets以精确模拟更多可能的姿态变化形式,并显著提升了肢体模版匹配的效果。具体而言,如图所示(摘自论文[7]的相关幻灯片)。

人体骨骼关键点检测

算法概述

在人体骨骼关键点检测领域主要分为两种方法:一种是从上至下的方法;另一种是从下至上的另一种方法。其中自上而上的关键点定位算法主要包括两步:首先是利用目标检测技术识别并获取所有人的姿态;然后是基于这些姿态信息执行单个人的关键点探测。该过程的具体实现包括以下几点:首先,在获得每个人姿态后,在其对应的检测试框内执行单个人的关键点探测;其次通过深度学习模型对这些关键点进行精细调整以达到最终定位目的。其中具有代表性的模型有如G-RMI、CFN、RMPE等模型;此外还有Mask R-CNN和CPN等模型值得关注。目前基于 MSCOCO 数据集的实验结果表明该方法达到了72.6%的准确率;而对于从下至上的人体骨骼关键点探测体系则主要包括三个核心环节:首先是全局范围内的所有关键点进行初步探测;其次是建立各关键点之间的关联关系;最后通过聚类技术将关联紧密的关键点归为同一人体个体。这一系列步骤中较为突出的方法有PAF(Part Affinity Fields)、Associative Embedding、Mid-Range offsets 等创新性解决方案,并已在 MSCOCO 数据集中取得了68.7%的优秀表现

Coordinate、Heatmap和Heatmap + Offsets

在介绍多人人体骨骼关键点检测算法时,请先介绍关键点回归中Ground Truth构建的问题。这类问题主要涉及两种思路:Coordinate方法与Heatmap方法。Coordinate方法则是直接将关键点坐标作为网络需要学习的目标;而Heatmap方法则是将每一类的关键点用概率图表示,并赋予图像中的每个像素一个概率值。这一过程通常采用高斯函数等模拟方式处理距离问题:如果同一像素的位置到不同关键点的距离大小不一,则会根据距离远近赋予不同的概率值;对于同一像素对应多个关键点的情况,则需要选择最大值(Max)或平均值(Average)进行处理(如图所示)。

对于两种基于Ground Truth(GT)的标准间差异性分析中, Coordinate网络的本质目标是实现对每个关键点位置变化量(offset)的估计,其中大范围偏移量难以精确估计,导致整体收敛速度较慢的同时,该方法仅能提供有限程度的监督信号.相比之下,Heatmap网络通过直接regress每一类关键点的概率分布,能够在一定程度上保证每个像素位置上的预测准确性,从而显著提升关键点定位精度.从可视化效果的角度而言,Heatmap方法也显示出一定的优势;此外,通过实验结果表明,与Coordinate方法相比,Q_heatmap模型的表现更为优异.具体而言,Q_heatmap模型的具体架构如图所示

最后,在构建Ground Truth时主要采用的是Google于CVPR 2017上提出的方法。相比单纯采用Heatmap的情况而言,在这种方法中Google所提出的Heatmap定义为在目标关键点周围一定范围内的所有像素的概率值均为1;而在此基础上还引入了一种偏移量的概念Offsets(偏移量),这种设计不仅能够反映出对应像素位置相对于目标关键点的空间分布情况;同时还能反映出对应像素位置相对于目标关键点的方向信息。个人认为这种方法相较于单纯的Heatmap构建思路具有显著优势;具体而言不仅能够建立各关键点之间的相对位置关系;而且还能体现出各关键点间的相对方向信息;因此整体效果更为理想。如图所示(摘自论文[9])。

自上而下的人体关键点检测算法

自上而下(Top-Down)的人体骨骼关键点检测算法主要由两部分组成:目标检测与单人人体骨骼关键点检测。其中目标检测算法的相关内容在此不做详细说明。而对于关键点检测算法部分,则需要注意以下几点:首先,在区分不同局部区域时具有较强的区分性这一特点相对较少见;其次,在实际应用中容易出现识别上的混淆;第三,在不同身体部位的关键点探测难度存在显著差异;第四,在具体实现过程中需要根据不同特征采取相应的优化策略;最后由于该方法依赖于基于Proposals的关键点定位技术可能导致定位精度不足以及多次识别同一区域的问题;此外已有大量研究工作基于此提出了多种改进方案

ConvolutionalPoseMachines:本文将深度学习技术应用于人体姿态分析领域,并通过卷积层实现纹理信息与空间信息的表现。主要网络架构划分为多个阶段,其中第一个阶段能够实现关键点初步检测的效果,随后几个阶段则以上一阶段的预测结果以及从原始图像中提取出的特征作为输入,从而进一步提高关键点检测的效果。具体的流程图见下文(参考文献[12])。

通过建立各部件响应图来描述各部件间的空间约束关系,并将其与特征图结合使用以实现数据在网络中的传播过程。人体关键点的空间先验分布有助于指导网络的学习过程。假设在stage 1的预测结果中右肩关键点被正确识别而右肘关键点未能被正确识别,则后续stage的空间先验分布将进一步指导网络的学习行为。如下图(源自论文[12]中的内容)所示。

除了在模型架构设计中引入多任务联合学习策略外,在各层间不仅为各任务分配独立的学习目标函数,并且还实现了跨任务间的协同优化。此外,在模型架构设计中引入分阶式注意力机制不仅可以提升模型的整体性能,在不同层次上的注意力权重分布也有助于模型更好地理解数据特性和捕捉其内在规律。值得注意的是,在第一层中用于图像特征提取的部分与后续各层(stage>1)存在显著差异,在这一层主要承担的是初步预测任务的基础工作;而在后续各层则主要负责结合关键点空间先验知识以及基于前一层提取的有效图像特征信息来进行更高层次的任务推断与求解。

Cascaded Pyramid Network:本论文重点探讨了各类别关键点在不同复杂程度上的检测差异性问题。研究架构的整体思路为:首先通过精确识别较为容易定位的关键点作为基础特征;接着在此基础上逐步推进对复杂度更高的关键点进行定位;最终实现对难以观察或高度隐蔽的关键点的有效识别。具体实现流程如附图所示(参考文献[13]所附幻灯片内容)。

具体实现时,则分为两个阶段:GlobalNet与RefineNet。其中GlobalNet主要承担容易检测与较难检测关键点的检测工作;对于较难关键点的检测问题,则体现在网络更深层的部分,在这一层次中能够通过更高级别的语义信息来解决较为困难的关键点问题;RefineNet则专注于解决更为困难或不可见的关键点检测问题;在此过程中对关键点难易程度进行划分主要依据其训练损失值;采用了经典的Hard Negative Mining策略,在训练过程中选取损失值较大的前K个关键点计算损失并用于梯度更新;而对损失较小的关键点则予以忽略;网络整体运行结果如图(摘自论文[13]对应slides)所示。

本论文重点探讨了基于从上至下关键点检测算法的目标检测流程中Proposals生成环节存在的问题。研究发现,在这一过程中可能存在的主要问题是:首先存在由于定位误差导致裁剪区域未能充分包含人体整体的比例问题;其次对于同一物体可能出现多次Proposals的情况,在不同区域裁剪可能导致关键点定位结果不一致的问题。针对上述问题提出了一种新型算法:通过空间变换网络将同一人体不同裁剪区域(即不同Proposals)映射到一个较为优化的结果中(即对人体而言应在正中央位置进行裁剪),从而避免因多重Proposals导致的关键点检测效果不一的问题。具体实现流程如图所示(摘自论文[14])。

自下而上的人体关键点检测算法

基于自底向上的人体骨骼关键点检测算法主要包括两个核心环节:人体骨骼的关键point探测与后续的point分组处理过程。值得注意的是,在单个人体的关键point探测过程中与整体算法流程并无显著差异。然而,在整体流程中所涉及的关键部位不仅限于单一类别的人体骨骼。随后会对提取出的所有人体骨骼的关键部位进行系统性分组。这种系统化的分组策略能够有效地识别出各类人体骨骼的独特形态特征。值得注意的是,在整体流程中所涉及的关键部位不仅限于单一类别的人体骨骼

Part Segmentation具体而言是在人体部位分割过程中实现的,在这个过程中人体的关键点通常位于各个身体部分的特定区域。通过身体各部分的分割模型来推断关键点之间的相互关系。一方面,在网络学习阶段能够利用这些空间信息来指导模型训练;另一方面,在后续的关键点聚类任务中发挥辅助作用。如图所示(摘自论文[15])。

Part Affinity Fields:该方法通过建立人体各部位的三维模型,并利用向量场分析技术模拟各部位之间的关系,在此基础上克服了仅依赖中间点是否位于躯干内所带来的连接不准确的问题

如图所示(摘自论文[16]对应的幻灯片),若仅在中间点与肢体骨骼之间建立对应关系,则当这些关键点位于相应的肢体骨骼上时(即处于同一肢体骨骼的不同端部),将导致图中所展示的错误连接现象。然而,在实际应用中采用的PAFs方法不仅建立中间点与肢体骨骼之间的对应关系(即第17页),而且在这些关键点的中段位置附加了方向信息(即第18页)。这种改进使得该方法能够有效避免上述错误连接现象的发生。

Associative Embedding:基于高维向量的空间编码技术被用来表示人体的关键点之间的关联关系;具体而言,在同一人体内各个关键点会被映射到高维空间中以实现相互靠近的目标;而对于来自不同人体的关键点则会被尽量分离;最终系统会根据两个关键点间的距离计算结果来确定它们是否属于同一人体从而实现聚类功能

该段落主要介绍Mid-Range Offsets的方法论基础。具体而言,在建模两个关键点之间关系的过程中,该方法采用直接将一个关键点映射到另一个的关键点位置上的方式。值得注意的是这类较长跨度的offsets具有较高的学习难度,在回归具体数值时会产生较大的误差项因此可以考虑利用每个关键点附近所计算出的Short-Range Offsets对相应的offsets进行优化调整以提升模型的整体性能具体情况可参考下图(摘自论文[18])。

小结

人体骨骼关键点定位至今仍然是计算机视觉领域中一个极具活力的研究方向。目前该算法还未能达到令人满意的水平,在复杂场景中仍会存在较多的检测错误。基于此,在效果层面自上而下的关键点检测方法要明显优于自下而上的方法。由于自上而下的方法引入了整体人体的空间先验信息,在实际应用中表现出更强的优势。值得注意的是,在研究过程中发现,在一定程度上个人认为自下而上的关键点定位算法并未展现出对全身人体的空间关系进行建模的能力,并未展现出对全身人体的空间关系进行建模的能力,并且仅局限于局部空间关系的建模。因此在实际应用中其表现仍然远逊于基于全身先验的整体模型

参考文献

[1] Iqbal U, Milan A, Gall J. PoseTrack: Joint Multi-person Pose Estimation and Tracking[C]// Computer Vision and Pattern Recognition. IEEE, 2017:4654-4663.

[2] S. Johnson and M. Everingham. Learning effective human pose estimation from inaccurate annotation. In CVPR, pages 1465–1472. IEEE, 2011.

[3] T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ra- manan, P. Dollar, and C. L. Zitnick. Microsoft coco: Com- mon objects in context. In ECCV, 2014.

[4] Mykhaylo Andriluka, Leonid Pishchulin, Peter Gehler, and Bernt Schiele. 2d human pose estimation: New benchmark and state of the art analysis. In Computer Vision and Pattern Recognition (CVPR), 2014 IEEE Conference on, pages 3686– 3693. IEEE, 2014.

[5] Fischler M.A. 和 Elschlager R.A. 共同撰写了关于其图像结构表示与匹配的文章[J]. IEEE Transactions on Computers期刊于1973年卷22期第1期发表了该文章,在第67到92页之间。

[6] I internazionale journal di vision computericae, P. F. Felzenszwalb e D. P. Huttenlocher. "Pictorial Structures for Object Recognition". International Journal of Computer Vision, vol. LXI (1), pp. 55–79, 2005

[7] 杨颖, 丹尼尔·拉曼纳. 基于多样化部分模型的人体姿态估计[J]. 2011, 32(14):1385-1392.

[8] Toshev A, Szegedy C. DeepPose: Human Pose Estimation via Deep Neural Networks[C]// Computer Vision and Pattern Recognition. IEEE, 2014:1653-1660.

[9] Papandreou G, Zhu T, Kanazawa N, et al. Towards Accurate Multi-person Pose Estimation in the Wild[J]. 2017:3711-3719.

[10] Huang S, Gong M, Tao D. Proposed Hierarchical Refinement Networks for Keypoint Detection and Matching[C]// IEEE International Conference on Computer Vision. IEEE, 2017:3047-3056.

[11] He K, Gkioxari G, Dollár P, et al. Mask R-CNN[J]. 2017.

[12] Wei S E, Ramakrishna V, Kanade T, et al. Convolutional Pose Machines[J]. 2016:4724-4732.

[13] 陈阳、王志刚、彭亚等. 基于多层次金字塔网络的多人姿态估计系统[J]. Journal of Image Processing and Computer Vision. 2017年

[14] Fang H S, Xie S, Tai Y W, et al. RMPE: Regional Multi-person Pose Estimation[J]. 2016:2353-2362.

[15] Xia F, Wang P, Chen X, et al. Joint Multi-person Pose Estimation and Semantic Part Segmentation[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2017:6080-6089.

该文提出了一种实时多人2D人体姿态估计方法,并采用部分关联场这一技术手段。

该研究提出了一种基于关联嵌入的方法,并通过全面学习框架实现了对联合检测与分组任务的支持。

[18] Papandreou G等. 《基于几何嵌入的人体姿态估计与实例分割系统》(第2018版)[J]. 2018.

本文由 SIGAI(链接)原创文章。仅供个人学习阅读使用。未经授权不得擅自转载。不得用于商业用途

推荐阅读

该平台发布于 SIGAI 于 2018 年 4 月 13 日

[2] 学好机器学习需要哪些数学知识?SIGAI 2018.4.17.

[3] 人脸识别算法演化史 SIGAI 2018.4.20.

该综述由 SIGAI 于 2018 年 4 月 24 日发布。

卷积神经网络为何能在计算机视觉领域占据主导地位?(参考来源:SIGAI, 2018)

该平台于公历公元二〇一八年四月二十八日正式发布了一项旨在通过可视化工具帮助学习者深入理解支持向量机(SVM)模型构建过程的创新内容

第⑦篇《人脸检测算法综述》, SIGAI ((SIGAI,  (SIGAI,  SIGAI, SIGAI, SIGAI))

该平台于 SIGAI 官方发布文章《深入解析神经网络中的激活函数》,文章详细探讨了这一关键概念的时间为

[9] 深度卷积神经网络发展历程及其优化架构:从理论到实践的全面解析 SIGAI发布日期

深入理解梯度下降法

深入理解梯度下降法

深入理解梯度下降法

[11] 循环神经网络综述—语音识别与自然语言处理的利器 SIGAI 2018.5.15

第十二个问题:学习凸优化(参考:SIGAI, 2018年5月18日)

实验

实验

实验课

实验课

SIGAI综述

SIGAI综述报告

[15] 机器学习在自动驾驶中的应用—以百度阿波罗平台为例(上) SIGAI 2018.5.29

[16] 理解牛顿法 SIGAI 2018.5.31

群话题精华

群话题精华

[18] 大话Adaboost算法 SIGAI 2018.6.1

[19] FlowNet到FlowNet2.0:基于卷积神经网络的光流预测算法 SIGAI 2018.6.4

[20]理解主成分分析(PCA) SIGAI 2018.6.9

全部评论 (0)

还没有任何评论哟~