Skip to main content

WiFi CSI pose estimation toolkit — signal utilities, skeleton ops, evaluation metrics, and bundle streaming

Project description

echopose-sdk

PyPI version Python 3.10+ License: MIT

WiFi CSI pose-estimation toolkit — the Python companion to the EchoPose system.

EchoPose turns commodity ESP32-S3 access points into a privacy-preserving human pose estimator that requires no cameras, no wearables, and works through walls. This SDK provides the tools you need to collect, process, evaluate, and replay CSI data and pose predictions.


Features

Module What it does
echopose_sdk.csi Subcarrier normalisation, Doppler feature extraction, pilot interpolation, human-presence detection
echopose_sdk.skeleton COCO-17 keypoint helpers, bone lengths, body-height normalisation, temporal smoothing
echopose_sdk.metrics MPJPE, PCK@t, body-normalised PCK, PA-MPJPE, per-joint error tables
echopose_sdk.streaming BundleReader/BundleWriter JSONL context managers, time-windowed filtering, train/test split
echopose_sdk.validation Bundle schema validation
echopose_sdk.quality Confidence summary statistics

Installation

pip install echopose-sdk

Development install (editable):

pip install -e echopose_sdk/

Quick start

Validate a bundle

from echopose_sdk import validate_bundle
ok, reason = validate_bundle(bundle_dict)

Compute pose metrics

import numpy as np
from echopose_sdk.metrics import summary_report

pred = np.load("pred_poses.npy")   # shape (N, 17, 3)
gt   = np.load("gt_poses.npy")

report = summary_report(pred, gt)
# {'mpjpe': 0.42, 'pck_01_abs': 0.31, 'body_pck_01': 0.68, 'pa_mpjpe': 0.29, ...}

Normalise CSI amplitudes

from echopose_sdk.csi import normalize_subcarriers
norm = normalize_subcarriers(raw_amplitudes, method="zscore")

Smooth a skeleton sequence

from echopose_sdk.skeleton import smooth_skeleton_sequence
smoothed = smooth_skeleton_sequence(seq, method="gaussian", window=7)

Stream a session file

from echopose_sdk.streaming import BundleReader

with BundleReader("session.jsonl") as reader:
    for bundle in reader:
        print(bundle["timestamp_ms"])

CLI

echopose-sdk validate  <bundle.json>
echopose-sdk inspect   <bundle.json> [--node NODE] [--pretty]
echopose-sdk metrics   --pred pred.npy --gt gt.npy [--per-joint] [--pretty]
echopose-sdk stream    <session.jsonl> [--fps 20] [--limit 100]

License

MIT © Muhammed Shazin Sadhik Kunhi Parambath

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

echopose_sdk-0.2.0.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

echopose_sdk-0.2.0-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file echopose_sdk-0.2.0.tar.gz.

File metadata

  • Download URL: echopose_sdk-0.2.0.tar.gz
  • Upload date:
  • Size: 16.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for echopose_sdk-0.2.0.tar.gz
Algorithm Hash digest
SHA256 314daff661a73f4149e14f6986a86a862a407ab85e01b1ce9ef9b0cc129f39df
MD5 1d697b48d87a249975e0a860a991f56c
BLAKE2b-256 3427bef5f05b9b49b9b59d3d20bca9b7fd0b1df26b03f4e61915512399cd4939

See more details on using hashes here.

File details

Details for the file echopose_sdk-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: echopose_sdk-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for echopose_sdk-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8b67c0ec806fe633f2b1d6067dec55ca11427b1130b23ba9afe723bd15e971ff
MD5 b0c08b4fcbcdfcfd113261866c0da3d6
BLAKE2b-256 6fddf7950dc02b623e7ffed7602ccd6a15025c7d5d3119b7232c58155858a61d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page