Skip to main content

A pipeline for large scale deep-learning based wireless sensing tasks, including preprocess, training and eval

Reason this release was yanked:

cant run by command

Project description

SDP TOML GitHub Welcome to Ask

SDP: Sensing Data Protocol for Scalable Wireless Sensing

SDP (Sensing Data Protocol) is a protocol-level abstraction framework and unified benchmark for scalable wireless sensing and perception based on wireless signals such as Channel State Information(CSI). The protocol is designed to decouple learning performance from hardware-specific artifacts, enabling fair, reproducible, and scalable evaluation of deep learning models for wireless sensing tasks.

SDP enforces deterministic physical-layer sanitization, canonical tensor construction, and standardized training and evaluation procedures, making it particularly suitable for wireless sensing research, activity recognition, device-free sensing, and cross-dataset benchmarking.

Our main result can be illustrated by the following pictures.

Mean Top-1 accuracy with 95% confidence intervals over five runs accuracy

Performance stability comparison between the baseline and SDP across five random seeds. Boxplots show the distribution of Top-1 accuracy, with scattered dots indicating individual runs. accuracy

Rank consistency heatmap across five random seeds on the ElderAL-CSI dataset. Colors indicate per-seed performance rank (1 = best), with overlaid Top-1 accuracy values. Full SDP exhibits stable top-ranked performance, while ablated variants show higher ranking variability. accuracy

More details are illustrated in our paper A Sensing Dataset Protocol for Benchmarking and Multi-Task Wireless Sensing.

@misc{huang2025sensingdatasetprotocolbenchmarking,
      title={A Sensing Dataset Protocol for Benchmarking and Multi-Task Wireless Sensing}, 
      author={Jiawei Huang and Di Zhang and Yuanhao Cui and Xiaowen Cao and Tony Xiao Han and Xiaojun Jing and Christos Masouros},
      year={2025},
      eprint={2512.12180},
      archivePrefix={arXiv},
      primaryClass={eess.SP},
      url={https://arxiv.org/abs/2512.12180}, 
}

🔍 Why SDP?

Wireless sensing research often suffers from:

  • Inconsistent hardware configurations
  • Dataset-specific preprocessing pipelines
  • Non-reproducible training and evaluation protocols

SDP addresses these challenges at the protocol level, rather than the model level. The SDP unified data processing pipeline, including sanitation and transformation, transform raw data into uniform canonical tensors ready for deep learning. pipeline

Core Design Principles

  • Protocol-level abstraction
  • Deterministic PHY-layer sanitization to eliminate randomness
  • Canonical tensor representation for deep learning compatibility
  • Unified benchmark pipeline across datasets and tasks
  • Extensible architecture for new datasets, processors, and models

📦 Key Features

  • Unified CSI abstraction across heterogeneous datasets
  • Hardware-agnostic signal representation
  • Modular reader–processor–model pipeline
  • Deterministic preprocessing for reproducibility
  • Plug-and-play extensibility
  • Benchmark-ready training and evaluation flow

📚 Target Use Cases

SDP is optimized for:

  • CSI-based Human Activity Recognition (HAR)
  • Gait recognition and biometric identification
  • Wireless sensing + deep learning research
  • Cross-domain / cross-hardware generalization
  • scalable sensing systems

Typical downstream models include CNNs, Transformers, BiLSTMs, GNNs, and hybrid architectures.

Supported Dataset:

Widar3.0

GaitID

XRF55

ElderAL-CSI

  • Dataset Link: ElderAL-CSI
  • CSI Shape: (Time, 512, 3, 3)
  • num of classes: 6
  • total num of used samples: 2,400

📁 Project Structure Overview

algorithms/

Store various functions for implementing different signal processing algorithms.

  • ./denoising.py
    Store functions for signal denoising
  • ./phase_calibration.py
    Store functions for phase calibration

readers/

  • Store Dataset-specific readers
  • Converts raw files into List of CSIData

structure/

  • Definition of CSIData and all kinds of CSIFrame

processors/

  • Definition of processor for signal processing and sanitization

datasets/

  • Definition of classes extend torch.utils.data.Dataset

models/

  • Definition of deep learning models

🚀 Quick Start

Install Dependencies

Create a venv for dependencies, then run:

  pip install wsdp

Download Data

Please download needed datasets from Our SDP Website or:

  wsdp xxxx [dataset_name] [dir]  # TBD

After downloading, please organize elderAL datasets in the structure below for extracting labels:

├── data
    ├── elderAL
    │   ├── action0_static_new
    │   ├── action1_walk_new
    │   ├── ...
    │
    ├── widar
    ├── gait
    ├── xrf55

Run

This project supports both functional call and command-line call in the shell. The calling methods are as follows respectively:


  • For input_path: please use data/[widar, gait, xrf55, elderAL]
  • For dataset_name: widar, gait, xrf55, elderAL are available

function call:

from wsdp import pipeline

pipeline(input_path, output_folder, dataset_name)

Considering that training process will generate numerous lines about info like acc and loss, so in function-call, it is recommended to run in this way:

  nohup python script.py >> output.log 2>&1 &

command:

  wsdp run [input_path] [output_folder] [dataset_name]

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

wsdp-0.0.3.tar.gz (20.2 kB view details)

Uploaded Source

Built Distribution

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

wsdp-0.0.3-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file wsdp-0.0.3.tar.gz.

File metadata

  • Download URL: wsdp-0.0.3.tar.gz
  • Upload date:
  • Size: 20.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for wsdp-0.0.3.tar.gz
Algorithm Hash digest
SHA256 3168ea0778cf7e77c8233487be359645261beb60370d48984c0ca4397718018c
MD5 152572f58cf5c15856ed8601481e6a98
BLAKE2b-256 5eb594b07d8273fb29c32fd6132d83cc5bc8f0517caaf0825f901f8c56ebd65f

See more details on using hashes here.

File details

Details for the file wsdp-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: wsdp-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for wsdp-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a36238e08a478ae718b075139deaac688f97f6f3dd52b688f269fae99a906296
MD5 019562ab3720dc2255fb564165913fc9
BLAKE2b-256 25a2402991d0493347bb1aa646ab0d8365397ef2c82309a60a9b8bf19fda55e2

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