MediaPipe Pose (f8.mp.pose)¶
MediaPipe single-person pose extraction service (33 landmarks).
- Service class:
f8.mp.pose - Version:
0.0.1 - Source directory:
f8/mp/pose - Tags:
mediapipe,vision,human,pose
When to Use¶
- Use
f8.mp.posewhen the graph needs human pose landmarks rather than only person boxes. - It is a natural choice for skeleton-driven visuals, motion analysis, and pose-derived control signals.
- Use it when joints and body structure matter more than generic detection labels.
Common Wiring Patterns¶
- Typical inputs come from
f8.implayer,f8.screencap, or live camera-like sources. - Outputs commonly feed into
f8.viz.track,f8.viz.three-d, orf8.pyengine. - If people are unstable in the frame, consider person localization or cropping before pose estimation.
Pitfalls / Gotchas¶
- Pose quality depends heavily on visibility, scale, and occlusion.
- Extreme camera angles can destabilize certain landmarks.
- Before writing control logic, always visualize the landmarks and verify they match the actual body motion.
Service Reference¶
How to Run¶
pixi run -e mediapipe f8pymppose
- Workdir:
../../../../ - Environment overrides: none
Typical Inputs / Outputs¶
- Data inputs: none
- Data outputs:
detections,skeletons,monitor - Commands: none
Service State Fields¶
| Name | Access | Required | On Node | Schema | Description |
|---|---|---|---|---|---|
shmName |
rw |
true |
true |
string / default= |
Video SHM mapping name (e.g. shm.implayer.video). |
inferEveryN |
rw |
true |
false |
integer / default=1 |
Run pose inference every N frames (>=1). |
modelComplexity |
rw |
true |
false |
string / enum[lite, full, heavy] / default=full |
MediaPipe pose model variant. |
minDetectionConfidence |
rw |
true |
false |
number / default=0.5 |
Minimum confidence threshold for pose detection. |
minTrackingConfidence |
rw |
true |
false |
number / default=0.5 |
Minimum confidence threshold for pose tracking. |
visibilityThreshold |
rw |
true |
false |
number / default=0.5 |
Landmark visibility threshold (below threshold => hidden point). |
lastError |
ro |
true |
false |
string / default= |
Last runtime error string (best-effort). |
skeletonSource |
rw |
true |
false |
string / enum[camera, world] / default=camera |
Skeleton data source (camera-relative vs world-relative). |
active |
rw |
true |
false |
boolean / default=True |
Service lifecycle state (activate/deactivate). |
svcId |
ro |
true |
false |
string |
Readonly: current service instance id (svcId). |
Key Fields That Matter¶
shmName(Video SHM,rw): Video SHM mapping name (e.g. shm.implayer.video). Schema:string / default=.inferEveryN(Infer Every N Frames,rw): Run pose inference every N frames (>=1). Schema:integer / default=1.modelComplexity(Model Complexity,rw): MediaPipe pose model variant. Schema:string / enum[lite, full, heavy] / default=full.minDetectionConfidence(Min Detection Confidence,rw): Minimum confidence threshold for pose detection. Schema:number / default=0.5.minTrackingConfidence(Min Tracking Confidence,rw): Minimum confidence threshold for pose tracking. Schema:number / default=0.5.visibilityThreshold(Visibility Threshold,rw): Landmark visibility threshold (below threshold => hidden point). Schema:number / default=0.5.lastError(Last Error,ro): Last runtime error string (best-effort). Schema:string / default=.skeletonSource(Skeleton Source,rw): Skeleton data source (camera-relative vs world-relative). Schema:string / enum[camera, world] / default=camera.
Service Commands¶
None
Service Data Input Ports¶
None
Service Data Output Ports¶
| Name | Required | On Node | Schema | Description |
|---|---|---|---|---|
detections |
true |
true |
object{detections, frameId, height, model, ...} |
Detection output in schema f8visionDetections/1. |
skeletons |
true |
true |
array[object] |
List of UDP-skeleton-compatible JSON payloads for skeleton3d. |
monitor |
true |
false |
object{active, alive, cpu, error, ...} |
Unified runtime monitor snapshots (health/resource/perf/error). |
Operators¶
None
Related Scenarios¶
- No bundled scenario references this node yet.