How it works
Five steps, no jargon. Everything below runs on the phone itself. There is no server doing the thinking, and the camera video never leaves the device.
Point the phone at anything. The app grabs a single frame and shrinks it to
640 × 640 so the next step has a fixed amount of work to do.
A small neural network called YOLOv8n reads that picture. It was trained on 17,221 photographs of real fires and smoke, and it answers one question per region of the image: is there fire here, is there smoke here, and how sure am I?
It runs at about 2 frames per second on a mid-range phone. That is fast
enough to watch a room, and it is the same model that scores 0.748
mAP50 on the 4,306-image D-Fire test split.
Anything above the confidence floor gets a labelled rectangle. Above
0.20 confidence the box appears. It is deliberately a low bar,
because for a fire alarm a false alarm is an inconvenience and a missed fire
is a disaster.
The app reads your GPS position and sends one SMS to the emergency contact you saved in Settings. The message says what was seen, how confident the model was, and the coordinates. A 30-second cooldown stops it texting repeatedly.
You can also press and hold REPORT FIRE for 1.5 seconds to send the same alert by hand, without waiting for the AI.
A separate Bluetooth rover can be driven from the app and carries two cameras and a water pump. It is optional: the alert in steps 1 to 4 works with no rover connected at all.
The pump and the cameras are in the build plan but the components have not arrived, and the rover's motor driver failed, so no movement is claimed here.
A label, a confidence number and a set of coordinates. Never the video. Camera frames are analysed on the device and discarded. If you are signed in, an alert record is written to Firebase so your history follows you to a new phone. That is the entire list.
| Term | What it means here |
|---|---|
| mAP50 | One number for "how good is this detector overall", measured on held-back photos the model never trained on. Higher is better. Ours is 0.748. |
| confidence | How sure the model is about one box. 0.86 means fairly sure, not certain. |
| quantization | Shrinking the model's numbers so the file is smaller and runs faster. We do it in a way that costs 0.039 mAP, measured. |
| FP32 / INT8 | How many bits each number takes up. Fewer bits is a smaller file and faster maths. |
| cooldown | After sending an SMS the app waits 30 seconds before it is allowed to send another. |
| ESP32-CAM | A small camera board that would sit on the rover. Not connected yet. |