- Client
- Smart device maker (under NDA)
- Before
- Raspberry Pi + camera
- After
- ESP32-S3 + camera module
- Model
- Small image classification and detection
The problem
The client's product used a Raspberry Pi to run a small vision model. It worked well in the prototype, but at production volume the Pi, its power supply and its SD card made the product too expensive, and too power-hungry for the enclosure they wanted.
When I suggested an ESP32-S3, the reaction was what you would expect: a microcontroller can't run our AI model. The only way to answer that was with data.
How I proved it
Define success
We agreed on the metrics up front: accuracy on their own test images, time per inference, and power.
Shrink the model
I retrained a smaller architecture with the same classes and quantised it to 8-bit using Espressif's ESP-DL tooling, which uses the ESP32-S3's vector instructions.
Benchmark side by side
Both devices ran the same test set. I published a short report with accuracy, latency and power for each.
Test on the real camera
Calibration and validation used frames from the product's actual camera, not internet images.
| Metric | Raspberry Pi | ESP32-S3 |
|---|---|---|
| Accuracy | ~96% | ~95% |
| Inference time | ~40 ms | ~180 ms (well inside the 500 ms need) |
| Typical power | ~3 W | ~0.3 W |
| Compute cost per unit | Baseline | ~70% lower |
What the client got
Results
- The same practical accuracy at a much lower unit cost.
- A battery-friendly design that fits the smaller enclosure.
- A benchmark report they used to convince their own investors.
- A model training and quantisation pipeline they can rerun as data grows.