rtmlib:轻量级姿态估计库
rtmlibRTMPose without mmcv, mmpose, mmdet etc.项目地址:https://gitcode.com/gh_mirrors/rt/rtmlib
项目介绍
rtmlib
是一个基于 RTMPose 模型的超轻量级姿态估计库,无需依赖 mmcv
、mmpose
或 mmdet
等大型库。它仅依赖于 numpy
、opencv-python
、opencv-contrib-python
和 onnxruntime
,使其成为一个非常轻量级的解决方案。此外,rtmlib
还支持多种后端加速推理过程,如 opencv
、onnxruntime
、openvino
和 tensorrt
。
项目技术分析
rtmlib
的核心技术优势在于其轻量级和高度模块化的设计。它通过使用 ONNX 模型,实现了高效的模型部署和推理。此外,rtmlib
提供了多种姿态估计模型,包括 Wholebody
、Body
和 PoseTracker
,以及对象检测模型如 YOLOX
和 RTMDet
。这些模型可以根据不同的应用场景和性能需求进行选择和配置。
项目及技术应用场景
rtmlib
适用于多种应用场景,包括但不限于:
- 人机交互:通过姿态估计实现手势控制或身体动作识别。
- 运动分析:用于体育训练中的动作捕捉和分析。
- 虚拟现实:在VR环境中进行身体姿态的实时跟踪。
- 安防监控:通过姿态估计进行异常行为检测。
项目特点
- 轻量级:无需依赖大型库,安装和运行都非常轻便。
- 多后端支持:支持
onnxruntime
、opencv
、openvino
等多种后端,便于根据硬件环境进行优化。 - 模块化设计:提供高层次的解决方案API和低层次的模型API,方便用户根据需求进行选择和扩展。
- 丰富的模型库:内置多种预训练模型,支持自动下载和缓存,方便用户快速部署和测试。
- 可视化工具:提供
draw_bbox
和draw_skeleton
等可视化工具,便于结果展示和调试。
通过 rtmlib
,开发者可以轻松实现高效的姿态估计功能,无论是在性能要求高的实时应用还是在资源受限的嵌入式设备上。立即尝试 rtmlib
,开启您的姿态估计之旅!
安装指南:
-
从 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 .
快速开始:
运行 webui.py
启动 Gradio 界面:
python webui.py
示例代码:
以下是一个简单的示例,展示如何使用 rtmlib
进行单张图片的姿态估计:
import cv2
from rtmlib import Wholebody, draw_skeleton
device = 'cpu' # cpu, cuda
backend = 'onnxruntime' # opencv, onnxruntime, openvino
img = cv2.imread('./demo.jpg')
openpose_skeleton = False # True for openpose-style, False for mmpose-style
wholebody = Wholebody(to_openpose=openpose_skeleton,
mode='balanced', # 'performance', 'lightweight', 'balanced'. Default: 'balanced'
backend=backend, device=device)
keypoints, scores = wholebody(img)
# visualize
img_show = draw_skeleton(img_show, keypoints, scores, kpt_thr=0.5)
cv2.imshow('img', img_show)
cv2.waitKey()
API 文档:
-
解决方案(高层次API):
Wholebody
Body
PoseTracker
-
模型(低层次API):
YOLOX
rtmlibRTMPose without mmcv, mmpose, mmdet etc.项目地址:https://gitcode.com/gh_mirrors/rt/rtmlib