Skip to content

TarikToha/WiHAR

Repository files navigation

WiHAR: Privacy-Preserving Human Sensing using WiFi CSI


This project implements human activity recognition using WiFi signals instead of cameras. It uses Channel State Information (CSI), turns it into images, and classifies activities with a Vision Transformer (ViT) model. The project report is available here.

Setup

  1. Install Python and dependencies:
conda create -n wihar python=3.9
conda activate wihar
pip install -r requirements.txt
  1. Download NTU-Fi HAR CSI files and place them in:
data/NTU-Fi_HAR/train_amp/<activity_name>/*.mat
data/NTU-Fi_HAR/test_amp/<activity_name>/*.mat

Usage

  1. Generate images from CSI:
python cfr_out.py
  • This creates images in data/cfr_dataset/train/ and data/cfr_dataset/test/.
  1. Create a validation split by copying a portion (10–20%) of images from each class in train/ to a new val/ folder:
data/cfr_dataset/
  ├── train/
  ├── val/
  └── test/
  1. Train the model:
python vit_train.py fit \
  --data.dataset custom \
  --data.root data/cfr_dataset/ \
  --data.num_classes 6 \
  --data.batch_size 32 \
  --trainer.max_steps 1800 \
  --trainer.check_val_every_n_epoch 2 \
  --model.warmup_steps 180 \
  --model.lr 0.01
  1. Test the model:
python vit_train.py test \
  --ckpt_path <path_to_best_checkpoint> \
  --data.dataset custom \
  --data.root data/cfr_dataset/ \
  --data.num_classes 6
  • Replace <path_to_best_checkpoint> with the actual checkpoint file.

Acknowledgements

Thanks to SenseFi and vit-finetune.

About

WiFi-based Human Activity Recognition

Topics

Resources

License

Stars

Watchers

Forks

Contributors