PoseGRAF
PoseGRAF: Geometry-enhanced graph framework for 3D human pose estimation. Models bone direction-angle correlations via vector nodes and angular edges, adaptively fuses joint-bone features with topology-aware attention. Achieves 48.1mm MPJPE on Human3.6M.
Install / Use
/learn @iCityLab/PoseGRAFREADME
PoseGRAF: Geometric-Reinforced Adaptive Fusion...

📌 Introduction
PoseGRAF is a novel framework that addresses key challenges in monocular 3D human-pose estimation:
- Dual Graph Convolution – simultaneously processes joint and bone graphs under geometric constraints.
- Geometry-Aware Fusion – explicitly models the relationships between bone directions and joint angles.
- Dynamic Feature Integration – adaptively fuses positional and geometric features via attention.
- Topology-Enhanced Transformer – injects anatomical constraints directly into the transformer architecture.
PoseGRAF achieves state-of-the-art performance on standard benchmarks and generalises well to in-the-wild scenarios.
🚀 Key Results
| Metric | Dataset / Protocol | Result | |--------|-------------------|--------| | MPJPE | Human3.6M (CPN detections) | 48.1 mm | | P-MPJPE | Human3.6M | 38.3 mm | | PCK | MPI-INF-3DHP | 87.2 % |
PoseGRAF is robust to occlusion and fast motion.
📦 Installation
# Clone the repository
git clone https://github.com/iCityLab/PoseGRAF.git
cd PoseGRAF
# Create the conda environment
conda env create -f environment.yml
---
## 📝 Acknowledgements
This codebase builds on the excellent work below—many thanks to the authors for open-sourcing their projects.
* [DGFormer](https://github.com/czmmmm/DGFormer)
* [PoseFormer](https://github.com/zczcwh/PoseFormer)
* [GraphMLP](https://github.com/Vegetebird/GraphMLP)
* [MeTDDI](https://github.com/LabWeng/MeTDDI)
---
## 🏋️♂️ Training from Scratch
Logs, checkpoints and auxiliary files will be written to `./checkpoint`.
#### Human3.6M
```bash
python main.py --train --model PoseGRAF --layers 6 --nepoch 40 --gpu 0
*Note — our training script follows the convention of VideoPose3D. Please refer to their project page for further information.
🎬 Pose-Estimation Comparison
<p align="center"> <img src="PoseGRAF/images/dance.png" width="400" alt="2D pose"/> <img src="PoseGRAF/images/dance3D.png" width="400" alt="3D pose"/> </p>🌄 In-the-Wild Demo
1 · Install FFmpeg
Download the latest FFmpeg build from https://ffmpeg.org/download.html and ensure the executable is on your PATH.
2 · Create the Side-by-Side Comparison Video
# ❶ Convert 2D key-point renders to a video
ffmpeg -framerate 30 -start_number 0 -i "%04d_2D.png" -vf "scale=-2:872,fps=100" -c:v libx264 -crf 23 -pix_fmt yuv420p pose2D.mp4
# ❷ Convert 3D key-point renders to a video
ffmpeg -framerate 30 -start_number 0 -i "%04d_3D.png" -vf "scale=-2:872,fps=100" -c:v libx264 -crf 23 -pix_fmt yuv420p pose3D.mp4
# ❸ Concatenate the two videos horizontally
ffmpeg -i pose2D.mp4 -i pose3D.mp4 -filter_complex "hstack=inputs=2" -c:v libx264 -crf 23 -pix_fmt yuv420p pose_comparison.mp4
🕺 Animated Dance GIF

Related Skills
node-connect
354.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
112.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
354.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
354.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
