
Netra — AI Surveillance System
Autonomous person-tracking surveillance on constrained hardware, with real-time detection and an anomaly-scoring dashboard.
- ESP32-CAM
- YOLOv8
- MQTT
What it had to solve
Surveillance that only records is evidence after the fact. Making it act — follow a person, notice something unusual — normally means a camera with a computer behind it. Doing it on an ESP32-CAM means the whole loop, detection through to servo movement, has to close on hardware with a fraction of the memory and no GPU, over a transport that tolerates an unreliable link.
The decisions that shaped it
A closed perception-to-motion loop
The ESP32-CAM streams into a YOLOv8 detection pipeline whose output drives pan-tilt servos. Detection is not the end of the system, it is the input to a control loop — the camera physically follows what it finds, which is what makes the tracking autonomous rather than an overlay on a recording.
MQTT because the link is not reliable
Commands and telemetry move over MQTT, a publish-subscribe transport built for constrained devices and intermittent networks. On this hardware that matters more than throughput: the loop has to degrade rather than stall when the link does.
Anomaly scoring on top of detection
Raw detections say a person is present. Anomaly scoring is the layer that decides whether that is worth attention, which is what turns a stream of positives into something an operator can act on.
Patrol heat-maps as the operator view
A FastAPI and React console renders where the camera has actually been looking as a heat-map, so coverage gaps become visible instead of implicit.
How the pieces sit together
- ESP32-CAM streaming from constrained hardware
- YOLOv8 person detection pipeline
- Pan-tilt servos driven from detection output
- MQTT for commands and telemetry
- FastAPI + React with anomaly scoring and patrol heat-maps
Built into the product
Autonomous tracking
Servos following detections without an operator.
On-device pipeline
Running against ESP32-CAM constraints, not a workstation.
Anomaly scoring
Separating what is present from what is worth attention.
Patrol heat-maps
Coverage made visible in the console.
What it is built out of
- YOLOv8, Python
- ESP32-CAM, Pan-tilt servos
- MQTT
- FastAPI, React
What it looks like



What it produced
- On-device
- Detection on constrained hardware
- Closed
- Loop from detection to servo movement
- Live
- Anomaly scoring and coverage heat-maps