Continual Learning for Behavior-based Driver Identification
Paper in progress »
Mattia Fanan
·
Davide Dalle Pezze
.
Emad Efatinasab
·
Ruggero Carli
.
Mirco Rampazzo
.
Gian Antonio Susto
Behavior-based Driver Identification is a significant problem that aims to identify drivers based on their unique driving behaviors. This has numerous applications, including preventing vehicle theft and enhancing personalized driving experiences. While previous studies have shown that Deep Learning approaches can achieve high performance, considerable challenges remain. A key issue is that most studies are conducted offline, rather than directly on vehicles. For real-world applications, models installed in cars must be capable of adapting to new drivers while minimizing resource consumption. Continual Learning techniques, which allow models to learn new driving behaviors while retaining previously acquired knowledge, offer a promising solution to this challenge.
This study addresses the Driver Identification problem in a realistic setting, where the model must adapt to new drivers. We evaluate the performance of various Continual Learning techniques across multiple scenarios with increasing complexity and realistic applicability. Furthermore, given the temporal correlation inherent in this setting, we propose a novel technique called SmooDER. The effectiveness and superiority of our method are validated using the well-known OCSLab dataset.
To execute to our framework, start by cloning the repository:
git clone https://github.com/MattiaFanan/CL-DriverIdentification.git
NOTE: if you're accessing this data from the anonymized repository, the above command might not work.
Then, install the required Python packages by running:
pip install -r requirements.txtThe code automatically logs the metrics on Weights & Biases (wandb library), so you will need an account there.
The main experiments require the file api_key.json to log into Weights & Biases.
{
"api-key": "put your api-key here"
}The auto_main instead takes the dataset as data/dataset.csv, you may want to change this in the base_main_args list right after the imports.