A toolbox for LiDAR point cloud data, providing point cloud transformations, point cloud augmentation, realistic weather simulation and 2D & 3D AP evaluation, with an easy-to-use Python API. This module supports several essential tasks for the development of LiDAR-based perception methods in automated driving.
First clone and enter the repository:
git clone https://github.com/ekut-es/LidarAug && cd LidarAug
The following dependencies are necessary to build and test the C++ library for development:
It is also necessary to set the environment variable TORCH_PATH
to point to where libtorch
is installed on your
system.
After that, just run make ctest
to compile the library and run google test.
Note that the tests written for the backend include some controlled RNG tests which might fail on different platforms with different architectures such as the Apple MX chips. The tests were developed for Linux x86 using GCC.
The following dependencies are necessary to install the Python module:
To use the Python module, just run make install
after cloning and entering the repository.
To test the python functions/wrappers, install pytest (pip install pytest
) and
run make testpy
.
The required Python version is 3.11.
The lidar_aug
Python module contains 5 submodules:
- transformations:
transformations
contains any C++ enums, structs and functions that have bindings and are used for transformations.
- weather_simulations:
weather_simulations
contains any C++ enums, structs and functions that have bindings and are used for weather
simulations.
- augmentations:
augmentations
contains the Python wrappers for any C++ function (weather simulation or transformation).
- evaluation:
evaluation
contains (C++) function to evaluate the accuracy of bounding boxes.
This can be done for 2D and 3D bounding boxes.
- point_cloud:
point_cloud
contains things that is specific to point clouds that is used across modules and functionally not
specific to the task of one of those.
Such as the IntensityRange
enum that is used to set/determine the maximum intensity of the points in a point cloud.
Alternatively the module can be run inside a Docker container.
After installing Docker and cloning the repository, all you need to do is run make docker
,
which will start building the image and automatically run the tests during the build process.
NOTE: If you're running the docker image on ARM run make docker-arm
instead.