# Federated Person Re-identification (FedReID)
Personal re-identification is an important computer vision task, but its development is constrained by the increasing privacy concerns. Federated learning is a privacy-preserving machine learning technique that learns a shared model across decentralized clients. We implement federated learning to person re-identification (**FedReID**) and optimize its performance affected by **statistical heterogeneity** in the real-world scenarios.
This is code for ACMMM 2020 oral paper - **[Performance Optimization for Federated Person Re-identification via Benchmark Analysis](https://arxiv.org/abs/2008.11560)**
Algorithm: Federated Partial Averaging (FedPav)
## Prerequisite
It requires the following Python libraries:
```
torch
torchvision
easyfl
```
Please refer to the [documentation](https://easyfl.readthedocs.io/en/latest/get_started.html#installation) to install `easyfl`.
## Datasets
**We use 9 popular ReID datasets for the benchmark.**
> **🎉 We are now releasing the processed datasets.** (April, 2022)
>
> Please [email us](weiming001@e.ntu.edu.sg) to request for the datasets with:
> 1. A short self-introduction.
> 2. The purposes of using these datasets.
>
> *⚠️ Further distribution of the datasets are prohibited.*
## Run the experiments
Put the processed datasets in `data_dir` and run the experiments with the following scripts.
```
python main.py --data_dir ${data_dir}
```
You can refer to the `main.py` to run experiments with more options and configurations.
> Note: you can run experiments with multiple GPUs by setting `--gpu`. The default implementation supports running with multiple GPUs in a _slurm cluster_. You may need to modify `main.py` to use `multiprocess`.
You may refer to the [original implementation](https://github.com/cap-ntu/FedReID) for the optimization methods: knowledge distillation and weight adjustment.
## Citation
```
@inproceedings{zhuang2020performance,
title={Performance Optimization of Federated Person Re-identification via Benchmark Analysis},
author={Zhuang, Weiming and Wen, Yonggang and Zhang, Xuesen and Gan, Xin and Yin, Daiying and Zhou, Dongzhan and Zhang, Shuai and Yi, Shuai},
booktitle={Proceedings of the 28th ACM International Conference on Multimedia},
pages={955--963},
year={2020}
}
@article{zhuang2023fedreid,
title={Optimizing performance of federated person re-identification: Benchmarking and analysis},
author={Zhuang, Weiming and Gan, Xin and Wen, Yonggang and Zhang, Shuai},
journal={ACM Transactions on Multimedia Computing, Communications and Applications},
volume={19},
number={1s},
pages={1--18},
year={2023},
publisher={ACM New York, NY}
}
```