热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

动作分析姿态估计_单人或多人的人体姿态骨架估计算法汇总

如何在大片中实现人物的特效,最终应用人体姿态估计。本博客介绍了使用深度学习技术及其应用的多人姿势估计方法。人体骨骼骨架以图形格式表达人体运动。基本上,它

如何在大片中实现人物的特效,最终应用人体姿态估计。本博客介绍了使用深度学习技术及其应用的多人姿势估计方法。

人体骨骼骨架以图形格式表达人体运动。基本上,它是一组坐标,用于描述一个人的姿势。骨架中的每个坐标称为此图的零件(或关节,关键点)。我们将两个组件之间的有效连接称为一对(对或肢)。但是,应该注意,并非所有组件组合都产生有效对。下图是人体骨架图的示例。

7ab709d0934342f227de14a6807a5d48.png

左图:人体骨骼骨架的COCO关键点格式; 右图:渲染后的人体姿势图

该图来源:https://github.com/CMU-Perceptual-Computing-Lab/openpose

获取人体姿势信息为多个真实世界的应用程序开辟了道路,其中一些应用程序将在本博客的最后讨论。近年来,研究人员提出了各种人体姿势估计方法,最早(也是最慢)的方法通常是在一个人的图像中估计一个人的姿势。这些方法通常识别各个组件,然后通过在它们之间形成连接来创建姿势。

当然,如果您处于多人的真实场景中,这些方法并不是非常有用。

多人姿势估计

由于图像中的人的位置和总人数未知,因此多人姿势估计比单人姿势估计更困难。一般来说,我们可以通过以下方法解决上述问题:

简单的方法是首先添加人体检测器,然后分别估计每个组件,最后计算每个人的姿势。这种方法称为“自上而下”的方法。

另一种方法是检测图像中的所有组件(即所有者的组件),然后关联/分组属于不同人的组件。这种方法称为“自下而上”的方法。

08be3cb9104da3797626f63df9990f8d.png

上部:传统的自上而下方法; 下部:传统的自下而上的方法。

通常,自上而下的方法比自下而上的方法更容易实现,因为添加人类检测器比使用关联/分组算法容易得多。很难判断哪种方法总体上表现更好,因为比较人体检测器和相关/分组算法会更好。

在这篇博客中,我们专注于使用深度学习技术的多人姿势估计技术。在下一节中,我们将回顾一些流行的自上而下和自下而上的方法。

深度学习方法

1.OpenPose

OpenPose是最受欢迎的自下而上多人姿势估计方法之一,部分原因在于其GitHub实现的友好文档。

与许多自下而上的方法一样,OpenPose首先检测图像中的部分(关键点),然后将部分分配给不同的个体。下图显示了OpenPose模型的体系结构。

b0785000ab6649f658ca39098a1d1ffe.png

OpenPose网络首先使用前几层(上图中的VGG-19)从图像中提取特征。然后将这些特征输入卷积层的两个平行分支。第一分支预测一组置信图(18),每个置信图表示人体骨架图的特定部分。第二个分支预测另一组部件亲和力字段(PAF,38),PAF表示组件之间的关联程度。

c8fafde7d0f99c2cce90fbb725412a4b.png

其余的OpenPose步骤用于优化每个分支的预测。使用组件置信度图,在组件对之间形成二分图(如上所示)。然后使用PAF值修剪二分图中的较弱链接。通过上述步骤,我们可以估计人体骨架图并将其分配给图像中的每个人。

2. DeepCut

DeepCut是一种自下而上的方法,可用于多人姿势估计。作者通过定义以下问题来完成此任务:

生成一组身体部位候选集D.此集合表示图像中所有人的身体部位的所有可能位置。从身体部位候选组中选择身体部位的子集。

用身体部位C类中的类别标记每个所选身体部位。身体部位类指示部位的类型,例如“手臂”,“腿”,“躯干”等。

指定属于同一个人的身体部位。

af2d074e23f30c83f6b1881ae21f2bc7.png

上述问题可以通过建模为整数线性规划(ILP)来解决。使用二进制随机变量的三元组(x,y,z)进行建模,二进制随机变量的域如下所示:

43857a27fdf932d664bb467f3af7afb7.png

考虑来自身体部位候选组D的两个身体部位候选d和d',以及来自类别集C的类别c和c',其中通过更快的RCNN或密集CNN获得身体部位候选。现在我们可以开发以下一组语句。

如果x(d,c)= 1,则意味着身体部位候选d属于类别c。

如果y(d,d')= 1,则意味着身体部位候选者d和d'属于同一个人。

它们还定义z(d,d“,c,c”)= x(d,c)* x(d“,c”)* y(d,d“)。如果上述值是1,则意味着身体部位候选d属于类别c,身体部位候选d'属于类别c',并且最后的身体部位候选d,d'属于同一个人。

最后一个陈述可用于划分属于不同人的姿势。上述陈述显然可以使用线性方程表示为(x,y,z)的函数。通过这种方式,我们可以构建整数线性规划(ILP)模型并估计多人的姿势。有关完整的方程式和详细分析,请参阅文章“DeepCut:多人姿态估计的联合子集分区和标签”。

3. RMPE(AlphaPose)

RMPE是一种流行的自上而下的态度估计方法。作者认为,自上而下的方法通常依赖于人体探测器的性能,因为姿势估计是在某人所在的区域进行的。因此,定位误差和重复边界框预测可能导致姿态提取算法仅获得次优解。

d20d011780ee9c35f33ef03607ddcf48.png

为了解决这个问题,作者提出使用对称空间变换器网络(SSTN)从不准确的边界框中提取高质量的单人区域。在该区域中,使用单人姿势估计器(SPPE)来估计人体姿势骨架图。然后我们使用空间变换器网络(SDTN)将估计的人体姿势重新映射回原始图像坐标系。最后,参数姿态NMS技术用于解决冗余问题。

此外,作者还介绍了Pose Guided Proposals Generator,以增强训练样本,以更好地帮助训练SPPE和SSTN网络。RMPE的一个显着特征是该技术可以扩展到人类检测算法和SPPE的任何组合。

4.Mask RCNN

Mask RCNN是一种用于执行语义和实例分割的流行架构。该模型可以并行地预测图像中各种对象的边界框的位置以及用于对象的语义分割的掩模。该基本架构可以容易地扩展到用于人体姿势估计的方法。

331f78374020a9fa3520e042095ba52b.png

基本架构首先使用CNN从图像中提取特征图。区域提议网络(RPN)使用这些要素图来获取对象的候选边界框。通过从CNN提取的特征图中选择区域来获得这些候选边界框。由于候选边界框可以具有各种大小,因此我们使用名为RoIAlign的层来减小提取的要素的大小,使它们具有相同的大小。现在,提取的特征被传递到CNN的并行分支,以最终预测边界框和分割掩模。

现在让我们看看执行拆分的分支。首先假设图像中的对象属于类别集K.分割分支可以输出大小为m×m的K个二进制掩码,其中每个二进制掩码仅表示属于该类的所有对象。我们可以将每种类型的关键点建模为不同的类,并将其视为分割问题,以提取属于图像中每个人的关键点。

同时,我们还可以训练目标检测算法来识别人的位置。通过将人们的位置信息与他们的关键点相结合,我们可以得到图像中每个人的人体骨架图。

该方法类似于自上而下的方法,但人类检测阶段与组件检测阶段并行执行。换句话说,临界点检测阶段和人体检测阶段彼此独立。

其他方法

多人体姿评估有很多解决方案。为简洁起见,本文仅介绍几种方法。有关方法的更详细列表,您可以查看以下信息:

可以应用于:

态度估计在许多领域都有应用,其中一些在下面列出。

1.活动识别

跟踪身体姿势随时间的变化也可用于活动,手势和步态识别。这些用例是:

  • 用于检测人是否摔倒或生病的应用程序。
  • 可以自主地教授正确的运动机制,运动技术和舞蹈活动的应用。
  • 可以理解全身手语的应用(例如:机场跑道信号,交警信号等)。
  • 可以增强监控的安全性和应用程序。
56f5539b4cb46b0ee135bc6028e5a389.png

跟踪一个人的步态对于安全和监视区域非常有用

2.动作捕捉和增强现实

CGI应用程序是一种有趣的应用程序类型,它也利用了人体姿势估计。如果您可以估计一个人的姿势,您可以在人物上叠加图形,样式,设备和艺术品。通过跟踪这种人体姿势的变化,渲染的图形可以在人移动时“自然地适应”。

880c4439f749a732e0e5dda9f3b0aea3.png

Animoji就是一个很好的例子。虽然上述研究仅追踪了脸部的结构,但这种想法可以扩展到人类的关键跟踪。相同的概念也可用于渲染模仿人体运动的增强现实(AR)元素。

3.训练机器人

我们可以跟踪执行动作的人体骨骼的轨迹,而不是手动编程机器人来跟踪轨迹。人类教练可以通过示范行动有效地教导机器人这些行动。然后,机器人可以计算如何移动关节以执行相同的动作。

4.控制台动作跟踪

姿势估计的另一个有趣的应用是跟踪交互式游戏中人体的运动。通常,Kinect使用3D姿势估计(使用红外传感器数据)来跟踪人类运动员的运动并使用它来渲染化身的动作。

8004707c300eea2b962cf8519052d162.png

总结

我们在人体姿态估计领域取得了很大进展,这使我们能够更好地服务于可能使用该技术的大量应用。此外,对姿势跟踪等相关领域的研究可以大大提高其在许多领域的生产利用率。



推荐阅读
  • 每日一书丨AI圣经《深度学习》作者斩获2018年图灵奖
    2019年3月27日——ACM宣布,深度学习之父YoshuaBengio,YannLeCun,以及GeoffreyHinton获得了2018年的图灵奖, ... [详细]
  • AI 学习路线:从Python开始机器学习
    AI 学习路线:从Python开始机器学习 ... [详细]
  • AI算法工程师从入门到上瘾
    设定一个非常清晰的目标清晰的目标就比如说你要做NLP,你要知道NLP的应用有智能问答,机器翻译,搜索引擎等等。然后如果你要做智能问答你要知道现在最发达的技术是深度学习,使用的算法有 ... [详细]
  • DNNBrain:北师大团队出品,国内首款用于映射深层神经网络到大脑的统一工具箱...
    导读深度神经网络(DNN)通过端到端的深度学习策略在许多具有挑战性的任务上达到了人类水平的性能。深度学习产生了具有多层抽象层次的数据表示;然而,它没有明确地提供任何关 ... [详细]
  • x86x64体系探索及编程(对x86处理器介绍得最详尽又最具实践指导意义的一本书)邓志著ISBN978-7-121-18176-42012年10月出版定价:119.00元16开840页对x86处理 ... [详细]
  • PyTorch 2.0来了!100%向后兼容,一行代码将训练提速76%!
    点击下方卡片,关注“CVer”公众号AICV重磅干货,第一时间送达点击进入—CV微信技术交流群转载自:机器之心PyTorch官方 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • Shiro 简单了解
    Shiro简单了解简单用过SpringSecurity安全框架后,再试试另一个安全框架——Shiro。1.Shiro简介ApacheShiro是一个强大且易用的Java安全框架:S ... [详细]
  • nvmw安装,用于控制node版本;
    之前一直使用的是nodev2.2.0版本,挺说新版本的node解决了npm安装插件产生文件夹结构过深的问题,所以就想更新试试;上网一看才发现,尼玛的node已经到了6.+版本了,好 ... [详细]
  • 21世纪经济报道记者董静怡上海报道2023年1月31日,深圳市优必选科技股份有限公司正式向港交所递交招股说明书,拟主板挂牌上市,国泰君安国际担任独家保荐人。这意味着, ... [详细]
  • 《时代》杂志特稿:Vitalik正在担忧加密行业的未来 |链捕手 ... [详细]
  • 【历史上的今天】5 月 18 日:微软反垄断诉讼;携程旅行网上线;谷歌首次公布 TPU
    整理|王启隆透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。今天是2022年5月18日,在1939年的今天,彼得 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
author-avatar
mobiledu2502917177
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有