Edge AI ecological monitoring system
A camera on a farm that spots animals and decides whether they are a threat to livestock. Everything runs on the device, with no cloud connection.
- Year
- 2026
- Context
- Intelligent Embedded Systems capstone, University of Twente
- Team
- 4 students
- Hardware
- Raspberry Pi 5 with Hailo AI HAT+ (Hailo-10H, 40 TOPS)
How it works
The camera feeds frames to the Pi’s CPU, which only captures and resizes them. Detection runs on the Hailo-10H: a YOLO11 model trained on six animal classes from Open Images V7, plus non-animal examples so that furniture and vehicles don’t trigger it.
Non-maximum suppression also runs on the chip, so the CPU receives a short list of boxes instead of raw model output. A separate rule layer turns detections into a threat decision, with its own confidence threshold for each class and a check over several frames. Keeping those rules outside the model means the policy can change without retraining. Every event goes into a SQLite log, and a live dashboard reads from it.
My part
Getting the model onto the accelerator without losing the classes that mattered. I pruned the network by 15%. At 30% the fox recall collapsed, so we rejected that. I compiled the model to INT8 with the Hailo Dataflow Compiler and moved NMS onto the chip. I also built the live dashboard.
What I learned
Calibration images for quantisation have to be raw 0 to 255 pixel values. If they are normalised, the model quietly loses accuracy and nothing warns you.
A dataflow chip like Hailo’s isn’t compute-bound, so the classic roofline model points at the wrong bottleneck.
Result
The pruned FP32 model reached 0.76 mAP50-95. We deployed and benchmarked it on the Hailo-10H with on-chip NMS and delivered the capstone with a full report.
Try it
Threat rule
Drag the threshold and the number of frames in a row. The rule only raises an alarm when the detector is sure for several frames in a row.
Made-up fox confidences over 12 frames.