CV / MSPN Pose
MSPN RegNetX-800MF
MSPN単人姿勢推定、17個のCOCOキーポイント対応(reComputer Rシリーズ + Hailo-8 / Hailo-10H)
51 ダウンロード
サイズ
5.8 MBメモリ
4GB+精度
Hailo HEF / HailoRT使用しているデバイスを選択してください。セットアップガイドとドキュメントがそれに応じて更新されます。
はじめる
デプロイ
sudo docker run --rm \
--name cm5-hailo8-mspn-regnetx-800mf \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
-v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro \
-v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
ghcr.io/seeed-projects/recomputer-hailo8-cv/mspn_regnetx_800mf:latest \
python web_detection.py --model_path model/mspn_regnetx_800mf.hef --video_path video/test.mp4REST API
REST API を使用して推論を実行します。以下のコマンドをコピーしてください。
Curl
curl -X POST "http://<Board_IP>:8000/api/models/mspn_regnetx_800mf/predict" \
-F "file=@test.jpg"Python
import requests
resp = requests.post(
"http://<Board_IP>:8000/api/models/mspn_regnetx_800mf/predict",
files={"file": open("test.jpg", "rb")},
timeout=30,
)
print(resp.json())モデル詳細
reComputer RシリーズMSPN RegNetX-800MF(reComputer Rシリーズ CM5 + Hailo-8対応)
MSPN(Multi-Stage Pose Network)とRegNetX-800MFバックボーンにより、17個のCOCOキーポイントを用いた単人姿勢推定を実行します。HEFは64x48x17のヒートマップを出力し、アプリはチャネルごとにargmaxを取って入力空間にスケーリングし、COCOスケルトンを描画します。
このページはPCIe Hailo-8アクセラレータ搭載の**reComputer Rシリーズ(CM5 + Hailo-8)**を対象としています。
モデル情報
| 項目 | 値 |
|---|---|
| アーキテクチャ | MSPN + RegNetX-800MF |
| タスク | 単人姿勢推定 |
| 入力 | 256x192x3 RGB(normalize_in_net、ImageNet RGB) |
| 出力 | ヒートマップ 64x48x17(17個のCOCOキーポイント) |
| パラメータ数 | 7.17M |
| 演算量 | 2.94G |
| ハードウェアAP | 70.3% |
| FPS | 2126 |
| HEF | Hailo Model Zoo v2.19.0、Hailo-8 |
ハードウェアとホストのセットアップ
Hailo-8ドライバ、ファームウェア、ホストのlibhailort.so、イメージ内のPython wheelは、一致するHailoRTのメジャー/マイナーバージョン(4.23.x)を使用する必要があります。
bash
sudo apt update
sudo apt install hailort hailort-pcie-driver python3-hailort
sudo reboot
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0デモ動画で実行
bash
sudo docker run --rm \
--name cm5-hailo8-mspn-regnetx-800mf \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
-v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro \
-v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
ghcr.io/seeed-projects/recomputer-hailo8-cv/mspn_regnetx_800mf:latest \
python web_detection.py --model_path model/mspn_regnetx_800mf.hef --video_path video/test.mp4http://<Board_IP>:8000 を開くと、キーポイントのスケルトンが重ね表示されたWebプレビューを確認できます。
USBカメラモード
bash
sudo docker run --rm \
--name cm5-hailo8-mspn-regnetx-800mf \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
--device /dev/video0:/dev/video0 \
-v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro \
-v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
ghcr.io/seeed-projects/recomputer-hailo8-cv/mspn_regnetx_800mf:latest \
python web_detection.py --model_path model/mspn_regnetx_800mf.hef --camera_id 0REST API
bash
curl -X POST "http://<Board_IP>:8000/api/models/mspn_regnetx_800mf/predict" \
-F "file=@test.jpg"| エンドポイント | メソッド | 用途 |
|---|---|---|
/api/models/mspn_regnetx_800mf/predict | POST | 17個のCOCOキーポイント(JSON) |
/api/video_feed | GET | MJPEGプレビューストリーム |
実装の詳細
- ソースモジュール:
src/rpi5_hailo8_mspn_regnetx_800mf/ - Dockerfile:
docker/hailo8/mspn_regnetx_800mf.dockerfile normalize_in_net(ImageNet RGB平均/標準偏差)を内蔵。input_conversionなし —— letterbox後に生のuint8 RGBをそのまま入力します。- デコード:チャネルごとにargmax → 64x48空間の(x, y) → 256x192にスケーリング → 逆letterboxで元画像に復元。初回推論時に生のvstreamレイアウトを一度出力します。
- 単人モデル:中央に1人が写っていることを前提とします。複数人の場合は先に検出器を実行し、人物ごとに切り出してください。
- Model Zooのリファレンス実装では5x5ガウスぼかしと1/4ピクセルシフトを追加で適用しますが、本デモでは省略しています。
トラブルシューティング
HEFのロードに失敗する:HailoRTが4.23.xであり、マウントしたlibhailort.soがホストドライバと一致していることを確認してください。/dev/hailo0が存在しない:lsmod | grep hailoを確認し、hailort-pcie-driverを再インストールしてください。- スケルトンが描画されない:キーポイント信頼度スライダーを下げてください(デフォルト0.30)。
- キーポイントの位置がずれる:出力される入出力shapeが256x192入力と64x48x17ヒートマップに一致することを確認してください。
入力と出力
入力: 画像(256x192 RGB)。出力: x、y、信頼度付き17キーポイント(COCO形式)。