Autonomous driving is an active research topic in both academia and industry. However, most of the existing solutions focus on improving the accuracy by training learnable models with centralized large-scale data. Therefore, these methods do not take into account the user's privacy. In this paper, we present a new approach to learn autonomous driving policy while respecting privacy concerns. We propose a peer-to-peer Deep Federated Learning (DFL) approach to train deep architectures in a fully decentralized manner and remove the need for central orchestration. We design a new Federated Autonomous Driving network (FADNet) that can improve the model stability, ensure convergence, and handle imbalanced data distribution problems while is being trained with federated learning methods. Intensively experimental results on three datasets show that our approach with FADNet and DFL achieves superior accuracy compared with other recent methods. Furthermore, our approach can maintain privacy by not collecting user data to a central server.
Figure 1: The architecture of our Federated Autonomous Driving Net (FADNet).This repository is the implementation of a decentralized federated learning approach for Autonomous Driving. We benchmark our method on three public datasets: Udacity, Carla, and Gazebo.
For the detail, please refer to link.
This repository is based on and inspired by @Othmane Marfoq work. We sincerely thank for their sharing of the codes.
- Prerequisites
- Datasets
- Federated Learning for Autonomous Driving
- Training
- Pretrained models and Testing
- Citation
- License
- More information
PYTHON 3.6
CUDA 9.2
Please install dependence package by run following command:
pip install -r requirements.txt
-
For GAZEBO dataset, we provide:
- The original dataset and the split train/test dataset for GAIA network at link. You can download and extract them into "data/driving_gazebo/" folder.
-
For CARLA dataset, we provide:
- The original dataset and the split train/test dataset for GAIA network at link. You can download and extract them into "data/driving_carla/" folder.
Important: Before running any command lines in this section, please run following command to access 'graph_utils' folder:
cd graph_utils
And now, you are in 'graph_utils' folder.
Please download graph data at link and put into data
folder.
-
To generate networks for GAZEBO dataset and compute the cycle time for them:
bash generate_network_driving-gazebo.sh
-
To generate networks for CARLA dataset and compute the cycle time for them:
bash generate_network_driving-carla.sh
- To train our method on GAZEBO dataset with GAIA network, run:
bash train_gazebo_gaia.sh
- To train our method on CARLA dataset with GAIA network, you can use the same setup on GAZEBO.
We provide the pretrained models which are trained on GAZEBO dataset with GAIA network by our method at the last epoch. Please download at link and extracted them into the "pretrained_models/DRIVING-GAZEBO_GAIA" folder.
The models can be evaluated in GAZEBO train and test set via:
bash test_gazebo_gaia.sh
If you use this code as part of any published research, we'd really appreciate it if you could cite the following paper:
@inproceedings{nguyen2022_DFL,
title={Deep Federated Learning for Autonomous Driving},
author={Nguyen, Anh and Do, Tuong and Tran, Minh and Nguyen, Binh X and Duong, Chien and Phan, Tu and Tjiputra, Erman and Tran, Quang D},
booktitle={33rd IEEE Intelligent Vehicles Symposium},
year={2022}
}
MIT License
AIOZ AI Homepage: https://ai.aioz.io