Skip to content

ramiMMhamza/Fed-Protoid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Privacy-Preserving Adaptive Re-Identification without Image Transfer (Fed-Protoid)

This repository contains the code for the paper "Privacy-Preserving Adaptive Re-Identification without Image Transfer" (ECCV 2024).

Re-Identification systems (Re-ID) are crucial for public safety but face the challenge of having to adapt to environments that differ from their training distribution. Furthermore, rigorous privacy protocols in public places are being enforced as apprehensions regarding individual freedom rise, adding layers of complexity to the deployment of accurate Re-ID systems in new environments.

In this work, we present a novel setting for privacy-preserving Distributed Unsupervised Domain Adaptation for person Re-ID (DUDA-Rid) to address the problem of domain shift without requiring any image transfer outside the camera devices. To address this setting, we introduce Fed-Protoid, a novel solution that adapts person Re-ID models directly within the edge devices. Our proposed solution employs prototypes derived from the source domain to align feature statistics within edge devices. Those source prototypes are distributed across the edge devices to minimize a distributed Maximum Mean Discrepancy (MMD) loss tailored for the DUDA-Rid setting.

Our experiments provide compelling evidence that Fed-Protoid outperforms all evaluated methods in terms of both accuracy and communication efficiency, all while maintaining data privacy.

For more details, please refer to our paper.

[10/07/2024] Fed-Protoid v0.1.0 is released.

Please refer to INSTALL.md for installation and dataset preparation.

Training

To train Fed-Protoid on MSMT17 as source domain and Market1501 as target domain, run the following command:

  • Distributed training in a slurm cluster:
sbatch Fedprotoid.sh
  • Distributed training locally with multiple GPUs:
sh run_train.sh ${RUN_NAME} --epochs_s 1 --iters_s 0 --epochs_t 1 --times_itc 10

Arguments

  • RUN_NAME: the name of the experiment. Logs and checkpoints will be saved in logs/${RUN_NAME}/.
  • --epochs_s: the number of source's training epochs.
  • --iters_s: the number of source's training iterations.
  • --epochs_t: the number of client's training epochs.
  • --times_itc: The number of iterations per round.
  • Refer to run_train.sh for more arguments. METHOD can be "FEDPROTO" or "FEDPROTO++".
  • [optional arguments]: please refer to config.yaml to modify some key values from the loaded config of the specified method.

Datasets

This repository is built upon OpenUnReID

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages