Tau-J/rtmlib
RTMPose series (RTMPose, DWPose, RTMO, RTMW) without mmcv, mmpose, mmdet etc.
rtmlib – 軽量なポーズ推定ライブラリ
何であるか – rtmlib は、人間および動物のポーズ推定を、人気のある RTMPose および ViTPose モデルで行うための非常に小さな Python パッケージです。OpenMMLab の重いスタック(mmcv, mmpose, mmdet, …)を導入せずに済みます。依存関係は 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 |
検出器 + ポーズ推定器を1つの呼び出し可能なオブジェクトに統合し、キーポイントと信頼度スコアを返します。 |
| ユーティリティ | 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(1段階)バージョン。
- 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 を出版物で使用する場合、元の RTMPose / ViTPose の論文と rtmlib の GitHub URL を、README の 引用 セクションに従って引用してください。
結論 – rtmlib は最先端のポーズ推定モデルをクリーンで依存関係の少ないラッパーとして提供し、準備済みの高レベル API、小さなモデルズー、および高速推論のためのオプションの GPU/アクセラレータバックエンドを備えています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト