Idea 6: Sparse Event-Driven Vision/Audio with ESP32 (Neuromorphic Edge)
Overview
Pair an ESP32 with an event-based sensor (event camera or silicon cochlea) and develop a sparse neural network that processes raw event addresses/timestamps directly. Eliminate the “sense-then-compress” paradigm by computing directly on sparse event streams.
Research Gap
- All TinyML vision/audio on ESP32 converts to dense frames/spectrograms, wasting bandwidth and compute
- Event-based sensors output sparse asynchronous data, but existing processing requires FPGA or GPU
- No prior work demonstrates event-driven inference on a commodity microcontroller like ESP32
- The neuromorphic computing community focuses on custom silicon, not commodity MCUs
Key Innovation
First demonstration of sparse event-driven inference on commodity ESP32 hardware. Develop custom data structures and sparse kernels that exploit event sparsity for 100x lower effective compute compared to frame-based processing.
Hardware Requirements
| Component | Specification | Purpose |
|---|---|---|
| Main MCU | ESP32-S3-DevKitC | Compute platform |
| Event Sensor | Prophesee Metavision (if budget allows) or TDK/InvenSense IMU with event mode | Event input |
| Alternative | Low-cost event camera (e.g., iniVation DVXplorer mini) or DIY event sensor | Budget option |
| Alternative 2 | Custom microphone array with threshold-based event detection | Ultra-low-cost |
| Timing | Logic analyzer | Event timestamp validation |
Technical Approach
Phase 1: Event Representation
- Events: tuples of (x, y, t, p) for vision or (channel, t, p) for audio
- p = polarity (+1 for ON event, -1 for OFF event)
- Temporal resolution: microseconds
- Spatial resolution: depends on sensor (e.g., 320x240 for event camera)
Phase 2: Sparse Data Structures on ESP32
- Event Queue: Circular buffer in PSRAM storing last N events (e.g., 10,000 events = ~160 KB)
- Sparse Tensor: Hash map or coordinate list (COO format) for active regions
- Event Surface: 2D grid where each cell stores timestamp of last event (for vision)
- Design for cache efficiency: group nearby events for batch processing
Phase 3: Sparse Neural Network
-
Spiking Neural Network (SNN):
- Leaky Integrate-and-Fire (LIF) neurons
- Event-driven: neurons update only when they receive spikes
- Synaptic weights stored in flash
- Implement in C with event-driven scheduling
-
Event-Driven CNN:
- Process events in small temporal windows (e.g., 10 ms)
- Sparse convolution: only compute where events occurred
- Use hash map for sparse activation storage
- Output: classification or regression
Phase 4: Comparison Baselines
- Frame-based: Convert events to frames (accumulate over 33 ms), run standard CNN on ESP32
- Dense processing: Process all pixels/timesteps regardless of events
- Measure: accuracy, latency, energy, memory
Phase 5: Applications
- Gesture Recognition: Hand gestures captured by event camera; classify in real-time
- Anomaly Detection: Industrial vibration monitoring with event-based IMU
- Audio Keyword Spotting: Event-based silicon cochlea for always-on listening
Expected Results
- 50-100x lower effective compute (FLOPs) compared to frame-based equivalent
- <10% accuracy loss compared to frame-based baseline
- Latency: <50 ms end-to-end (event to classification)
- Memory: <200 KB for event buffer + model
- Energy: <5 mJ per inference
Target Venues
- Frontiers in Neuroscience (Neuromorphic Engineering)
- IEEE Transactions on Very Large Scale Integration (TVLSI)
- Nature Electronics
- IEEE International Conference on Neuromorphic Systems (ICONS)
Related Work to Cite
- Event-based vision: Prophesee, iniVation, DAVIS sensor papers
- Spiking neural networks: SNN literature (e.g., BindsNET, snnTorch)
- Sparse neural networks: Lottery ticket hypothesis, structured sparsity
- Neuromorphic computing: Intel Loihi, IBM TrueNorth (contrast with commodity MCU)
- Event-based audio: AER cochlea, silicon cochlea papers
Risk Mitigation
| Risk | Mitigation |
|---|---|
| Event sensor too expensive | Use IMU with threshold-based event detection as proxy; or build DIY event sensor |
| Sparse kernels too slow on ESP32 | Batch events into small groups; use lookup tables for common operations |
| SNN training difficult | Use ANN-to-SNN conversion (e.g., rate coding) instead of direct SNN training |
| Event data hard to get | Use public event-based datasets (DVS-Gesture, N-Cars, N-Caltech101) |
Timeline (Approximate)
- Weeks 1-2: Event sensor setup, data collection, dataset preparation
- Weeks 3-4: Sparse data structure design and implementation
- Weeks 5-6: Sparse neural network kernel development
- Weeks 7-8: End-to-end pipeline and frame-based baseline
- Weeks 9-10: Evaluation and paper writing