/Skeleton-anonymization

[AAAI 2023] Official implementation of 'Anonymization for Skeleton Action Recognition'

Primary LanguagePythonOtherNOASSERTION

Anonymization for Skeleton Action Recognition

This repository is the official implementation of 'Anonymization for Skeleton Action Recognition' (AAAI2023)

Anonymization framework

Prerequisites

  • Python3
  • Pytorch
  • Run pip install -r requirements.txt for installing other python libraries
  • We use Wandb for experiment tracking

Compile cuda extensions

cd ./model/Temporal_shift
bash run.sh

Data Preparation

  • We use NTU RGB+D skeleton-only datasets (nturgbd_skeletons_s001_to_s017.zip).
  • After downloading datasets, generate the skeleton data with this command.
python data_gen/ntu_gendata.py --data_path <path to nturgbd+d_skeletons>

Training

To train the models in the paper, run this command:

python main.py --config ./config/train_adver_resnet.yaml
python main.py --config ./config/train_adver_unet.yaml

Pre-trained Models

We provide two pre-trained model with NTU60. You can download pretrained models here:

Model Anonymizer network Re-iden. acc. Action acc.
./save_models/pretrained_resnet.pt ResNet 4.20% 91.75%
./save_models/pretrained_unet.pt UNet 5.70% 91.45%

To test the pre-trained models given above, run this command:

python main.py --config ./config/train_adver_resnet.yaml
python main.py --config ./config/train_adver_unet.yaml

Also, we provide more privacy pre-trained models for test privacy model. You can find at /save_models/ntu_pretrained_x.

Acknowledgements

This code is based on Shift-GCN. Also, we use U-Net for anonymizer network. Thanks to the original authors!☺️