This repository contains the code used for the paper Towards Land Vehicle Ego-Velocity Estimation using Deep Learning and Automotive Radars. The paper proposes a deep learning framework for estimating ego-velocity of land vehicles equipped with FMCW radars.
The project was tested on Ubuntu 20.04
and Python 3.8.10
. Other used libraries can be found in the requirements.txt file. After cloning the repository, you can create a custom environment using the following command:
python3 python3 -m venv env
The, proceed with the installation of the required libraries:
source env/bin/activate
pip3 install -r requirements.txt
Until the publication of this repository, the NavINST dataset was not publicly available. After downloading the RadarScenes dataset, please extract it into the radarscenes folder so that the contents appear as follows:
For the MSC-RAD4R dataset, after downloading all urban sequences, extract them into the mscrad4r folder so that the contents look as follows:
The file sets.json
is provided with this repository. Inside each urban sequence, make sure to downnload the following data:
Inside the src folder you can find the codes for each dataset tested. The utils folder contains common scripts. The checkpoints folder contains the checkpoints for the proposed models. Finally, the runs folder contains Tensorboard checkpoints for analysis.
Detailed descriptions of the scripts, in order of their utilization, are provided below.
Script | Description |
---|---|
meta | Used to compute the lever arm between the vehicle coordinate system and all radars. The acquired information is used inside the compare script. |
preprocess | Used to define the sequences included in the training, validation and test sets used by the main script. |
dataset | Contains the PyTorch Dataset classes. |
main | Used to train and test the models. By default, the test script saves the estimated outputs as CSV file used by the compare script. |
compare | Used to compare the proposed models and the benchmarks. Run main script in test mode using the desired weights for each sequence available in the test set before comparing the results. |
Script | Description |
---|---|
sync | Used to sync the radars with the reference. It follows the splits defined in the sets.json file. |
dataset | Contains the PyTorch Dataset classes. |
main_2D | Used to train and test the 2D models. By default, the test script saves the estimated outputs as CSV file used by the compare script. |
main_3D | Used to train and test the 3D models. By default, the test script saves the estimated outputs as CSV file used by the compare script. |
compare | Used to compare the proposed models and the benchmarks. Run main_2D and main_3D scripts in test mode using the desired weights for each sequence available in the test set before comparing the results. |
Script | Description |
---|---|
pcd | Folder containing C++ scripts to extract the point cloud info from PCD files to binary files. |
sync | Used to sync the radars with the reference. It follows the splits defined in the sets.json file. |
dataset | Contains the PyTorch Dataset classes. |
main_2D | Used to train and test the 2D models. By default, the test script saves the estimated outputs as CSV file used by the compare script. |
main_3D | Used to train and test the 3D models. By default, the test script saves the estimated outputs as CSV file used by the compare script. |
compare | Used to compare the proposed models and the benchmarks. Run main_2D and main_3D scripts in test mode using the desired weights for each sequence available in the test set before comparing the results. |
If you find this repository helpful, please consider citing:
@article{de2024towards,
title={Towards Land Vehicle Ego-Velocity Estimation using Deep Learning and Automotive Radars},
author={De Araujo, Paulo Ricardo Marques and Noureldin, Aboelmagd and Givigi, Sidney},
journal={IEEE Transactions on Radar Systems},
year={2024},
publisher={IEEE}
}