xyanchen / WiFi-CSI-Sensing-Benchmark

MIT License
315 stars 55 forks source link

GitHub Maintenance Ask Me Anything ! DOI

SenseFi: A Benchmark for WiFi CSI Sensing

Introduction

SenseFi is the first open-source benchmark and library for WiFi CSI human sensing, implemented by PyTorch. The state-of-the-art networks, including MLP, CNN, RNN, Transformers, etc, are evaluated on four public datasets across different WiFi CSI platforms. The details are illustrated in our paper SenseFi: A Library and Benchmark on Deep-Learning-Empowered WiFi Human Sensing that has been accepted by Patterns, Cell Press.

@article{yang2023benchmark,
  title={SenseFi: A Library and Benchmark on Deep-Learning-Empowered WiFi Human Sensing},
  author={Yang, Jianfei and Chen, Xinyan and Wang, Dazhuo and Zou, Han and Lu, Chris Xiaoxuan and Sun, Sumei and Xie, Lihua},
  journal={Patterns},
  volume={4},
  number={3},
  publisher={Elsevier},
  year={2023}
}

Requirements

  1. Install pytorch and torchvision (we use pytorch==1.12.0 and torchvision==0.13.0).
  2. pip install -r requirements.txt

Note that the project runs perfectly in Linux OS (Ubuntu). If you plan to use Windows to run the codes, you need to modify the all the / to \\ in the code regarding the dataset directory for the CSI data loading.

Run

Download Processed Data

Please download and organize the processed datasets in this structure:

Benchmark
├── Data
    ├── NTU-Fi_HAR
    │   ├── test_amp
    │   ├── train_amp
    ├── NTU-Fi-HumanID
    │   ├── test_amp
    │   ├── train_amp
    ├── UT_HAR
    │   ├── data
    │   ├── label
    ├── Widardata
    │   ├── test
    │   ├── train

We also offer pre-trained weights for all models

Supervised Learning

To run models with supervised learning (train & test):
Run: python run.py --model [model name] --dataset [dataset name]

You can choose [model name] from the model list below

You can choose [dataset name] from the dataset list below

Example: python run.py --model ResNet18 --dataset NTU-Fi_HAR

Unsupervised Learning

To run models with unsupervised (self-supervised) learning (train on NTU-Fi HAR & test on NTU-Fi HumanID):
Run: python self_supervised.py --model [model name]

You can choose [model name] from the model list below

Example: python self_supervised.py --model MLP
Method: AutoFi: Towards Automatic WiFi Human Sensing via Geometric Self-Supervised Learning

Model Zoo

MLP

Dataset

UT-HAR

A Survey on Behavior Recognition Using WiFi Channel State Information [Github]

NTU-HAR

Efficientfi: Towards Large-Scale Lightweight Wifi Sensing via CSI Compression

NTU-HumanID

CAUTION: A Robust WiFi-based Human Authentication System via Few-shot Open-set Gait Recognition

Examples of NTU-Fi data

Widar

Widar3.0: Zero-Effort Cross-Domain Gesture Recognition with Wi-Fi [Project]

Classes of Widar data

Notice

Datasets Reference

@article{yousefi2017survey,
  title={A survey on behavior recognition using WiFi channel state information},
  author={Yousefi, Siamak and Narui, Hirokazu and Dayal, Sankalp and Ermon, Stefano and Valaee, Shahrokh},
  journal={IEEE Communications Magazine},
  volume={55},
  number={10},
  pages={98--104},
  year={2017},
  publisher={IEEE}
}

@article{yang2022autofi,
  title={AutoFi: Towards Automatic WiFi Human Sensing via Geometric Self-Supervised Learning},
  author={Yang, Jianfei and Chen, Xinyan and Zou, Han and Wang, Dazhuo and Xie, Lihua},
  journal={arXiv preprint arXiv:2205.01629},
  year={2022}
}

@article{yang2022efficientfi,
  title={Efficientfi: Towards large-scale lightweight wifi sensing via csi compression},
  author={Yang, Jianfei and Chen, Xinyan and Zou, Han and Wang, Dazhuo and Xu, Qianwen and Xie, Lihua},
  journal={IEEE Internet of Things Journal},
  year={2022},
  publisher={IEEE}
}

@article{wang2022caution,
  title={CAUTION: A Robust WiFi-based Human Authentication System via Few-shot Open-set Gait Recognition},
  author={Wang, Dazhuo and Yang, Jianfei and Cui, Wei and Xie, Lihua and Sun, Sumei},
  journal={IEEE Internet of Things Journal},
  year={2022},
  publisher={IEEE}
}

@article{zhang2021widar3,
  title={Widar3. 0: Zero-effort cross-domain gesture recognition with wi-fi},
  author={Zhang, Yi and Zheng, Yue and Qian, Kun and Zhang, Guidong and Liu, Yunhao and Wu, Chenshu and Yang, Zheng},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
  year={2021},
  publisher={IEEE}
}