人体姿态估计算法
人体姿态估计算法
- 1 什么是人体姿态估计
- 2 基于经典传统和基于深度学习的方法
- 2.1 基于经典传统的人体姿态估计算法
- 2.2 基于深度学习的人体姿态估计算法
- OpenPose
- AlphaPose (RMPE)
- 3 算法应用
- 4 Paper
人体姿态估计在现实中的应用场景很丰富,如下
动作捕捉:三维特效场景
人机交互:动作控制、手势控制
VR, AR:元宇宙数字人、抖音尬舞机、3D试衣、虚拟主播
肢体语言理解:机场、交警警察手势翻译、手语翻译
摔倒检测、健身、跳舞、球类、武术运动指导、穴位定位
步态分析、识别身份、异常动作识别
其中关键点检测是最开始的一步,本文主要对第一步的关键点检测进行一个概述,方便大家更快速的了解这里面涉及到的算法原理,属于科普文章。
1 什么是人体姿态估计
人体姿态估计(Human Pose Estimation, HPE) 是一种识别和分类人体关节的方法。本质上,它是一种捕获每个关节(手臂、头部、躯干等)的一组坐标的方法,该坐标被称为可以描述人的姿势的关键点(keypoint)。
人体姿势估计模型主要有三种类型: 这三种类型是随着应用逐步发展出来的,先检测关键点,类似于火柴人,进一步的检测出人的轮廓,再根据轮廓进一步的把人体进行3D重建。
-
基于骨架的模型(Skeleton-based model): 也称为运动学模型,该模型包括一组关键点(关节),例如脚踝、膝盖、肩膀、肘部、手腕和肢体方向,主要用于 3D 和 2D 姿势估计。
这种灵活直观的人体模型包含人体的骨骼结构,经常用于捕捉不同身体部位之间的关系。
-
基于轮廓的模型(Contour-based model): 也称为平面模型,用于二维姿态估计,由身体、躯干和四肢的轮廓和粗略宽度组成。 基本上,它代表人体的外观和形状,其中身体部位用人的轮廓的边界和矩形显示。
一个著名的例子是主动形状模型(ASM),它采用主成分分析(PCA)技术捕获整个人体图形和轮廓变形。
-
基于体积的模型(Volume-based model): 也称为体积模型,用于 3D 姿态估计。 它由多个流行的 3D 人体模型和由人体几何网格和形状表示的姿势组成,通常用于基于深度学习的 3D 人体姿势估计。
2 基于经典传统和基于深度学习的方法
2.1 基于经典传统的人体姿态估计算法
早期人体姿态估计的经典传统方法是在“图结构框架(pictorial structure framework , PSF)”内应用随机森林。 该模型的特点在于引入人体生理结构作为先验知识,人体被预先表示为多个具有空间约束的部位,且每个部分都被看作是刚体。即先识别人体身体部位,再识别姿势。
本质上,PSF 的目标是将人体表示为给定输入图像中每个身体部位的坐标集合; PSF 使用非线性联合回归器,理想情况下是两层随机森林回归器。
PSF优势在于当输入图像具有清晰可见的肢体时,这些模型效果很好,但是它们无法捕获和建模隐藏或从某个角度不可见的肢体。
为了克服这些问题,使用了诸如面向直方图的高斯(HOG)、轮廓、直方图等特征构建方法。 尽管使用了这些方法,但经典模型缺乏准确性、相关性和泛化能力。
2.2 基于深度学习的人体姿态估计算法
在计算机视觉任务方面,在HPE中,跟其他任务一样,深度卷积神经网络 (CNN) 的出现导致算法效果开启了腾飞模式。
- CNN 能够从给定的输入图像中提取特征,其精度和准确性比任何其他算法都更高;
- CNN泛化能力强(如果给定的隐藏层中存在足够数量的节点);
- 相比传统经典方法,传统方法中的特征提取、模版是人工制作的,人工设计的特征鲁棒性很差,学习到的特征复杂度有限。而且不一定是科学的,光照条件、拍摄角度等一变化,可能会导致检测失败。
Toshev等人于2014年首次使用CNN来估计人体姿势,从基于经典的方法转向基于深度学习的方法,发布的论文命名为 DeepPose: Human Pose Estimation via Deep Neural Networks.
作者还提出了另一种方法,他们实现了此类回归器的级联,以获得更精确和一致的结果。 他们认为,所提出的深度神经网络可以以整体方式对给定数据进行建模,即网络具有对隐藏姿势进行建模的能力,这对于经典方法来说是不正确的。
随着深度学习的发展,同时也带来了新的挑战,其中之一是解决多人姿态估计。深度学习在估计单人姿态方面很熟练,但是估计多人姿态时却很困难,原因是一张图像可以包含多个处于不同位置的人,随着人数的增加,相互之间的相互作用增加导致计算复杂性。计算复杂性的增加通常会导致实时推理时间的增加。
为了解决以上问题,引入了两个方法:Top Down和Bottom Up。
- Top Down:自顶向下,即先检测每个人的框,再每个人再单独预测关键点;
- Bottom Up:自底向上,即先检测所有关键点,再组装成每个人
OpenPose
是一种自底而上的方法,网络首先检测图像中的身体部位或关键点,然后组装成一个人。OpenPose 使用多级联的 CNN 作为主要架构,由 VGG-19 卷积网络组成,用于特征提取。
预测分支有两个:
1. 第一个分支预测每个身体部位的置信度图;
2. 第二个分支预测部位亲和力场 (Part Affinity Field, PAF),将不同部位关联起来组成一个人。
OpenPose pipeline如下:
AlphaPose (RMPE)
采用自顶而下的方法,会在预测过程中产生大量定位错误和不准确性。
例如,上图显示了两个边界框,红色框代表真实值,而黄色框代表预测边界框。
在分类方面,黄色边界框将被视为对人类进行分类的“正确”边界框,即使使用“正确”的边界框,也无法估计人体姿势。
AlphaPose 的作者通过两步框架解决了人体检测不完美的问题。 在此框架中,他们引入了两个网络:
对称空间变换网络(SSTN): 有助于在输入中裁剪出适当的区域,从而简化分类任务,从而获得更好的性能。
单人姿势估计器(SPPE): 用于提取和估计人体姿势。
AlphaPose 的目标是通过将 SSTN 附加到 SPPE,从不准确的边界框中提取高质量的单人区域。 该方法通过解决不变性问题来提高分类性能,同时提供稳定的框架来估计人体姿势。
3 算法应用
动作捕捉:三维特效场景
人机交互:动作控制、手势控制
VR, AR:元宇宙数字人、抖音尬舞机、3D试衣、虚拟主播
肢体语言理解:机场、交警警察手势翻译、手语翻译
摔倒检测、健身、跳舞、球类、武术运动指导、穴位定位
步态分析、识别身份、异常动作识别
4 Paper
把一些经典的算法paper列举在下面,供大家参考:
- DeepPose: Human Pose Estimation via Deep Neural Networks. CVPR, 2014 首个使用深度卷积神经网络实现人体姿态估计, regression方法
- Efficient Object Localization Using Convolutional Networks, CVPR, 2015 首个使用heatmap方法
- OpenPose 经典多人姿态估计方法, Bottom-Up
- RMPE: Regional Multi-person Pose Estimation, 2018 Top-Down
- DeepCut: Joint Subset Partition and Labeling for Multi Person Pose Estimation Bottom-Up方法
- Mask R CNN 人体检测和关键点检测独立并行, 类似Top-Down方法
- Simple Baselines for Human Pose Estimation and Tracking,EECV, 2018
- HRNet: Deep High-Resolution Representation Learning for Visual Recognition
- RLE: Human Pose Regression with Residual Log-likelihood Estimation
相关文章:

人体姿态估计算法
人体姿态估计算法 1 什么是人体姿态估计2 基于经典传统和基于深度学习的方法2.1 基于经典传统的人体姿态估计算法2.2 基于深度学习的人体姿态估计算法OpenPoseAlphaPose (RMPE) 3 算法应用4 Paper 人体姿态估计在现实中的应用场景很丰富,如下 动作捕捉:三…...

docker部署jupyter
文章目录 1.搜索镜像2.拉取镜像3.创建挂载4.运行容器4.查看容器运行运行状态5.token查看6.访问jupyter 1.搜索镜像 docker search jupyter: 命令用于在 Docker Hub 上搜索名为 “jupyter” 的镜像。搜索结果显示了一个名为 “jupyter/datascience-notebook” 的镜像࿰…...

音视频的功耗优化
前言 在应用中,录制与音视频模块往往是高耗能的模块,设备容易发热,影响体验。 什么是功耗优化 手机有多个耗电模块, SOC(CPU,GPU,DDR),Display,Audio,Video࿰…...

Python实现FA萤火虫优化算法优化XGBoost回归模型(XGBRegressor算法)项目实战
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 萤火虫算法(Fire-fly algorithm,FA)由剑桥大学Yang于2009年提出 , …...
SCAUoj综合性实验
Last One ! 文章目录 1109 综合实验:文件操作与字符处理总结 1109 综合实验:文件操作与字符处理 时间限制:4000MS 代码长度限制:10KB 提交次数:6265 通过次数:1646 题型: 填空题 语言: GCC Description 在当前目录中存在文件名为"case1.in"&…...

智加科技获全国首张重卡无人驾驶开放道路测试牌照
2023年12月1日,智加科技获得苏州市智能网联汽车无人化测试牌照。该牌照也是江苏省及国内首张无人重卡开放高速公路全路段全场景全息路网(S17苏台高速)道路测试牌照。 该重卡无人驾驶开放道路测试牌照,经由苏州市智能网联汽车联席小…...

LLM大语言模型(一):ChatGLM3-6B本地部署
目录 前言 本机环境 ChatGLM3代码库下载 模型文件下载 修改为从本地模型文件启动 启动模型网页版对话demo 超参数设置 GPU资源使用情况 (网页对话非常流畅) 前言 LLM大语言模型工程化,在本地搭建一套开源的LLM,方便后续的…...

chatgpt prompt提示词
chatgpt的接口是一个标准的http请求,请求的url为 POST https://api.openai.com/v1/chat/completions 官方的接口文档地址为:https://platform.openai.com/docs/api-reference/chat/create Example request curl https://api.openai.com/v1/chat/comp…...
【PyTorch】数据集
文章目录 1. 创建数据集1.1. 直接继承Dataset类1.2. 使用TensorDataset类 2. 数据集的划分3. 加载数据集4. 将数据转移到GPU 1. 创建数据集 主要是将数据集读入内存,并用Dataset类封装。 1.1. 直接继承Dataset类 必须要重写__getitem__方法,用于根据索…...
oops-framework框架 之 本地存储(五)
引擎: CocosCreator 3.8.0 环境: Mac Gitee: oops-game-kit 注: 作者dgflash的oops-framework框架QQ群: 628575875 简介 在CocosCreator中,本地存储主要使用sys.localStorage 接口,通过 key-value的格式进…...
编程常见的问题
在现代社会中,编程已经成为一项非常重要的技能。随着科技的不断发展和普及,计算机已经渗透到我们生活的方方面面,从个人电脑、手机到智能家居、自动驾驶等。编程作为计算机科学的基础,为我们提供了解决问题和创造新事物的工具和方…...
针对Arrays.asList的坑,可以有哪些处理措施
上文讲述:Error querying database. Cause: java.lang.reflect.InaccessibleObjectException: 那么如果真的只习惯用Arrays.asList,那也是有对应的解决办法的。 一、解决办法大方向 不管做什么事情,都是先判定一个大方向,不管是…...

SE考研真题总结(一)
本帖开始分享考研真题中设计【软件工程】的部分,预计会出5期左右,敬请期待~ 一.单选题 1.程序编写不是软件质量保障过程~ 静态代码扫描是今年来多数被人提及的软件应用安全解决方案之一,指程序员在编写好代码后无需进行编译,直接…...
Xshell远程登录AWS EC2 Linux实例
文章目录 小结问题解决参考 小结 Xshell远程登录AWS EC2 Linux实例碰到些问题,进行解决并记录。 问题 在AWS中创建 EC2 Linux实例,生成的非对称密钥对,使用Xshell远程登录碰到一些问题。 解决 首先在Putty中可以使用的ppk密钥文件在Xshe…...

Elasticsearch:对时间序列数据流进行降采样(downsampling)
降采样提供了一种通过以降低的粒度存储时间序列数据来减少时间序列数据占用的方法。 指标(metrics)解决方案收集大量随时间增长的时间序列数据。 随着数据老化,它与系统当前状态的相关性越来越小。 降采样过程将固定时间间隔内的文档汇总为单…...

python自动化测试框架:unittest测试用例编写及执行
本文将介绍 unittest 自动化测试用例编写及执行的相关内容,包括测试用例编写、测试用例执行、测试报告等内容。 官方文档: https://docs.python.org/zh-cn/3/library/unittest.mock.html 1. 测试用例编写 在 unittest 中,一个测试用例通常…...

ctfhub技能树_web_web前置技能_HTTP
目录 一、HTTP协议 1.1、请求方式 1.2、302跳转 1.3、Cookie 1.4、基础认证 1.5、响应包源代码 一、HTTP协议 1.1、请求方式 注:HTTP协议中定义了八种请求方法。这八种都有:1、OPTIONS :返回服务器针对特定资源所支持的HTTP请求方法…...

mysql8报sql_mode=only_full_group_by(存储过程一直报)
1:修改数据库配置(重启失效) select global.sql_mode;会打印如下信息 ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION里面包含 ONLY_FULL_GROUP_BY,那么就重新设置,在数据库中输入以下代码,去掉ONLY_FULL_GROU…...

Vue2中v-html引发的安全问题
前言:v-html指令 1.作用:向指定节点中渲染包含html结构的内容。 2.与插值语法的区别: (1).v-html会替换掉节点中所有的内容,{{xx}}则不会。 (2).v-html可以识别html结构。 3.严重注意:v-html有安全性问题࿰…...
java内部类详解
文章目录 一、介绍二、为什么要使用内部类三、非静态内部类四、静态内部类五、局部内部类六、匿名内部类七、lambda表达式内部类八、成员重名九、序列化十、如何选择内部类 一、介绍 在java中,我们被允许在编写一个类(外部类OuterClass)时,在其内部再嵌…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
python爬虫——气象数据爬取
一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用: 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests:发送 …...