深度学习中的人体姿态估计概述

简介: 本文概述了多人姿态估计任务,重点介绍了深度学习中的一些多人姿态估计方法,并简要介绍了多人姿态估计的应用场景。

人体姿势骨架以图形格式表示人的方向。本质上,它是一组可以连接起来描述人的姿势的坐标。骨架中的每个坐标都称为零件(或关节或关键点)。两个部分之间的有效连接称为一对(或肢体)。请注意,并非所有零件组合都会产生有效的配对。下面显示了一个示例人体姿势骨架。


47b69e09fcf3a3b3770ad7d0b8daf1ec.png

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

 

多年来,人们引入了几种人体姿势估计方法。最早(也是最慢)的方法通常是在只有一个人的图像中估计单个人的姿势。这些方法通常首先识别各个部分,然后在它们之间形成连接以创建姿势。


自然,这些方法在许多图像包含多人的现实生活场景中并不是特别有用。

 

多人姿势估计


多人姿态估计比单人情况更困难,因为图像中的位置和人数是未知的。通常,我们可以使用以下两种方法之一来解决上述问题:


  • 简单的方法是首先结合一个人检测器,然后估计各个部分,然后计算每个人的姿势。这种方法被称为自上而下的方法。


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

f72fb69a0460cde069520bbc08e11f4b.jpg

顶部:典型的自上而下的方法。底部:典型的自下而上的方法。

 

通常,自顶向下方法比自底向上方法更容易实现,因为添加人员检测器比添加关联/分组算法简单得多。很难判断哪种方法具有更好的整体性能,因为它实际上归结为人员检测器和关联/分组算法中的哪种更好。

在本文中,我们将重点介绍使用深度学习技术的多人人体姿态估计。在下一节中,我们将回顾一些流行的自上而下和自下而上的方法。

 

深度学习方法


1. OpenPose


OpenPose 是最流行的自下而上的多人人体姿势估计方法之一,部分原因是它们有充分记录的 GitHub 实现代码。


与许多自下而上的方法一样,OpenPose 首先检测属于图像中每个人的部分(关键点),然后将部分分配给不同的个人。下面显示的是 OpenPose 模型的架构。


e13b7bc8637b58cdd3adc2c50e328f71.png

OpenPose 架构的流程图。

 

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

d60e95c38d53b504d456692db66cc530.png

使用 OpenPose 进行人体姿态估计的步骤。

 

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

 

2. DeepCut

DeepCut 是一种自下而上的多人人体姿态估计方法。作者通过定义以下问题来完成这项任务:


  1. 产生一组 D 身体部位候选。该集合代表图像中每个人身体部位的所有可能位置。从上述候选身体部位集合中选择身体部位的子集。


  1. 使用 C 身体部位类之一标记每个选定的身体部位。身体部位类表示部位的类型,例如“手臂”、“腿”、“躯干”等。


  1. 划分属于同一个人的身体部位。


cbd8203023eae76f3d23752842298f54.png

该方法的图示。

 

上述问题通过将其建模为整数线性规划 ( Integer Linear Programming , ILP) 问题来共同解决。它是通过考虑具有域的二元随机变量的三元组 (x, y, z) 来建模的,如下图所示。

305480991924251956285b9aea479f24.png

二元随机变量的域。


考虑来自身体部位候选集 D 的两个身体部位候选者 d 和 d' 以及来自类别 C 的类别 c 和 c'。身体部位候选者是通过 Faster RCNN 或 Dense 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) 的函数。这样就建立了整数线性规划( Integer Linear Programming , ILP),可以估计多人的姿态。对于确切的方程组和更详细的分析,请自行查看他们的论文。

 

3. RMPE (AlphaPose)


RMPE 是一种流行的自上而下的姿态估计方法。作者认为自上而下的方法通常取决于人物检测器的准确性,因为姿势估计是在人物所在的区域上执行的。因此,定位和重复边界框预测中的错误会导致姿势提取算法执行欠佳。


771248718ae9b4d9be8f3c2890a96c60.png

重复预测(左)和低置信边界框(右)的影响。

 

为了解决这个问题,作者提出使用对称空间transformer网络 (Symmetric Spatial Transformer Network, SSTN) 从不准确的边界框中提取高质量的单人区域。在这个提取的区域中使用单人姿势估计器 (SPPE) 来估计该人的人体姿势骨架。空间De-Transformer网络 (SDTN) 用于将估计的人体姿势重新映射回原始图像坐标系。最后,使用参数姿态非极大抑制 (NMS) 技术来处理冗余姿态推演问题。


此外,作者引入了一个姿势引导建议生成器(Pose Guided Proposals Generator)来增加训练样本,从而更好地帮助训练 SPPE 和 SSTN 网络。RMPE 的显着特点是该技术可以扩展到人员检测算法和 SPPE 的任意组合。

 

4. Mask RCNN


Mask RCNN 是一种用于执行语义和实例分割的流行架构。该模型同时预测图像中各种目标的边界框位置和语义分割目标的掩码。基本架构可以很容易地扩展到人体姿态估计。

383ae8a43791aa9c3a9057f85cfc9c55.png

描述 Mask RCNN 架构的流程图。

 

基本架构首先使用 CNN 从图像中提取特征图。区域提议网络 (Region Proposal Network, RPN) 使用这些特征图来获取存在对象的边界框候选者。边界框候选从 CNN 提取的特征图中选择一个区域(区域)。由于候选边界框可以有各种大小,因此使用称为 RoIAlign 的层来减小提取特征的大小,使它们都具有统一的大小。现在,这个提取的特征被传递到 CNN 的并行分支,用于边界框和分割掩码的最终预测。


让我们专注于执行分段的分支。假设我们图像中的一个目标可以属于 K 个类中的一个。分割分支输出 K 个大小为 m x m 的二进制掩码,其中每个二进制掩码代表属于该类的所有目标。我们可以通过将每种类型的关键点建模为一个不同的类并将其视为分割问题来提取属于图像中每个人的关键点。


同时,可以训练目标检测算法来识别人员的位置。通过结合人的位置信息以及他们的关键点集,我们获得了图像中每个人的人体姿势骨架。


这种方法几乎类似于自顶向下的方法,但人员检测阶段与部件检测阶段并行执行。换句话说,关键点检测阶段和人物检测阶段是相互独立的。

 

应用


姿态估计在无数领域都有应用,下面列出了其中的一些领域。


1.活动识别


跟踪一个人一段时间内姿势的变化也可用于活动、手势和步态识别。有几个相同的用例,包括:


  • 用于检测一个人是否跌倒或生病的应用程序。


  • 可以自主教授正确的锻炼方式、运动技巧和舞蹈活动的应用程序。


  • 可以理解全身手语的应用程序。(例如:机场跑道信号、交警信号等)。


  • 可以增强安全性和监视的应用程序。

2fe376a34cb0b24195da04900a796c71.png

跟踪人的步态对于安全和监视目的很有用。


2. 动作捕捉和增强现实


人体姿态估计的一个有趣应用是 CGI 应用。如果可以估计人体姿势,则可以将图形、样式、花哨的增强功能、设备和艺术品叠加在人身上。通过跟踪这种人体姿势的变化,渲染的图形可以在人物移动时“自然地贴合”他们。

6419bf48cf981a41acdada4cc14adf4b.png

CGI 渲染示例。


通过 Animoji 可以看到一个很好的视觉示例。尽管上面只跟踪了人脸的结构,但可以推断出一个人的关键点。可以利用相同的概念来渲染可以模仿人的运动的增强现实 (AR) 元素。

 

3. 训练机器人


可以让机器人跟随正在执行动作的人体姿势骨架的轨迹,而不是手动编程机器人来跟随轨迹。人类教练可以通过演示来有效地教机器人某些动作。然后机器人可以计算如何移动其咬合架以执行相同的动作。

 

4. 控制台的运动跟踪


姿势估计的一个有趣应用是踪人类主体在交互式游戏中的运动。通常,Kinect 使用 3D 姿势估计(使用 IR 传感器数据)来跟踪人类玩家的运动并使用它来渲染虚拟角色的动作。

bc4b416a29f59e8280be7dcbb35f6cc9.png

正在运行的 Kinect 传感器。

 

结论


人体姿态估计领域取得了长足的进步,这使我们能够更好地为可能的无数应用提供服务。此外,在姿态跟踪等相关领域的研究可以大大提高其在多个领域的生产利用率。



相关文章
|
3月前
|
机器学习/深度学习 算法 数据可视化
通过深度学习和人脸图像进行年龄段估计matlab仿真
通过深度学习和人脸图像进行年龄段估计matlab仿真
|
3月前
|
机器学习/深度学习 编解码 API
深度学习+不良身体姿势检测+警报系统+代码+部署(姿态识别矫正系统)
深度学习+不良身体姿势检测+警报系统+代码+部署(姿态识别矫正系统)
117 0
|
3月前
|
机器学习/深度学习 算法
m基于深度学习的64QAM调制解调系统频偏估计和补偿算法matlab仿真
### 算法仿真结果 展示5张图像,描绘了基于深度学习的频偏估计和补偿在MATLAB 2022a中的仿真效果。 ### 理论概要 - 深度学习算法用于建立信号与频偏的非线性映射,无需导频,节省资源。 - 网络模型(如CNN或RNN)处理IQ数据,提取特征,简化估计补偿过程,降低复杂度。 - 64QAM系统中,通过神经网络实现精确频偏感知,增强通信性能。 ### MATLAB核心程序 - 代码生成64QAM信号,模拟不同SNR和频偏条件,使用深度学习进行相位估计和补偿。 - 仿真比较了有无补偿的误码率,显示补偿能显著改善通信质量。 ```
69 1
|
3月前
|
机器学习/深度学习 算法 Windows
m基于深度学习的OFDM通信系统频偏估计算法matlab仿真
m基于深度学习的OFDM通信系统频偏估计算法matlab仿真
69 1
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
【深度学习】深度学习的概述及应用,附带代码示例
深度学习(Deep Learning,简称DL)是机器学习领域中的一个重要分支,其目标是通过模拟人脑神经网络的工作机制,构建多层次的抽象特征表示,使机器能够自动从原始数据中提取关键信息,从而实现高精度的任务执行。深度学习通过多层神经网络结构及其训练方式,实现了从低级像素级别到高级概念级别的递进式知识层次。 深度学习的主要组件包括输入层、隐藏层和输出层。隐藏层的数量和层数决定了模型的复杂度和表达能力。在训练过程中,权重更新和梯度下降法是关键步骤,目的是最小化损失函数,提高预测精度。深度学习主要基于反向传播算法(BP Algorithm)来优化模型参数,通过正向传播、损失计算、反向传播和梯度下降等
24 8
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
【深度学习】AudioLM音频生成模型概述及应用场景,项目实践及案例分析
AudioLM(Audio Language Model)是一种基于深度学习的音频生成模型,它使用自回归或变分自回归的方法来生成连续的音频信号。这类模型通常建立在Transformer架构或者类似的序列到序列(Seq2Seq)框架上,通过学习大量音频数据中的统计规律,能够生成具有高保真度和创造性的音频片段。AudioLM模型不仅能够合成音乐、语音,还能生成自然界的声音、环境噪声等,其应用广泛,涵盖了娱乐、教育、辅助技术、内容创作等多个领域。
9 1
|
2月前
|
机器学习/深度学习 自然语言处理 算法
m基于深度学习的OFDM+QPSK链路信道估计和均衡算法误码率matlab仿真,对比LS,MMSE及LMMSE传统算法
**摘要:** 升级版MATLAB仿真对比了深度学习与LS、MMSE、LMMSE的OFDM信道估计算法,新增自动样本生成、复杂度分析及抗频偏性能评估。深度学习在无线通信中,尤其在OFDM的信道估计问题上展现潜力,解决了传统方法的局限。程序涉及信道估计器设计,深度学习模型通过学习导频信息估计信道响应,适应频域变化。核心代码展示了信号处理流程,包括编码、调制、信道模拟、降噪、信道估计和解调。
56 8
|
3月前
|
机器学习/深度学习 算法
m基于深度学习的QPSK调制解调系统频偏估计和补偿算法matlab仿真
MATLAB 2022a中展示了基于深度学习的QPSK调制解调系统频偏估计和补偿算法仿真结果。该算法运用神经网络模型实时估计并补偿无线通信中的频率偏移。QPSK调制将二进制信息映射到四个相位状态,解调通常采用相干解调。深度学习算法通过预处理、网络结构设计、损失函数选择和优化算法实现频偏估计。核心程序生成不同SNR下的信号,比较了有无频偏补偿的误码率,显示了补偿效果。
44 1
|
3月前
|
机器学习/深度学习 算法
m基于深度学习的32QAM调制解调系统频偏估计和补偿算法matlab仿真
MATLAB 2022a仿真实现了32-QAM系统的频偏估计与补偿。通过比较传统方法(如循环谱法和最大似然)与深度学习方法,展示了后者如何利用CNN直接预测频偏。深度学习模型包括信号预处理、特征提取和频偏预测,采用均方误差损失函数进行训练优化。核心程序生成信号,应用AWGN,然后用深度学习估计和补偿频偏,最终比较了有无补偿的误码率性能。
57 8
|
3月前
|
机器学习/深度学习 算法
m基于深度学习的16QAM调制解调系统频偏估计和补偿算法matlab仿真
在MATLAB 2022a中进行的算法仿真展示了16-QAM调制信号的频偏补偿效果。通过深度学习技术估计和补偿频偏,以改善通信系统的解调精度。核心程序包括信号生成、噪声添加、深度学习相位估计以及解调过程,比较了有无频偏补偿时的误码率性能。在不同信噪比条件下,应用深度学习的频偏补偿能有效降低误码率,提高通信质量。
79 1

热门文章

最新文章