Tau-J/rtmlib
RTMPose series (RTMPose, DWPose, RTMO, RTMW) without mmcv, mmpose, mmdet etc.
rtmlib – 轻量级姿态估计库
是什么 – rtmlib 是一个极小的 Python 包,可让你在不引入庞大的 OpenMMLab 堆栈(mmcv, mmpose, mmdet, …)的情况下,使用流行的 RTMPose 和 ViTPose 模型进行人体和动物姿态估计。它仅依赖 numpy、opencv-python、opencv-contrib-python 和 onnxruntime,并可选择性地使用 OpenVINO、TensorRT 或支持 GPU 的 ONNX Runtime 以提升速度。
为何重要 – 姿态估计是 AR/VR、体育分析、机器人、动画以及众多 AI 驱动应用中的核心计算机视觉任务。通过去除庞大的 OpenMMLab 依赖,rtmlib 使得在轻量级环境(如简单脚本、Web UI 或边缘设备)中嵌入姿态推理变得极为容易,同时仍能访问最前沿的模型。
快速开始(单张图像)
import cv2
from rtmlib import Wholebody, draw_skeleton
img = cv2.imread('demo.jpg')
whole = Wholebody(
to_openpose=False, # False = mmpose 风格骨架
mode='balanced', # 'performance' | 'lightweight' | 'balanced'
backend='onnxruntime',
device='cpu'
)
keypoints, scores = whole(img)
img = draw_skeleton(img, keypoints, scores, kpt_thr=0.5, to_openpose=False)
cv2.imshow('pose', img)
cv2.waitKey(0)
相同的 API 也可通过 PoseTracker 类用于摄像头或视频流。
主要构建模块
| 层 | 类(高层) | 功能 |
|---|---|---|
| 检测器 | YOLOX, RFDETR, RTMDet |
检测图像中的人体(或任意 COCO 类别)。 |
| 姿态估计器 | RTMPose, ViTPose |
预测身体、手、全身或 3D 姿态的关键点坐标。 |
| 解决方案 | Wholebody, Body, Hand, Animal, Custom, Wholebody3d |
将检测器 + 姿态估计器组合成一个可调用对象,返回关键点和置信度分数。 |
| 工具 | draw_skeleton, draw_bbox |
在原始图像上可视化结果。 |
所有这些均可通过 mode 快捷方式(performance, lightweight, balanced)或显式传入 ONNX 模型 URL/路径来实例化。
模型库(自动下载)
检测器 – YOLOX 变体(nano, tiny, s, m, l, x),在 HumanArt+COCO(检测真实人类和卡通角色)或普通 COCO 上训练。
姿态估计器 – 数十种 ONNX 检查点:
- RTMPose(t, s, m, l, x):17关键点身体、21关键点手、26关键点 HALPE、133关键点全身,以及 3D 变体。
- 同等规模的 RTMO(单阶段)版本。
- ViTPose++(s, b, l):17关键点和 133关键点身体,以及 25关键点微调模型。
若原始 OpenMMLab 下载服务器不可达,库将自动回退至 HuggingFace 镜像(huggingface.co/Tau-J/RTMPose)。
安装方法
# 从 PyPI(推荐)
pip install rtmlib -i https://pypi.org/simple
# 或从源码安装
git clone https://github.com/Tau-J/rtmlib.git && cd rtmlib
pip install -r requirements.txt
pip install -e . # 可编辑安装
# 可选 GPU 后端
pip install onnxruntime-gpu openvino
Web UI
一个最小的 Gradio 界面(webui.py)允许你上传图像或从摄像头流中获取视频,并立即看到姿态叠加效果:
pip install gradio # 若尚未安装
python webui.py
UI 在后台使用相同的 Wholebody/draw_skeleton 流程。
典型应用场景
- 在研究笔记本或小型应用中快速原型化基于姿态的功能。
- 安装完整 OpenMMLab 堆栈不现实的边缘部署。
- 使用
Animal解决方案和 OpenPose 风格骨架进行鸟类、猫、狗、马等动物的姿态估计。 - 自定义流水线 – 通过低层
YOLOX,RTMPose,ViTPose类,接入任意 ONNX 检测器或姿态模型。
许可与引用
仓库遵循底层 OpenMMLab 模型的相同许可(请查看 LICENSE 文件)。若在出版物中使用 rtmlib,请按照 README 中 引用 部分的说明,引用原始 RTMPose / ViTPose 论文和 rtmlib GitHub URL。
总结 – rtmlib 为前沿姿态估计模型提供了干净、依赖轻量的封装,具备现成的高层 API、小型模型库,以及可选的 GPU/加速器后端以实现快速推理。
相关
- 项目
- 项目
- 项目
- 项目
- 项目