赞
踩
1 引言
人机交互是一门系统与用户之间互动的学科,从上世纪七十年代末,随着人们对它的不断认识,逐渐形成了一种多模态形式的人机互动也就是模仿人生活中的交互方式,比如:手势、触觉、表情、语音等,让机器也能够获取外界的世界信息,获得视觉感知的能力也就是像人类一样能够拥有自己的“眼睛”,所以遇到问题时候是需要机器能够正确理解人类的行为,也是在这样的背景下,姿态估计被提出,让它成为了一种当下重要技术之一,而且人体姿态估计存在着潜在的应用价值,让学术界、工业界备受关注。
姿态估计是计算机视觉中重要任务,也是计算机理解人体的动作、行为不可或缺的一部分。姿态估计是过去几十年计算机视觉界一直关注的一个重要问题。姿态估计常常还和姿态识别也就是行为识别联系到一起,这是两个概念,行为识别实在最终输出的是图像或者视频的行为的类别,而姿态估计是在输入图像视频之后,能都定位到某人的某个身体部位出现的位置,也就是能够重建到人体各个部位以及各个关节,估计到人的关节点的坐标,行为识别可以借助姿态估计的相关成果来实现。本文主要介绍姿态估计,姿态估计大多数是人体姿态估计,还有一些有手部姿态估计,手部姿态估计分为有标记和无标记的姿态估计,用于理解手部行为的意思。而本文主要围绕人体姿态估计进行阐述。
目前人体姿态估计已经取得较为不错的效果,它在不断的从二维到三维,从图像到视频,从复杂网络到轻量化网络。紧接着又随着深度学习技术的不断发展,将深度学习的许多理论加入到了姿态估计。本文将在接下来的部分着重介绍人体姿态估计相关研究。首先详细地阐述其研究目的和意义,以及现实生活中的应用场景;然后主要介绍直到如今在应用于人体姿态估计下的算法发展历程,详细介绍这些方法的优缺点,重点阐述几种经典算法;最后对这些方法进行对比总结,并对未来发展趋势进行展望。
2研究目的和意义
当下越来越多的数码产品大量的融入到人们的日常生活当中,每天不断的产生各种图片与视频数据,社会是人的集合,其中人类活动必然会想要在这些图片视频数据中提取主要内容,进而会希望有效理解与处理这些数据中的人类活动,所以这时需要借助当下的工具来进行处理,于是人体姿态估计便成为了计算机视觉的重要部分,并且在实际生活中该功能具有使用意义,具体表现在以下几个领域。
(1) 人机交互以及运动分析:
人机交互多用于VR(虚拟增强),AR(现实增强),比如:一些娱乐游戏,通过检测到人体的姿态来进行游戏互动。还有一些用于运动分析,比如:医学界用于观察骨骼恢复状况、病人的姿态监督,就像医学步态分析来诊断身体的受伤程度;体育界监督运动员姿态,创建辅助训练系统,分析运动员的每一时刻的动作,协助运动员找到更好的姿势。或者通过人体姿态的了解帮助汽车设计者改进设计,减轻重大事故时候的人体损伤。还有通过手势识别用于控制无人机
(2) 电影捕捉以及动画制作:
通过真人驱动,让虚拟形象具备类比真人的肢体动作,并支持与3D人脸特效、手势识别等功能结合应用,让虚拟形象更加灵活生动,可用于虚拟IP驱动、肢体驱动类游戏、远程授课或播报等场景。动画游戏制作也需要真人姿态来进行驱动动画人物,从而美术设计者可以根据动画人物进行创新动画角色。
(3) 自动驾驶的行人捕捉:
当下自动驾驶渐渐的步入我们生活当中,已有多个地区正在测试无人驾驶汽车,对于无人驾驶汽车来讲,为了避免危险的发生,不仅需要精准的检测到前方周围的人体,还需要精准的预测估计并且理解人体姿势的下一步行为。
(4) 动物行迹追踪:
大自然不仅由人的存在,更有动物的生存,人与自然和谐相处是我们的理念。对于一些动物研究人员,理解动物的一些姿态行为也是关键的一步,通过对动物的行迹跟踪以及行为理解来更加深入的了解动物的心理,从而更好的让人与动物有更好的相处模式。
(5) 基于内容的视频索引与检索:
姿态估计的研究会对获取视频中的某种特征有重要帮助,有些时候用户在多媒体应用上想要根据自己的喜好来提取视频想要的内容和特征,比如用户想要了解这段视频的这一帧的动作具体的样子。
(6) 身份鉴别以及智能监控:
当下虽然有各种方式来进行人类的识别,就像:指纹识别、人脸识别,但是毕竟指纹识别还是需要人手接触,人脸识别对距离摄像头也比较敏感,对于距离较远的人脸不能够准确的识别出来,于是对于人体姿态估计的研究会对之后利用人体的走姿步态来进行检测并且识别具体是哪个人,既保证了多人接触不够卫生的问题,也相对较好的解决了距离的问题,并且还可以应用在智能监控,有效的监控异常行为并且报警将其录像保存下来方便之后查找记录,提高人眼的效率,减少了劳动力。
3 国内外研究现状
早在1973年心理学家开始研究人体运动时的问题将各个关节装上了发光体,形成关节点集合序列,并发表了一篇有关人体姿态估计的文章。2013年出现DeepPose模型,回归每个关节点的精确坐标,但是多人的效果差,适用于单人的。2014年引入CNN解决单人姿态估计,是通过滑动窗口来找到相应的关键点,需要改进地方就是将传统的特征提取换成深度学习网络。同年数据集也有了提升,MPII数据集相比于姿态估计之前的数据集有了很大的提升。2015年引入Flow Convnet模型,将其该人体姿态估计看成检测类问题,创新之处就是将第三层和第七层的特征图提取出来,经过卷积融合这两层特征图,文中称之为空间融合模型,输出的是关节点的热力图。同年又有Deepcut模型,自底向上的方法深度卷积预测所有点,再聚类组成图。2016年提出深度学习单人姿态估计,比如:CPM,Hourglass。同年提出卷积姿态机(CPM)序列化卷积结构提取空间信息和纹理信息。接着又出现了沙漏网络(SHN) 采用多尺度特征来捕捉人体各个关节点的空间位置信息。后来还有了卷积变换核来对关节点之间的关系来建模(双向树模型使每个关节都能获得其他关节点)。最转折的部分是同年Deepcut模型加入了Resnet提高了精度。后有人提出了一种网络结构,将其分为两路:一路卷积,一路PAF负责记录位置方向在2016年的7月份,Princeton的Deng Jia组放出了另外一个非常棒的人体姿态估计工作,Hourglass。后续Deng Jia那边基于Hourglass的想法做了Associate Embedding,以及后续的CornerNet都是非常好的工作。该最大的改进就是网络变得更加简单。2016下半年 COCO数据集引入了多人姿态估计,第一名就是openpose,基于CPM为组件先找到图片中每个关节的位置再用PAF(Part Affinity Field)来做人体的组接,PAF原理也就是做一个有向场,相邻关键点做匹配,边权就是基于PAF的场进行计算,匹配成功即是一个人。还有一个重要的一组是Hourglass + Associative Embedding,使用自下而上方法寻找,主要是解决的人体拼接问题,每个关键点都会有embedding,同一个人关键点尽可能让embedding相近,不同的尽可能的不同。从2017年开始,后来的工作开始围绕top-down(自上而下)展开,相比于自下而上的优点是有两点,1、召回率较好,因为top-down是先做人体检测,人体往往会比part更大,所以从检测角度来讲会更简单,相应找到的recall也会更高。2、关键点的定位精度会更准,这部分原因是基于crop的框,对空间信息有一定的align,同时因为在做single person estimation的时候,可以获得一些中间层的context信息,对于点的定位是很有帮助的,但是缺点就是实时性差、 速度慢。2017年的COCO比赛中,出现了CPN,一个coarse-to-fine的逻辑,先用一个网络出一个coarse的结果(GlobalNet),然后再coarse的结果上面做refinement (RefineNet)2018年COCO比赛,基于CPN做了一些修改,在CPN的globalNet基础上面,做了多个stage的堆叠,类似于Hourglass的结构。到了2019年,MSRA 王井东组提出了空间分辨率的重要性,在那之前,都是在不断的暴力放大图片来进行提取信息,精准的定位,但是计算量非常大,HRNet相比传统的下采样的网络结构,这里提出了一种新的结构。分成多个层级,但是始终保留着最精细的空间那一层的信息,通过fuse下采样然后做上采样的层,来获得更多的context以及语义层面的信息(比如更大的感受野)。2020年10月7日可以用Python玩转3D人体姿态估计,用的是FrankMocap 算法,FrankMocap 是港中文联合 Facebook AI 研究院提出的3D 人体姿态和形状估计算法,但是缺点就是运算速度慢,实时效果差。2021年人体姿态估计还在数字健身领域发展起来,在运动时候捕捉用户动作,分析运动成绩正确与否,基于骨骼模型(关节关键点),基于轮廓模型(由身体躯干和四肢轮廓),基于体积模型(用过三维扫描捕获身体模型)。2021年有一篇创新的论文“自底向上”人体姿态估计尺度自适应方法(链接https://arxiv.org/abs/2012.15175)提出了尺度自适应热力回归的方法(SAHR)与权重自适应热图回归(WAHR)的结合方法,训练的时候,GT热图首先根据预测的尺度图来生成GT 自适应热图,然后用利用权重自适应损失监督整个模型,测试时候AE与预测的热图用于人的分组。总之,姿态估计的方法主要是分为基于传统的姿态估计和基于深度学习的姿态估计。
3.1基于传统的姿态估计
传统的姿态估计主要是基于图结构模型方法。基于图结构模型方法包含三部分:图模型、优化算法和组件外观模型。图形结构模型最初是由Fischlet和Elschlager在文献中引入,它提供了经典的对象统计模型,使用图形结构模型识别图像中的对象,缺点在于属于启发式的局部搜索,没办法找到全局最优解。
为了解决这个问题,Felzenszwalb等人在文献中为图像中的图像结构模型训练和识别提供了概率方法,是有效的对参数的学习和匹配的方法,但是这种方法在场景复杂的时候准确度下降很多,比如有光照、人体部分位置的遮挡、拍照的角度等。
之后Andriluka等人提出了图像结构模型应用到其中,从增强数据开始,使用墨迹采样的形状上下文描述符,在借鉴强-弱分类器差异化的训练Adaboost分类器模拟身体的外观,如此让外观和空间建模更准确。
Felzenszwalb等人提出可变部件模型(Deformation Part Model,DPM),原理是先用先用一个分类器找到整个人体位置,再用一个分类器找到刚刚人脸响应最大的位置,找到人脸。后来随着深度学习的不断发展,将深度学习加入到了姿态估计,于是就出现了之后会讲到应用这个可变思想的算法叫自顶而下(Top-Down)。后来,Felzenszwalb又提出基于DPM算法的采用改进的HOG特征,并且用SVM分类器和滑动窗口进行对参数的学习,采用基于图形结构的组件模型解决本身的变形问题。Yang和Ramanan提出了Flexible Mixtures-of-Parts(FMP),这个有两个创新点,其一是关节点之间的树型配对,树型结构同时有了方向变量,而之前提出来的DPM是星型结构;其二是使用更复杂的编码方式捕捉肢体之间的上下文关系,之前编码方式只能编码空间关系,
3.2基于深度学习的姿态估计
深度学习时机器学习领域近几年发展较为迅猛的分支。深度学习是自我解释型的学习方式,简单方便,功能强大,很多领域都在使用。姿态估计也陆续出现了许多方法,利用深度卷积神经网络来增强人体估计系统的性能,在网络架构方面,基于深度学习的姿态估计分为单级网络和多级网络,单级网络通常的难点在于后面的特征融合工作,多级网络一般就是重复叠加某个细小的小网络结构。单级网络都是会采用特征提取已经训练好的分类网络,微调后作为新网络的一个backbone,常用到的网络比如:VGGNet或ResNet(残差网络)。模型主要有Deeppose(直接回归坐标)、CPM(热力图回归坐标)。对于深度学习的人体姿态估计的算法来讲,大致分为自顶向下方法和自底向上的方法。
3.2.1自顶向下(Top-Down Approaches)
自顶向上这种方法也就是先检测到整个人的存在,再具体检测每个关节点的位置,但是自顶向下的缺点有两点,一是对物体检测比较敏感,也就是如果行人未检测出来,关键点就不会检测到;二是处理量会随着人数的增加而增加,成正比。同时它的优点也是很突出,1、召回率较好,因为top-down是先做人体检测,人体往往会比part更大,所以从检测角度来讲会更简单,相应找到的recall也会更高。2、关键点的定位精度会更准,这部分原因是基于crop的框,对空间信息有一定的align,同时因为在做single person estimation的时候,可以获得一些中间层的context信息,对于点的定位是很有帮助的
2017年CVPR采用的自顶向下后,先是使用faster rcnn当人整体的检测器,其次用一个残差网络结构对检测到的人做密集热力图并且预测坐标偏移量,最后将其二者结融合结果得到关键点的坐标。同年,MSCOCO比赛的冠军采用级联金字塔网络改进过程,采用多尺度特征融合,还用损失函数来处理关键点。肖等人还提供了人体姿态估计的基准方法。自顶向下的检测算法有RMPE、Mask-RCNN。
Regional Multi-Person Pose Estimation(RMPE)是上海交大和腾讯优图的论文,被 ICCV 2017接收。它对于多人姿态估计的方法采用传统的自顶向下的方法,即先检测人,再识别人体姿态。检测使用的是SSD-512,识别人体姿态使用的是state-of-the-art的Stacked Hourglass方法。致力于解决对于imperfect proposal,通过调整,使得crop的单人能够被单人姿态估计方法很好的识别,从而克服检测带来的定位误差。RMPE主要围绕这两个问题进行讨论,提出四个创新点:1.SSTN(Symmetric Spatial Transformer Network),对称空间变换网络,在不准确的bounding box中提取高质量单人区域,来克服检测框质量不高的问题。2.p-Pose NMS(Parametric Pose No-Maximum-Suppression),参数化姿态非最大抑制,解决姿态的冗余检测问题。3.PGPG(Pose-Guided Proposals Generator),姿态引导区域框生成器,用于数据增强,以获得更好地模型性能提出了一种新的并行SPPE分支来优化该网络。
对于Mask RCNN是一个非常流行的语义和实例分割架构。该模型可以同时预测图像中多个物体的候选框位置及分割其语义信息的 mask。该模型的基础架构很容易被扩展到人体姿态估计上来。
3.2.2自底向上(Bottom-Up Approaches)
这种方法就是先检测到每个人关节部位的关键点,然后再用图结构、条件随机场等算法组接成每个人的姿态,缺点就是将关键点与人关联起来,分组成人具有挑战。而且受遮挡影响太大。代表算法:openpose,DeepCut、PAFs。
OpenPose和很多自底向上的方法一样,OpenPose 首先检测出图像中所有人的关节(关键点),然后将检出的关键点分配给每个对应的人。用Part Affinity Fields(PAFs)来学习如何将身体关键和个人匹配起来。主要思想是利用贪心算法自下而上的解析步骤从而达到高准确率和实时性。身体部位定位和关联是在两个分支上同时进行的。
2015 年提出DeepCut模型,深度卷积预测所有点,再聚类组成图。DeepCut是一个自底向上的多人人体姿态估计方法。针对人体姿态估计任务,作者定义了以下问题:1.生成一个由 D 个关节候选项组成的候选集合。该集合代表了图像中所有人的所有关节的可能位置。在上述关节候选集中选取一个子集。2.为每个被选取的人体关节添加一个标签。标签是 C 个关节类中的一个。每个关节类代表一种关节,如“胳膊”“腿”“躯干”等。3.将被标记的关节划分给每个对应的人。
总之,从整个网络架构上总体来看,一般单级网络都使用自顶向下的方法,而多级网络两者方法均可,让网络越来越精准。
3 总结与展望
本文主要介绍人体姿态估计相关研究,人体姿态估计是当前计算机视觉领域的热点研究问题。今后在姿态估计方面上仍然存在着需要不断改进几方面发展的地方。
1、从2维到3维,从姿态到形态,3维人体重建的必备技术
2、从静态到动态,人体关键点的视频追踪的连贯性、一致性问题
3、从关键点的时序空间特征映射到动作语义问题,让计算机具有感知能力,理解并且识别动作的信息。
4、提高算法的精度与轻量化,对算法的效率和精度提高还有一定要求。
5、从监督学习到弱监督 、自监督,甚至有可能无监督。如,( ICLR-2019 unsupervised discovery, parts, structure and dynamics [],NeurIPS-2019 Learning Temporal Pose Estimation from Sparsely-Labeled Videos[])
如今的姿态估计仍然有一些比较棘手的问题,就像缺少大型的室外数据集(主要瓶颈);缺少特殊姿态的数据集(如摔倒,打滚等);由于数据集是在实验室环境下建立的,模型的泛化能力较差。但是我们仍然取得了很大进展,这使我们能够更好地服务于可能使用该技术的大量应用。此外,对姿势跟踪等相关领域的研究可以大大提高其在许多领域的生产利用率。总体来说,现如今不断发展的深度学习为解决姿态估计提供了许多新技术,但其研究还存在一些问题,基于深度学习的姿态估计仍然是未来研究的重点方向。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。