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}
}
pytorch and torchvision (we use pytorch==1.12.0 and torchvision==0.13.0).pip install -r requirements.txtNote 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.
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
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
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
A Survey on Behavior Recognition Using WiFi Channel State Information [Github]
Efficientfi: Towards Large-Scale Lightweight Wifi Sensing via CSI Compression
CAUTION: A Robust WiFi-based Human Authentication System via Few-shot Open-set Gait Recognition
Examples of NTU-Fi data

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

@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}
}
Python
100.0%
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}
}
pytorch and torchvision (we use pytorch==1.12.0 and torchvision==0.13.0).pip install -r requirements.txtNote 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.
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
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
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
A Survey on Behavior Recognition Using WiFi Channel State Information [Github]
Efficientfi: Towards Large-Scale Lightweight Wifi Sensing via CSI Compression
CAUTION: A Robust WiFi-based Human Authentication System via Few-shot Open-set Gait Recognition
Examples of NTU-Fi data

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

@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}
}
Python
100.0%