Skip to main content

What event cameras produce

A conventional camera captures a full frame at a fixed rate. An event camera (Dynamic Vision Sensor, DVS) outputs asynchronous events — each pixel fires independently the moment its brightness changes, producing a stream of (timestamp, x, y, polarity) tuples. This is intrinsically spiking data: sparse, asynchronous, and event-driven. An SNN processes it natively — no frame construction, no idle computation between events.

Dataset: N-MNIST

Neuromorphic MNIST (N-MNIST) is the MNIST handwritten digit dataset re-recorded with a DVS camera executing three saccade movements over each printed digit. Reference: Orchard et al. 2015 — “Converting Static Image Datasets to Spiking Neuromorphic Datasets Using Saccades”. Frontiers in Neuroscience, 9, 437. DOI: 10.3389/fnins.2015.00437

Preprocessing

Events are binned into T = 20 equal-duration frames using tonic. Each frame is a [2, 34, 34] binary tensor (ON polarity / OFF polarity). The spatial dimensions are flattened before the SNN, giving a 2312-feature spike vector per timestep:
Multiple events in the same bin and polarity are clamped to 1 — no count accumulation.

Architecture

Three fully-connected LIF layers. Spatial feature extraction is done implicitly — the Dense weights learn polarity- and position-selective filters. This pipeline compiles end-to-end through the current thrindex compiler.
Why threshold=0.5? N-MNIST event frames are already binary {0, 1}. A threshold of 1.0 requires the membrane to accumulate across multiple timesteps before firing, which works but slows learning. 0.5 places the threshold at one event above resting potential, giving adequate gradient flow from the first epoch.

Training

tonic downloads N-MNIST (~315 MB) automatically on first run. Training for 30 epochs on a GPU takes roughly 8–12 minutes.

Results

Committed accuracy floor: ≥ 95.0% Floor is set conservatively below the feedforward baseline (97.8%). STDP-based and recurrent results (≥ 99%) are excluded as non-comparable.

Compile and run

Three N-MNIST-shaped spike-train samples are bundled in templates/event-camera/samples/ for fully offline inference. Each encodes a [T=20, 2312] binary spike tensor.

Why this template is different from keyword spotting

The event-camera pipeline demonstrates that the same training loop, the same encoder interface, and the same thx.compile call handle both auditory and visual event-native data. The .thx format and the simulator are dataset-agnostic.