SuperEvent: Cross-Modal Learning of Event-based Keypoint Detection for SLAM
ICCV 2025 (Highlight)
🏆 Winner: IROS 2025 EvSLAM Challenge
This is the official repository of SuperEvent: Cross-Modal Learning of Event-based Keypoint Detection for SLAM. For more details, please check our project page.
🔔 Update August 25, 2026 🔔
We have added the improved models SuperEvent+, SuperLitE used in our paper AERO-VIS: Asynchronous Event-based Real-time Onboard Visual-Inertial SLAM and the related training, evaluation, and export code.
Clone this repository
git@github.com:ethz-mrl/SuperEvent.git
cd SuperEvent
# If you want to generate training data, you need to initialize the submodules (SuperGlue)
git submodule update --init --recursiveCreate conda environment
conda create --name se python=3.12
conda activate seInstall requirements with pip
pip install -r requirements.txtAdd SuperEvent root directory to Pythonpath (required in every new terminal)
export PYTHONPATH=$PYTHONPATH:$PWDTo test the system using the pre-generated files in example_data (MCTS + pseudo labels), run
python visualize_matches.py --config <super_event / super_event_plus / super_lite>.yaml- Filter images without event stream at their timestamp.
- Create Multi-Channel Time Surfaces (MCTS) at image timestamps. By default, the MCTS will have constant event count, since SuperEvent+ and SuperLitE achieve higher accuracy with this event representation. MCTS with constant time windows (SuperEvent) can be generated by passing the
-wflag. - Create pseudo labels using SuperPoint + SuperGlue.
- Divide sequences into 'train', 'val' and 'test' sets.
Bash script to execute this pipeline:
./data_preparation/prepare_training_data.sh -d path/to/datasetOptional arguments:
-t : Path where SuperEvent training data will be written. Default: path/to/dataset/../SuperEvent_data
-c : Path of config file containing the desired 'train', 'val' and 'test' splits. Default: ${HOME}/repos/SuperEvent/config/super_event.yaml
-w : Build the legacy MCTSs with constant time windows.
We combined the following five datasets for training:
python train.pypython evaluate_pose_estimation.py <path/to/evaluation/dataset>We support evaluation on the following datasets:
python visualize_matches.pyShows matched keypoints from SuperEvent inference on test set with SuperPoint + SuperGlue's pseudo labels.
We also provide the superevent-runtime library with pregenerated models as well as optimized inference code, a time-surface generator, and usage examples. superevent-runtime is also integrated in OKVIS2-X to enable event-based SLAM.
To export a model yourself (e.g., with different spatial resolution or batch size), there are two options to export the model.
TorchScript is portable, but not very performance-optimized.
python export/export_model.py saved_models/super_event_plus_weights.pth --config config/super_event_plus.yaml --dynamic_shapesTo export the model to ONNX, please install the follwing additional dependencies:
pip install onnx==1.18.0 onnxruntime==1.23.2 onnxscript==0.5.6To export a model with fixed shape and batch size in fp16 precision to onnx, the following flags can be used:
python export/export_model.py saved_models/super_lite_weights.pth --config config/super_lite.yaml --out_dir onnx_models/super_lite_weights --dtype float16 --input_shape "240 320" --batch_size 2 --use_onnxAlternatively, there is a bash script to create models with batch size 2 and fp16 for the common event camera resolutions:
python export/export_model.py saved_models/super_event_plus_weights.pth --config config/super_event_plus.yaml --dynamic_shapesInstructions on how to convert the ONNX model to TensorRT can be found in superevent-runtime/model_zoo/trt/.
If you find our work useful, please cite one of the following works:
@InProceedings{Burkhardt_2025_ICCV,
author = {Burkhardt, Yannick and Schaefer, Simon and Leutenegger, Stefan},
title = {SuperEvent: Cross-Modal Learning of Event-based Keypoint Detection for SLAM},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
month = {October},
year = {2025},
pages = {8918-8928}
}@article{Burkhardt_2026_RAL,
title={{AERO-VIS}: Asynchronous Event-based Real-time Onboard Visual-Inertial {SLAM}},
author={Burkhardt, Yannick and Barbas Laina, Sebasti\'an and Boche, Simon and Frei{\ss}muth, Leonard and Leutenegger, Stefan},
journal={IEEE Robotics and Automation Letters},
year={2026}
}