Skip to content

caputo-bellino-fontana/AML-project-2023

Repository files navigation

Federated Semantic Segmentation for sefl-driving cars

Summary


This paper proposes a federated semantic segmentation framework for self-driving cars that leverages the power of federated learning to train a deep neural network using segmented datasets obtained from multiple vehicles while preserving data privacy. Traditional methods of semantic segmentation rely on centralized computing, which is impractical in real-world scenarios. The proposed framework includes a central server that coordinates the training process and multiple participating vehicles that provide their segmented data. In addition to the proposed framework, the paper applied domain generalization techniques such as Fourier Domain Adaptation (FDA) to improve the model's generalization and robustness, as well as implemented a pseudo labelling technique to overcome the challenge of unlabelled data from the participating vehicles in a real-world applications. The combination of these techniques with federated learning resulted in a robust and efficient semantic segmentation framework for self-driving cars.

Setup


  1. Clone the repository

  2. Install the dependencies with poetry

    poetry install
  1. Make a new wandb account if you do not have one yet, and create a new wandb project.

  2. change the configuration file here and here.

  3. run the script

   poetry run python src/run.py -s <STEP> -dts <DATASET> -net <NETWORK>

to see other run options, run

    poetry run python src/run.py -h

Notebooks on colab


The same code is available in a notebook format here and can be run in colab for free. Since this code is only partially tested due to GPU limitations this could be the better option. In order to run this notebook:

  1. Create a new folder in your google drive
  2. Upload the "data" folder from this repository to the folder you created in step 1
  3. Make a new wandb account if you do not have one yet, and create a new wandb project.
  4. change the configuration for the step you intend to run in the notebook
  5. run the SETUP phase in the dotebook and the wanted step

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •