Making Every Event Count: Event Camera Subsampling Methods

May 30, 2025 Β· View on GitHub

CVPR 2025 Workshop License: MIT

Official codebase for the CVPR 2025 workshop paper:

Making Every Event Count: Balancing Data Efficiency and Accuracy in Event Camera Subsampling
Hesam Araghi, Jan van Gemert, Nergis Tomen
Delft University of Technology
Paper PDF | Project Page

πŸ” Overview

Event cameras offer high temporal resolution and power efficiency, but their high event rates can overload processing systems. We explore six hardware-friendly event subsampling methods and assess their impact on event-based video classification.

πŸ”‘ Key Contributions

  • πŸ“Š Systematic evaluation of 6 causal, hardware-friendly subsampling methods.
  • 🧠 Proposal of a causal density-based subsampling technique to test the hypothesis that dense regions contain more information.
  • πŸ“‰ Analysis of accuracy–efficiency trade-offs across three benchmark datasets.

πŸ“‚ Subsampling Methods

TypeDescription
SpatialKeep every n-th row and m-th column
TemporalKeep the events in every t-th time interval
RandomKeep each event with probability p
Event Count 1Spatially subsample based on event counts within fixed-size windows
Corner-based 2Keep the events in the corners using the Harris corner detector
Causal Density-basedCausally filter and keep events more in spatiotemporally dense regions

🧊 Illustration: Event Subsampling Methods

Visualization of six different subsampling methods applied to the same input from an event camera. All variants retain approximately the same number of events.

subsampling_examples

πŸ“ˆ Datasets

We evaluate our methods on:

  • N-Caltech101: Object classification with camera motion.
  • DVS-Gesture: Human gesture recognition with real motion.
  • N-Cars: Binary classification (car vs. background) in urban driving.

πŸ—οΈ Setup with uv

uv is a fast Python package manager and virtual environment tool.

1. Install uv

If you don't have uv, install it with:

curl -Ls https://astral.sh/uv/install.sh | sh

Or follow the instructions at uv's GitHub.

2. Create and activate a virtual environment

uv venv .venv
source .venv/bin/activate

3. Install dependencies

uv pip install -r requirements.txt

4. Run the train script

python train.py --cfg_path path/to/config.yaml

πŸ“Ž Citation

If you use this code or find our work helpful, please cite:

@inproceedings{araghi2025EvSubsampling,
  title={Making Every Event Count: Balancing Data Efficiency and Accuracy in Event Camera Subsampling},
  author={Araghi, Hesam and van Gemert, Jan and Tomen, Nergis},
  booktitle={CVPR Workshop},
  year={2025}
}

πŸ“¬ Contact

For questions, feedback, or collaborations, feel free to reach out via:

We welcome contributions and discussions from the community!

Footnotes

  1. A. Gruel et al., β€œEvent Data Downscaling for Embedded Computer Vision,” VISAPP 2022. ↩

  2. A. Glover et al., β€œluvHarris: A practical corner detector for event-cameras,” IEEE TPAMI 2021. ↩