Pose Detection
gst-ai-pose-detection performs human pose detection on each frame of a video stream, drawing skeleton connections between body keypoints.
Uses the HRNet model.
Prerequisites
- Completed QIM SDK Installation and Model Download
Steps
1. Verify Required Files
radxa@airbox$
ls -l /etc/models/hrnet_pose_quantized.tflite
ls -l /etc/labels/hrnet_pose.json
ls -l /etc/labels/hrnet_settings.json
hrnet_settings.jsondefines the connections between body joints. Missing this file causesInvalid pose settings patherror.
2. View Configuration
radxa@airbox$
cat /etc/configs/config_pose.json
Key fields:
| Field | Default | Description |
|---|---|---|
file-path | /etc/media/video.mp4 | Input video path |
ml-framework | tflite | Inference framework |
model | /etc/models/hrnet_pose_quantized.tflite | Model file |
labels | /etc/labels/hrnet_pose.json | Label file |
pose-settings-path | /etc/labels/hrnet_settings.json | Joint connection config |
runtime | dsp | Inference hardware |
3. Run
radxa@airbox$
gst-ai-pose-detection --config-file=/etc/configs/config_pose.json
Press Ctrl + C to stop.
Expected Output
Terminal output:
Running app with model: /etc/models/hrnet_pose_quantized.tflite and labels: /etc/labels/hrnet_pose.json and settings /etc/labels/hrnet_settings.json
Using DSP Delegate
VERBOSE: Replacing 518 out of 518 node(s) with delegate (TfLiteQnnDelegate) node
Pipeline state changed from PAUSED to PLAYING
The display shows the test video with skeleton connections drawn between body keypoints.
Validation
Using DSP Delegate: Inference running on NPUReplacing 518 out of 518 node(s): All 518 operators delegated to DSP- Pipeline reaches
PLAYINGstate - Display correctly shows human skeleton overlay
Troubleshooting
Invalid pose settings path
Verify hrnet_settings.json exists under /etc/labels/:
radxa@airbox$
ls -l /etc/labels/hrnet_settings.json
If missing, re-run the download script:
radxa@airbox$
sudo ./download_artifacts.sh -v GA1.6-rel -c QCS9075