The EventCV Library for Event-Based Robotic Vision
Organizations: QUT Centre for Robotics, School of Electrical Engineering and Robotics, Queensland University of Technology, Brisbane, QLD 4000, Australia.
Abstract
Event cameras detect per-pixel brightness changes asynchronously on microsecond timescales, with high dynamic range and low power draw. These are desirable properties for robots that move fast or work in difficult lighting conditions. However, integrating an event camera into a real-world robotic pipeline still requires substantial effort: plug-and-play drivers do not exist, event streams are recorded in a variety of incompatible file formats, and most projects rely on custom research-grade code. Here, we present EventCV, an open-source and extensible Rust library with OpenCV-style Python bindings that lowers the entry barrier to working with event cameras. EventCV provides a wide range of features: denoising filters and geometric transforms, augmentations, corner detection and unsupervised feature learning, contrast-maximization motion estimation, a video-to-events simulator, and Open Neural Network Exchange (ONNX) inference for deployment in robotic stacks. EventCV integrates the Neuromorphic Drivers package, allowing an event camera stream to be processed directly in real time. No existing toolkit covers this range of operations in one package, and EventCV builds representations and decodes files 1.1x to 3.7x faster than the currently available libraries. We deploy EventCV on a Jetson Orin AGX and present three robotics case studies spanning object detection, on-device model inference, and localization. Project webpage: https://eventcv.net.
Figures & tables
| Capability | EventCV | AEDat [ 10 ] | AEStream [ 11 ] | evlib [ 12 ] | Event utils [ 13 ] | Expelliarmus [ 14 ] | Faery [ 15 ] | jAER [ 16 ] | Tonic [ 17 ] |
|---|---|---|---|---|---|---|---|---|---|
| Read/write | ✓✓✓ | ✓ | ✓✓ | ✓ | ✓ | ✓ | ✓✓ | ✓✓ | ✓ |
| Format scope | Broad I/O | AEDAT4 read | Selected formats | Selected formats | Research formats | Prophesee formats | Several formats | Several formats | Dataset parsers |
| Live streaming | ✓✓✓ | × | ✓✓ | × | × | × | ✓✓ | ✓✓✓ | × |
| Sensor control | Bias + ROI | Not applicable | Driver dependent | Not applicable | Not applicable | Not applicable | Driver dependent | Bias controls | Not applicable |
| Filter/transforms | ✓✓✓ | × | ✓ | ✓ | ✓✓ | ✓ | ✓ | ✓✓✓ | ✓✓ |
| Event processing | Geometry + filters | Not provided | Basic transforms | Lazy filtering | Augment + motion | Windowed I/O | Stream operations | Broad filter stack | Augmentation suite |
| Representation | EventCV | Tonic [ 17 ] | evlib [ 12 ] | Speed-up |
|---|---|---|---|---|
| Polarity frame (2 ch.) | 23.78 | 136.36 | 67.22 | 2.8 |
| Voxel grid (5 bins) | 26.50 | 124.44 | 97.23 | 3.7 |
| Time surface | 21.33 | 59.16 | 80.76 | 2.8 |
| Library | EVT3 raw | AEDAT 4.0 | HDF5 |
|---|---|---|---|
| 116.3 Mev | 10.0 Mev | 183.9 Mev | |
| EventCV | 53.8 (1.6 ) | 85.4 (1.1 ) | 16.3 (3.2 ) |
| Expelliarmus [ 14 ] | 33.5 | — | — |
| dv-processing [ 8 ] | — | 77.0 | — |
| evlib [ 12 ] | 5.4 | — | 5.1 |
Event-Based Vision
Event-based vision uses asynchronous camera measurements to perceive motion and scene changes with high temporal resolution and dynamic range.
See all 232 papers