【论文解读】CVPR2023 PoseFormerV2:3D人体姿态估计(附论文地址)

news2025/6/2 16:25:48

论文链接:https://arxiv.org/pdf/2303.17472

源码链接:https://github.com/QitaoZhao/PoseFormerV2

Abstract

本文提出了 PoseFormerV2,通过探索频率域来提高 3D 人体姿态估计的效率和鲁棒性。PoseFormerV2 利用离散余弦变换(DCT)将骨骼序列转换为低频系数,显著减少了计算量并提高了对噪声的抵抗力。实验表明,PoseFormerV2 在速度-精度权衡和鲁棒性方面显著优于 PoseFormer 和其他 Transformer 方法。

Introduction

  • 目标:3D 人体姿态估计(HPE)旨在通过单目视频或 2D 关节序列估计人体关节的三维位置。

  • 主流方法:随着 2D 姿态检测器的普及和 2D 表示的轻量性,2D-to-3D lifting 方法成为主流。

  • Transformer 的优势:Transformer 方法因其在建模离散关节和长时序依赖方面的优势,成为 3D 姿态估计的首选。

  • 现有问题

    • 处理长序列时计算负担重。

    • 对噪声 2D 检测缺乏鲁棒性。

  • 具体问题示例:PoseFormer 在 Human3.6M 数据集上使用真实 2D 检测时 MPJPE 为 31.3 mm,而使用 CPN 检测时性能下降至 44.3 mm。

  • 解决方案:PoseFormerV2 引入频率域表示,通过离散余弦变换(DCT)将长序列压缩为低频系数,显著减少计算量并增强鲁棒性。

  • 实验结果:PoseFormerV2 在速度和精度上优于其他方法,包括原始 PoseFormer 和其他 Transformer 变体。

Related Work

Transformer-based 3D Human Pose Estimation

  • oseFormer:首个将 Transformer 应用于 3D 人体姿态估计的方法,通过时空编码器提取特征,显著优于传统卷积方法。

  • 效率问题:PoseFormer 在处理长序列时效率低下,计算负担随帧数增加而显著增加。

  • 鲁棒性问题:PoseFormer 对噪声 2D 关节检测敏感,性能受 2D 检测质量影响较大。

  • 后续改进

    • MHFormer:引入多假设生成技术,模拟身体部位的深度模糊和 2D 检测器的不确定性,提升鲁棒性。

    • P-STMO:采用掩码关节建模技术,通过自监督学习提高性能。

    • StridedTransformer:通过步进卷积减少计算量,但牺牲了部分性能。

    • Einfalt et al.:通过下采样输入视频帧减少计算量,但可能影响精度。

  • 现存问题:尽管有改进,但现有方法仍未同时解决效率和鲁棒性问题。

Frequency Representation in Vision

  • 频率域表示:在计算机视觉中已有广泛应用,如 JPEG 图像压缩和基于 DCT 的特征提取。

  • 低频系数的作用

    • 捕捉输入序列的主要特征。

    • 过滤高频噪声,提升模型对噪声的抵抗力。

  • PoseFormerV2 的创新

    • 将频率域表示应用于 3D 人体姿态估计。

    • 通过离散余弦变换(DCT)将骨骼序列转换为低频系数,显著减少计算量。

    • 提出时间-频率特征融合模块,结合时间域和频率域特征,提升模型性能。

Method

Preliminaries of PoseFormerV1

  • 特征提取分阶段:PoseFormerV1 将 2D 关节序列的特征提取分为两个阶段:

    • 空间编码器:用于建模单帧内关节关系,捕捉帧内关节的相互依赖。

    • 时间编码器:用于建模跨帧人体运动,捕捉帧间的时间依赖。

  • 计算复杂度:PoseFormerV1 在处理长序列时计算复杂度高,因为自注意力机制对所有帧进行密集建模。

  • 对噪声敏感:PoseFormerV1 对 2D 关节检测噪声敏感,性能受输入质量影响较大。

PoseFormerV2

Frequency Representation of Skeleton Sequence

  • 离散余弦变换(DCT):PoseFormerV2 通过 DCT 将骨骼序列转换为低频系数,利用少量低频系数表示整个序列。

  • 减少输入长度:低频系数显著减少了输入长度,降低了计算复杂度。

  • 过滤高频噪声:低频系数过滤了高频噪声,增强了模型对噪声的抵抗力。

  • 实验验证:实验表明,仅需少量低频系数即可捕捉序列的主要特征,同时保持较高的精度。

Architecture

  • 空间 Transformer 编码器

    • 仅处理少量中心帧,减少计算量。

    • 提取帧内关节的高维特征。

  • 时间-频率特征融合模块

    • 结合时间域和频率域特征,增强模型对长序列的处理能力。

    • 使用 FreqMLP 调整频率特征权重,补充时间域特征的细节信息。

  • 回归头

    • 通过 1D 卷积层聚集时间信息。

    • 输出中心帧的 3D 姿态。

  • 整体优势:PoseFormerV2 在时间域和频率域之间进行有效的特征融合,显著减少了计算量,同时保持了更好的速度-精度权衡。

Experiments

Datasets and Evaluation Metrics

数据集

Human3.6M:最常用的室内 3D 姿态估计数据集,包含 11 名演员的 15 种动作,从 4 个不同视角拍摄,共 360 万帧。

MPI-INF-3DHP:更具挑战性的室内外场景数据集,包含复杂背景和多种动作,提供 6 个不同场景的测试集。

评价指标

MPJPE(Mean Per Joint Position Error):预测的 3D 姿态与真实值之间的平均欧几里得距离。

P-MPJPE(Procrustes Mean Per Joint Position Error):对预测的 3D 姿态进行刚性对齐后的 MPJPE。

PCK(Percentage of Correct Keypoints):在 150mm 范围内的正确关节点的百分比。

AUC(Area Under Curve):曲线下面积。

Implementation Details and Analysis

实现框架

基于 PyTorch,使用 AdamW 优化器,学习率设置为 8e-4,并采用指数衰减策略。

超参数调整

输入帧数(f)和 DCT 系数数量(n)是关键超参数,实验中通过调整这些参数展示了模型在速度和精度之间的灵活权衡。

例如,当 f = 3、n = 3 时,模型在 Human3.6M 数据集上达到了 47.9 mm 的 MPJPE,计算量为 117.3 MFLOPs。

硬件配置

实验在单个 NVIDIA RTX 3090 GPU 上进行,支持高效的训练和推理。

Comparisons with State-of-the-art Methods

Human3.6M 数据集

PoseFormerV2

81 帧输入,77.2 MFLOPs,MPJPE 为 47.6 mm。

243 帧输入,1054.8 MFLOPs,MPJPE 为 45.2 mm。

其他方法

PoseFormerV1:81 帧输入,1.36 GFLOPs,MPJPE 为 47.0 mm。

MHFormer:81 帧输入,342.9 MFLOPs,MPJPE 为 47.8 mm。

P-STMO:243 帧输入,493 MFLOPs,MPJPE 为 45.6 mm。

结论

PoseFormerV2 在速度和精度之间取得了更好的权衡,尤其是在处理长序列时表现出更高的效率。

MPI-INF-3DHP 数据集

PoseFormerV2

PCK 为 97.9%,AUC 为 78.8%,MPJPE 为 27.8 mm。

其他方法

PoseFormerV1:PCK 为 95.4%,AUC 为 63.2%,MPJPE 为 57.7 mm。

P-STMO:PCK 为 97.9%,AUC 为 75.8%,MPJPE 为 32.2 mm。

结论

PoseFormerV2 在 MPI-INF-3DHP 数据集上也取得了最佳性能,验证了其在复杂场景下的鲁棒性和准确性。

Ablation Study

逐步改进

原始 PoseFormerV1:9 帧输入,MPJPE 为 49.9 mm。

引入低频 DCT 系数:81 帧输入,MPJPE 降低到 47.1 mm。

引入 FreqMLP:MPJPE 进一步降低到 46.0 mm。

输入帧数和 DCT 系数数量的影响

实验证明,增加输入帧数和 DCT 系数数量可以显著提高精度。例如,使用 3 个中心帧和 9 个 DCT 系数时,MPJPE 为 47.9 mm,计算量为 117.3 MFLOPs。

结论

仅需少量中心帧和低频系数即可显著提高精度和鲁棒性,同时保持较低的计算量。

Generalization Ability

推广到其他方法

MixSTE:引入低频 DCT 系数后,MPJPE 从 46.2 mm 降低到 45.3 mm,计算量从 30.8 GFLOPs 降低到 15.4 GFLOPs。

MHFormer:引入低频 DCT 系数后,鲁棒性显著提升,计算量减少。

结论

PoseFormerV2 的频率域表示方法可以推广到其他 Transformer 基方法,显著提升效率和鲁棒性。

Conclusion

PoseFormerV2 通过引入频率域表示,显著提高了 3D 人体姿态估计的效率和鲁棒性。具体贡献如下:

效率提升:PoseFormerV2 利用离散余弦变换(DCT)将长骨骼序列压缩为低频系数,显著减少了输入长度和计算量。实验表明,PoseFormerV2 在处理长序列时的计算效率远高于其他方法,例如在 81 帧输入下仅需 77.2 MFLOPs,而 MHFormer 需要 342.9 MFLOPs。

鲁棒性增强:低频系数过滤了高频噪声,增强了模型对噪声 2D 关节检测的抵抗力。实验表明,PoseFormerV2 在噪声环境下仍能保持较高的估计精度。

性能提升:在 Human3.6M 和 MPI-INF-3DHP 两个基准数据集上,PoseFormerV2 均取得了优于其他 Transformer 基方法的性能,验证了其在速度和精度之间的良好权衡。

通用性:PoseFormerV2 的方法可以推广到其他 Transformer 基方法,如 MixSTE 和 MHFormer,通过引入低频 DCT 系数,这些方法在效率和鲁棒性方面也得到了提升。

Future Work

自动优化超参数:目前,PoseFormerV2 的超参数(如输入帧数和 DCT 系数数量)是基于实验结果手动调整的。未来工作将探索如何将这些参数设置为可学习的,从而自动优化模型性能。

扩展到其他任务:PoseFormerV2 的频率域表示方法不仅适用于 3D 人体姿态估计,还可以推广到其他需要处理长序列的任务,如动作识别和行为分析。

理论分析:进一步理论分析频率域表示在 3D 姿态估计中的优势,为未来的研究提供更深入的理论支持。

PoseFormerV2 为 3D 人体姿态估计领域提供了新的视角,通过频率域表示解决了效率和鲁棒性问题,为实际应用提供了更强大的工具。

硬性的标准其实限制不了无限可能的我们,所以啊!少年们加油吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2394465.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Maven工程演示

软件:idea 一、项目创建 操作截图file -> New -> Projectnextnext -> Name:工程名称;Location:项目路径;项目创建完成;文件夹基本样例:(如果不完整自己创建即可)MANIFEST.MF内容 二、导入依赖 …

uniapp分包配置,uniapp设置subPackages

在使用uniapp开发过程中,由于项目比较大,无法直接上传,需要分包后才可以上传。 步骤: 1、在pages同级目录下创建分包的目录(pages_second),把要分包的文件放到该目录下; 2、在pag…

C++八股 —— 手撕线程池

文章目录 一、背景二、线程池实现1. 任务队列和工作线程2. 构造和析构函数3. 添加任务函数4. 完整代码 三、阻塞队列实现1. 基础队列2. 升级版队列 四、测试代码五、相关问题六、其他实现方式 来自:华为C一面:手撕线程池_哔哩哔哩_bilibili 华为海思&am…

RPA如何支持跨平台和跨浏览器的自动化

RPA,即机器人流程自动化(Robotic Process Automation),正日益成为企业实现业务流程高效自动化的关键技术。在复杂的数字化环境中,跨平台和跨浏览器的自动化需求极为迫切,RPA 通过多种技术手段和策略来满足这…

【笔记】Windows 成功部署 Suna 开源的通用人工智能代理项目部署日志

#工作记录 本地部署运行截图 kortix-ai/suna: Suna - 开源通用 AI 代理 项目概述 Suna 是一个完全开源的 AI 助手,通过自然对话帮助用户轻松完成研究、数据分析等日常任务。它结合了强大的功能和直观的界面,能够理解用户需求并提供结果。其强…

Linux531rsync定时同步 再回忆

rsync定时同步 环境配置 关闭防火墙,selinux systemctl stop firewalld systemctl disable firewall setenforce 0 cat /etc/selinux/configpei SELINUXdisable设置主机名 systemctl set-hostname code systemctl set-hostname backup设置静态IP rsync由于要设…

【KWDB 创作者计划】_探秘浪潮KWDB数据库:从时间索引到前沿技术

探秘浪潮KWDB数据库:从时间索引到前沿技术 文章目录 探秘浪潮KWDB数据库:从时间索引到前沿技术引言1.浪潮KWDB数据库时间索引深度解析1.1时间索引工作原理1.2时间索引创建与管理实践 2.浪潮KWDB数据库前沿产品技术纵览2.1多模融合存储引擎2.2就地计算技术…

安卓逆向篇LSP 模块HOOK 添加技术绕过检测算法解密逻辑验证

前置解释: 0 、 Magisk : 是当前 Android 社区用来获取 root 权限的主流方式开源工具 1 、 LSP 框架: XPosed 框架因只支持安卓 8 及以下,故高版本应使用 MagiskLSPosed 2 、 HOOK 技术: 钩子技术&…

第一节 51单片机概述

目录 一、单片机系统组成 (一)、单片机硬件系统 (二)单片机的软件系统 二、STC89C52单片机 (1)、基本信息 (2)、命名规则 (3)、单片机内部结构图 &am…

Google car key:安全、便捷的汽车解锁新选择

有了兼容的汽车和 Android 手机,Google car key可让您将Android 手机用作车钥匙。您可以通过兼容的 Android 手机锁定、解锁、启动汽车并执行更多功能。但是,Google car key安全吗?它是如何工作的?如果我的手机电池没电了怎么办&a…

720全景展示:VR全景的技术原理及应用

VR720全景展示:技术原理及应用探索 720全景技术,作为当前全球范围内迅速崛起流行的视觉新技术,为用户带来了全新的真实现场感和交互式的体验。凭借全方位、无死角的视觉展示特性,在VR(虚拟现实)领域中得到…

定制一款国密浏览器(13):预置国密根证书到浏览器

由于国密算法没有得到国外的认可,所以 Chromium、Firefox 等浏览器均不支持国密算法。即使我们修改了 Chromium 的源码,增加了国密算法的支持,但还不能在浏览器中正常使用。因为这涉及到证书的信任问题,国密证书都是国内厂商签发的,国密根证书并没有集成到系统和浏览器中。…

PowerBI企业运营分析——线性回归销售预测

PowerBI企业运营分析——线性回归销售预测 欢迎来到Powerbi小课堂,在竞争激烈的市场环境中,企业运营分析平台成为提升竞争力的核心工具。 该平台通过整合多源数据,实现关键指标的实时监控,从而迅速洞察业务动态,精准…

LangFuse:开源LLM工程平台的革新实践

文章目录 一 架构设计与技术栈二 增强型监控能力三 提示词工程支持(新增)四 性能优化实践五 LangFuse部署(docker)和代码集成5.1 LangFuse平台部署5.2 LangFuse代码集成和检测体验 一 架构设计与技术栈 LangFuse采用模块化架构设…

新视角!经济学顶刊QJE用文本分析探究新技术扩散

美国圣路易斯联邦储备银行Aakash Kalyani、美国斯坦福大学与国家经济研究局Nicholas Bloom、英国伦敦商学院Marcela Carvalho和其合作者们共同研究的“The Diffusion of New Technologies(新技术的扩散)”在顶刊The Quarterly Journal of Economics中发表…

5月31日day41打卡

简单CNN 知识回顾 数据增强卷积神经网络定义的写法batch归一化:调整一个批次的分布,常用与图像数据特征图:只有卷积操作输出的才叫特征图调度器:直接修改基础学习率 卷积操作常见流程如下: 1. 输入 → 卷积层 → Batch…

STM32G4 电机外设篇(一) GPIO+UART

目录 一、STM32G4 电机外设篇(一) GPIOUART1 GPIO1.1 STM32CUBEMX 配置以及Keil代码1.2 代码和实验现象 2 UART2.1 STM32CUBEMX 配置以及Keil代码2.2 代码和实验现象 附学习参考网址欢迎大家有问题评论交流 (* ^ ω ^) 一、STM32G4 电机外设篇&#xff0…

Lua 的速度为什么比 Python 快

Lua 的执行速度通常比 Python 快,主要原因在于其解释器设计轻量、虚拟机效率高、内存管理策略更为精简,以及语言本身对动态特性的控制较严。其中,Lua 使用了 register-based 的虚拟机架构,而 Python(CPython&#xff0…

【iOS】方法交换

方法交换 method-swizzling是什么相关API方法交换的风险method-swizzling使用过程中的一次性问题在当前类中进行方法交换类方法的方法交换 方法交换的应用 method-swizzling是什么 method-swizzling的含义是方法交换,他的主要作用是在运行的时候将一个方法的实现替…

数据结构:线性表的基本操作与链式表达

个人主页 文章专栏 成名之作——赛博算命之梅花易数的Java实现 陆续回三中,忘回漏回滴滴~感谢各位大佬的支持 一.线性表的定义和基本操作 1.1定义 线性表是具有相同数据类型的n个数据元素的有序数列,n为表长 第一个元素叫表头元素,除了他…