33 lines
1.9 KiB
Markdown
33 lines
1.9 KiB
Markdown
# Tail 2 pose server
|
|
|
|
GPU-only, receive-only NDI inference service. It never saves frames/crops and has no PTZ, shell, upload, cloud, identity, or action-classification API.
|
|
|
|
- API: `http://192.168.50.100:18120`
|
|
- Token: `/mnt/user/appdata/tail2-pose-server/secrets/api-token` (mode 0600)
|
|
- Source: `TAIL 2_1621D2 (OBSBOT)` / `192.168.50.207`
|
|
- Coordinate contract: unmodified NDI buffer, no horizontal flip
|
|
- Default backend: RTMLib 0.0.15, official YOLOX-m HumanArt+COCO 640x640 and RTMPose-m Body17 256x192, ONNX Runtime GPU with CUDA EP first.
|
|
- Alternatives: `openmmlab`, `rtmlib_wholebody` (DWPose-m 133), and `rtmlib_rtmw_l`. The original RTMDet-tiny + RTMW-m OpenMMLab path remains available as the baseline.
|
|
- NDI binding: cyndilib 0.1.1 and its distributed NDI runtime. NDI's redistributable license applies; do not redistribute the image outside this private deployment without reviewing that license.
|
|
|
|
Rotate the integration token after onboarding clients:
|
|
|
|
```sh
|
|
umask 077
|
|
printf 'tail2_%s' "$(head -c 48 /dev/urandom | base64 | tr -d '\n=/+')" > /mnt/user/appdata/tail2-pose-server/secrets/api-token
|
|
docker compose restart tail2-pose-server
|
|
```
|
|
|
|
## Current acceptance status
|
|
|
|
The RTMLib optimization passes the offline inference target. Body17 1/2/4-person p50 is 19.405/24.543/34.781 ms and p95 is 19.734/25.727/36.191 ms. DWPose-m WholeBody 1/2/4-person p50 is 19.905/26.193/37.770 ms and p95 is 20.237/27.489/39.592 ms. All cases used 100 warmups and 300 measured iterations with real 1/2/4-person detector results.
|
|
|
|
Live acceptance is currently blocked externally: the camera IP responds, but the NDI finder repeatedly reports `last_sources=[]`. Re-run the live WebSocket and 30-minute soak acceptance after `TAIL 2_1621D2 (OBSBOT)` resumes broadcasting.
|
|
|
|
The one-shot validation services are profile-gated and do not run during normal Arcane lifecycle:
|
|
|
|
```sh
|
|
docker compose --profile validation up validate
|
|
docker compose --profile validation up soak
|
|
```
|