Tau-J/rtmlib

RTMPose series (RTMPose, DWPose, RTMO, RTMW) without mmcv, mmpose, mmdet etc.

rtmlib – 轻量级姿态估计库

是什么rtmlib 是一个极小的 Python 包,可让你在不引入庞大的 OpenMMLab 堆栈(mmcv, mmpose, mmdet, …)的情况下,使用流行的 RTMPoseViTPose 模型进行人体和动物姿态估计。它仅依赖 numpyopencv-pythonopencv-contrib-pythononnxruntime,并可选择性地使用 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/加速器后端以实现快速推理。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目