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.
-
Clone the repository
-
Install the dependencies with poetry
poetry install
-
Make a new wandb account if you do not have one yet, and create a new wandb project.
-
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
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:
- Create a new folder in your google drive
- Upload the "data" folder from this repository to the folder you created in step 1
- Make a new wandb account if you do not have one yet, and create a new wandb project.
- change the configuration for the step you intend to run in the notebook
- run the SETUP phase in the dotebook and the wanted step