Skip to content

ethz-mrl/SuperEvent

Repository files navigation

SuperEvent: Cross-Modal Learning of Event-based Keypoint Detection for SLAM
ICCV 2025 (Highlight)
🏆 Winner: IROS 2025 EvSLAM Challenge

SuperEvent matches and pseudo labels from test set

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.

Installation

Clone this repository

[email protected]:ethz-mrl/SuperEvent.git
cd SuperEvent
# If you want to generate training data, you need to initialize the submodules (SuperGlue)
git submodule update --init --recursive

Create conda environment

conda create --name se python=3.12
conda activate se

Install requirements with pip

pip install -r requirements.txt

Add SuperEvent root directory to Pythonpath (required in every new terminal)

export PYTHONPATH=$PYTHONPATH:$PWD

Demo

To test the system using the pre-generated files in example_data (MCTS + pseudo labels), run

python visualize_matches.py

Steps to prepare training data

  1. Filter images without event stream at their timestamp.
  2. Create Multi-Channel Time Surfaces (MCTS) at image timestamps.
  3. Create pseudo labels using SuperPoint + SuperGlue.
  4. Divide sequences into 'train', 'val' and 'test' sets.

Bash script to execute this pipeline:

./data_preparation/prepare_training_data.sh -d path/to/dataset

Optional 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
-u : Adding this flag will create undistorted training data. We do not recommend turning undistortion on, since it can lead to artifacts in the MCTS.

We combined the following five datasets for training:

Training

python train.py

Evaluation

python evaluate_pose_estimation.py <path/to/evaluation/dataset>

We support evaluation on the following datasets:

Qualitative examples

python visualize_matches.py

Shows matched keypoints from SuperEvent inference on test set with SuperPoint + SuperGlue's pseudo labels.

Citation

If you find our work useful, please cite:

@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}
}

About

Data-driven keypoint detection and description in event streams.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published