AI-enabled MSF systems.
we summarizes the seven MSF systems used in our benchmark in this link.
These seven systems cover three different tasks and three different fusion mechanisms
Corruption.
We leverage fourteen common corruption patterns to synthesize corrupted data that could possibly occur in the operational environments to evaluate MSF systems’ robustness.
these corruption patterns can be naturally grouped into four categories: weather corruption, sensor corruption, noise corruption, and sensor misalignment.
we visualize the corruption patterns in this link.
Installation
We implement all the MSF systems with PyTorch 1.8.0 and Python 3.7.11. All experiments are conducted on a server with an Intel i7-10700K CPU (3.80 GHz), 48 GB RAM, and an NVIDIA GeForce RTX 3070 GPU (8 GB VRAM).
Corruption Patterns Dependency
Run the following command to install the dependencies
cd Corruption
pip install -r requirements.txt
If you need to synthesize rain and fog, you need to install the following dependencies
For synthesize realistic images of rain and fog, you need to install the dependencies in this repository. link
optional : git clone the repository and move to AI-MSF-Benchmark/corruption/3rd_parts/camera/
Synthesize corrupted data for KITTI object detection dataset.
Applying corruption operators to a clean dataset (e.g. KITTI) can synthesize realistic corrupted dataset.
Note that corruption patterns used in this study can also generalize to other datasets, such as Waymo, NuScenes.
The corruption patterns we offer can be used separately.
Run the following command to synthesize corruption image:
Add rain with 10 mm/h rainfall to images and point clouds. (Note that you need to correctly configure third-party dependencies in “Corruption Patterns Dependency” section)
Refer to corruption/corruption_configs.py to learn more details about the corruptions.
Evaluate MSF-based Systems
In order to reproduce our experiments(RQ1, RQ2, RQ3), you should
Install the dependencies according to the requirements of each system,
Place the specified synthetic data set in the corresponding directory
Evaluate the system performance.
In order to reproduce RQ4, for CLOCs-Rb, run tools/aggerate_bounding_box.py to aggregate high confidence and unique results from an individual branch to the fusion results. For FConv, you should
Generate the 2D front view images of rgb images.
Train a 2D detector on 2D front view images.
Copy Second from AI-MSF-benchmark/system/CLOCs/second to AI-MSF-benchmark/ops/second.
Run tools/aggerate_bounding_box.py to aggregate guidance from different branch.
Results
Citation
Please cite the following paper if AI-MSF-Benchmark helps you on the research:
@inproceedings{10.1145/3611643.3616278,
author = {Gao, Xinyu and Wang, Zhijie and Feng, Yang and Ma, Lei and Chen, Zhenyu and Xu, Baowen},
title = {Benchmarking Robustness of AI-Enabled Multi-Sensor Fusion Systems: Challenges and Opportunities},
year = {2023},
doi = {10.1145/3611643.3616278},
booktitle = {Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering},
pages = {871–882},
numpages = {12},
series = {ESEC/FSE 2023},
publisher = {Association for Computing Machinery},
}
AI-MSF-Benchmark
This repository provides the code of the paper “Benchmarking Robustness of AI-enabled Multi-sensor Fusion Systems: Challenges and Opportunities“
[website]
AI-enabled MSF systems. we summarizes the seven MSF systems used in our benchmark in this link. These seven systems cover three different tasks and three different fusion mechanisms
Corruption. We leverage fourteen common corruption patterns to synthesize corrupted data that could possibly occur in the operational environments to evaluate MSF systems’ robustness. these corruption patterns can be naturally grouped into four categories: weather corruption, sensor corruption, noise corruption, and sensor misalignment. we visualize the corruption patterns in this link.
Installation
We implement all the MSF systems with PyTorch 1.8.0 and Python 3.7.11. All experiments are conducted on a server with an Intel i7-10700K CPU (3.80 GHz), 48 GB RAM, and an NVIDIA GeForce RTX 3070 GPU (8 GB VRAM).
Corruption Patterns Dependency
Run the following command to install the dependencies
If you need to synthesize rain and fog, you need to install the following dependencies For synthesize realistic images of rain and fog, you need to install the dependencies in this repository. link
Install MSF-based Systems
In order to reproduce our experiments, we need to carefully configure the environment for each system. The details are here
The structure of the repository
Folder Structure:
Usage
Synthesize Corrupted Dataset
Synthesize corrupted data for KITTI object detection dataset.
Applying corruption operators to a clean dataset (e.g. KITTI) can synthesize realistic corrupted dataset. Note that corruption patterns used in this study can also generalize to other datasets, such as Waymo, NuScenes. The corruption patterns we offer can be used separately.
Run the following command to synthesize corruption image:
Similarly, we also provide commands for synthesizing other types of corruption data
Here are some examples:
Add brightness with a severity level of 3 to the image.
Add Gaussian noise with a severity level of 5 to the point cloud.
Add 2 degree rotation to x rotation axis to simulate spatial misalignment between the camera and LiDAR.
Add 0.1 second (i.e. 1frame) delay on camera.
Add rain with 10 mm/h rainfall to images and point clouds. (Note that you need to correctly configure third-party dependencies in “Corruption Patterns Dependency” section)
Refer to
corruption/corruption_configs.py
to learn more details about the corruptions.Evaluate MSF-based Systems
In order to reproduce our experiments(RQ1, RQ2, RQ3), you should
In order to reproduce RQ4, for CLOCs-Rb, run
tools/aggerate_bounding_box.py
to aggregate high confidence and unique results from an individual branch to the fusion results. For FConv, you should Generate the 2D front view images of rgb images.AI-MSF-benchmark/system/CLOCs/second
toAI-MSF-benchmark/ops/second
.tools/aggerate_bounding_box.py
to aggregate guidance from different branch.Results
Citation
Please cite the following paper if
AI-MSF-Benchmark
helps you on the research: