新闻中心

人体姿态估计:基于飞桨复现Hourglass

2025-07-24
浏览次数:
返回列表
本文基于飞桨复现Hourglass网络用于人体姿态估计,该网络通过多尺度特征融合输出关节概率热力图。在MPII数据集上,256x256和384x384尺寸下Mean@0.1分别达0.321、0.376,接近PyTorch版本,可用于动作识别等领域。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

人体姿态估计:基于飞桨复现hourglass -

人体姿态估计:基于飞桨复现Hourglass

1.简介

本项目基于PaddlePaddle复现《Stacked Hourglass Networks for Human Pose Estimation》论文,该论文提出了一种人体姿态估计的方法,在MPII数据集上达到如下精度:

size mean@0.1
384x384 0.366
256x256 0.317

本文介绍了一种新的用于人体姿态估计的卷积网络结构。所有尺度上进行特征的处理和融合,做优地捕捉与身体相关的各种空间关系。

人体姿态估计可以应用在很多领域:

1.动作识别,可以检测一个人是否摔倒或疾病,也可以用于健身、体育舞蹈等教学任务。

2.运动捕捉,可以通过人体姿态的估计,在计算机上渲染图形,例如电影特效。

3.训练机器人,可以让机器人跟随一个做特定动作的人体骨架。

2.模型介绍

Hourglass网络采用沙漏形状的设计是为了在每个尺度上捕捉信息。而本地证据对于识别人脸和手等特征至关重要。最终的姿势估计需要对整个身体有一个连贯的理解。人的方位、四肢的排列以及相邻关节的关系都是在图像中不同镜头下最容易识别的众多线索之一。Hourglass是一个简单的,最小的设计,有能力捕捉所有这些功能,并将它们结合起来输出像素级的预测。网络必须有某种机制来有效地处理和巩固跨尺度的数据特征。Hourglass网络选择使用带有跳过层的单一管道来保留每个分辨率下的空间信息。该网络的最低分辨率为4x4像素,允许应用更小的空间过滤器来比较整个图像空间的特征。Hourglass的设置如下:卷积和最大池化层用于处理低分辨率的特征,在每一个最大池化,网络分支,应用更多的卷积在已经做过池化操作的分辨率上。在达到最低分辨率后,网络开始自顶向下的上采样序列和跨尺度的特征组合。为了将两个相邻分辨率的信息聚合在一起,我们遵循Tompson等人所描述的过程,对较低分辨率进行最近邻上采样,然后对两组特征进行元素相加。Hourglass的拓扑结构是对称的,所以每向下呈现一层,就有相应向上的一层。在达到网络的输出分辨率后,使用两轮连续的1x1卷积来产生最终的网络预测结果。网络的输出是一组heatmap,对于给定的heatmap,网络预测各个关节在每个像素上存在的概率。


整个Hourglass 网络有多个Hourglass模块组成,允许重复的自底向上,自顶向下的推理预测

人体姿态估计:基于飞桨复现Hourglass -        

下图是一个Hourglass的单个模块,在整个Hourglass网络中,特征的数量是一致的

人体姿态估计:基于飞桨复现Hourglass -        

上图中的每一个方块都对应了一个redisdual模块,如下图所示

人体姿态估计:基于飞桨复现Hourglass -        

3.数据集下载

MPII:https://aistudio.baidu.com/aistudio/datasetdetail/107551

数据集解压。

In [1]
%cd /home/aistudio/data/
!tar xvf data107551/mpii.tar.gz
   

4.环境

PaddlePaddle == 2.1.2

python == 3.7

5. 训练

训练图像尺寸为256的模型。

In [4]
%cd /home/aistudio/paddle_pose/
!python -u train.py --dataset_root /home/aistudio/data/mpii/ --image_size 256
       
/home/aistudio/paddle_pose
=> num_images: 14679
=> load 22246 samples
=> num_images: 2729
=> load 2958 samples
W0927 11:25:46.927978   383 device_context.cc:404] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 10.1, Runtime API Version: 10.1
W0927 11:25:46.931859   383 device_context.cc:422] device: 0, cuDNN Version: 7.6.
       

训练图像尺寸为384的模型。

In [ ]
%cd /home/aistudio/paddle_pose/
!python -u train.py --dataset_root /home/aistudio/data/mpii/ --image_size 384
   

--image_size 指定训练出入的图片分辨率,根据验收指标这里可以输入256或384。

美图云修 美图云修

商业级AI影像处理工具

美图云修 50 查看详情 美图云修

--dataset_root 为数据集根目录,可以根据实际情况修改。

6.验证模型

1.预训练模型下载地址:

链接: https://pan.baidu.com/s/13urfrTeJueuXhn4MHcrQcw

提取码: w82w

2.下载模型后使用,下列命令验证模型。

验证图片为尺寸为256x256的模型:

In [ ]
!python val.py --image_size 256  --pretrained_model ./output/256_best_model/model.pdparams --dataset_root /home/aistudio/data/mpii/
   

验证结果:

[EVAL] Ankle=79.87761299600484 Elbow=89.09163062349077 Head=96.65757162346522 Hip=88.41959160211289 Knee=83.8608487080676 Mean=88.71714806141036 Mean@0.1=32.10772823107419 Shoulder=95.36345108695652 Wrist=83.77702302257738
       

验证图片为尺寸为384x384的模型:

In [ ]
!python val.py --image_size 384  --pretrained_model ./output/384_best_model/model.pdparams --dataset_root /home/aistudio/data/mpii/
   

验证结果:

[EVAL] Ankle=80.86913738917394 Elbow=89.89274782636988 Head=96.8281036834925 Hip=87.81370184355791 Knee=84.62623196807967 Mean=89.13869372885766 Mean@0.1=37.58782180867529 Shoulder=95.44836956521739 Wrist=84.889784060021
       

--image_size 指定训练出入的图片分辨率,根据验收指标这里可以输入256或384。

--pretrained_model 指定训练好的模型地址,可以根据实际情况修改。

--dataset_root 为数据集根目录,可以根据实际情况修改。

人体姿态估计:基于飞桨复现Hourglass -        

7.总结

以下表格是本次论文复现的结果。

Arch Input Size Mean@0.1 pytorch Mean@0.1
pose_hourglass_52 256x256 0.321 0.317
pose_hourglass_52 384x384 0.376 0.366

以上就是人体姿态估计:基于飞桨复现Hourglass的详细内容,更多请关注其它相关文章!


# 官网  # 深圳fb营销推广公司  # 苏州网站建设师  # seo内容优化做什么  # 怎么做网站优化排版设计  # 台州网站运营优化公司  # 网站推广优选乐云seo  # 扬中如何优化网站建设  # 网站建设服务合同协议  # 雕版邮票营销推广  # 虹口营销推广价格多少  # 多个  # 是在  # python  # 可以根据  # 是一个  # 实际情况  # 尺寸为  # 美图  # 一言  # 中文网  # udio  # red  # 排列  # ai  # redis 


相关栏目: 【 行业资讯67740 】 【 技术百科0 】 【 网络运营39195


相关推荐: 如何清理固态硬盘  300秒等于多少分钟  8800日元等于多少人民币  统计学中power值是什么意思  单片机怎么定义字符长度  vue项目如何用typescript  更换固态硬盘如何检查  市盈率回落是什么意思  HTML5如何引用typescript  市盈率高是什么意思  如何在一串数字前面去掉四位数的命令  typescript如何遍历map  春运抢票软件哪个最好用  typescript文件怎么打开  夸克高考为什么不靠谱  电焊机power灯亮是什么意思  datediff函数怎么用视频  单片机蓝牙怎么开启设备  固态硬盘坏了如何换硬盘  交管12123协议头不完整是啥意思  春运抢票可以抢几张  typescript中怎么引用js文件  路由器power灯一直亮是什么意思  type-c全能接口是什么意思  固态硬盘如何判断大小  宵衣旰食是什么意思  adb 命令如何后台运行  oppo手机nfc功能是什么意思  华为5g手机怎么用4g网络  如何在命令行执行存储过程  如何注释typescript  j*a怎么保存到数组  sqlite中datediff函数怎么用 SQLite中DATEDIFF()函数的用法分享  比亚迪秦nfc功能是什么意思  为什么选择typescript  内在市盈率是什么意思  空调控制面板power灯一直亮是什么意思  域名批量查询工具有哪些  如何查看电脑的固态硬盘  j*a数组求和怎么算  什么是夸克模组文件格式  docs命令如何进入d  如何学好typescript  市盈率tt的扣非是什么意思  什么是域名解析地址  j*a怎么创建json数组  如何以管理员身份打开cmd命令行窗口  虚拟机如何用命令清除垃圾  对象数组怎么用j*a  如何看固态硬盘型号 

搜索