Computer Vision · Edge AI
Seconds Ahead of the Alarm
A multi-class vision agent on existing CCTV: fire, smoke, and extinguishers localized in-frame—so operations see the source before a ceiling head trips.
- Client
- Confidential
- Industry
- Industrial, fuel, and outdoor sites
- Engagement
- Applied AI engineering
Detection path
Vision agent
seconds
Camera frame → on-edge model → clip + location on the phone
Ceiling smoke alarm
minutes
Plume rises → mixes with airflow → sensor threshold → alarm
3
Detection classes
13
Scene types evaluated
8
Lighting / weather regimes
0
New cameras required
What the agent sees
Detections from the live feed
Eval frames from the detector. One head, three classes, instance boxes—not a scene-level “fire / no fire” flag. The same payload an on-call lead would get: camera ID, UTC time, clip, and classed regions.
- Fire
- Smoke
- Extinguisher

CAM 04 · Forest N · Daylight woodland
Utility-pole cabinet fire. Early flame is boxed at the source; the plume is a separate smoke class; a ground extinguisher is indexed in-frame.

GSD CAM 01 · Entrance · Night infrared
Monochrome IR at a gated entrance. The same three classes hold under floodlight contrast and total darkness—no colour cue required.

Yard cam · Courtyard · Daylight alley
Electrical cabinet in a brick courtyard. Multiple fire boxes sit on door seams while smoke is tracked as a rising column—onset, not a fully involved room.

Indoor · Kitchen · Communal interior
Table-top fire in a breakroom. Smoke is rising toward the ceiling before a detector would trip; the wall extinguisher is already located.

Bay door · Perimeter · Overcast wildland
From inside a warehouse bay: wildland flame and smoke beyond the apron, extinguisher on the door frame. Existing CCTV, no new hardware.

CAM 04 · Pole 1 · Industrial alley
Open electrical box with people on scene. The agent still writes fire, smoke, and extinguisher—timestamped for the evidence trail.

Forecourt · Dusk · Fuel site, low light
Pump-island fire under a canopy. Smoke is boxed separately from a tight flame region; three extinguishers are found across the island.

CAM 04 · Street · Rain, night
Wet pavement and umbrellas. Reflections and rain do not collapse the classes: cabinet flame, rising plume, post-mounted extinguisher.

Loading yard · Fog / haze
Perimeter fire behind a fence in fog. The model has to separate a smoke plume from atmospheric haze—exactly the false-positive problem.

Alley · 02:14 · Snow, night
02:14 snowstorm. Smoke is flagged behind dumpsters with no obvious flame box; the extinguisher cabinet is still found. Useful at the hour nobody is watching.

CAM 04 · Petrol North · Daylight fuel site
Distant utility-side smoke on a live forecourt. The extinguisher on the pump pillar is indexed so the alert can point to the nearest kit.

Woodland · Dusk · Low light outdoor
Small ground fire and plume with people in frame. The agent localizes the source instead of treating the whole gathering as a scene-level alarm.

Warehouse · Loading dock · Indoor industrial, low light
Grayscale dock interior. Smoke rises from a floor-level box while two people walk the aisle; the pillar extinguisher is indexed—hazard and kit on the same feed.
The problem
A certified smoke alarm is not late because it is broken. It is late because smoke has to travel.
On a woodland pole, a fuel island, a kitchen table, or a high-ceiling aisle, fire usually starts as a small flame or a thin plume—often metres from the nearest ceiling head. Smoke must rise, mix with airflow, and hit a trigger concentration before the alarm sounds. Several minutes is enough for the fire to double and turn a portable-extinguisher job into a structural one.
The cameras already on that asset see the first flicker in the same second. Nobody is watching the feed, so the footage is evidence after the fact. The site did not lack sensors. It lacked software that treats the camera estate as a second sensor class—and that can name the source, the plume, and the nearest extinguisher in one event.
What we had to solve
A production detector on mixed CCTV: instance-level fire, smoke, and kit—without replacing alarms, buying cameras, or asking operators to stare at screens.
Onset, not a fully involved room
The useful signal is a seam of flame on a cabinet door or a thin plume—not a room already filled with smoke. The head had to be trained for early instances, including multiple fire boxes on one asset.
Three classes, one frame
A scene-level fire flag is not enough. Operations need the source, the plume, and the nearest extinguisher. The model emits instance boxes so an alert can point to kit, not just say “possible fire.”
Conditions that break naive colour models
Night IR (no RGB), rain reflections, snowfall at 02:14, and fog versus a real plume. The same three classes have to hold when colour, contrast, and atmosphere all lie.
From box to a payload ops will trust
Camera ID, site location, UTC timestamp, short clip, and classed boxes—into Slack, WhatsApp, Telegram, or a webhook—and retained as an audit trail. A noisy detector that wakes someone at 02:47 without proof will be turned off.
Architecture we shipped
A second sensor class that runs in parallel with the certified alarm. The alarm stays. The cameras start earning their keep.
01
Stream ingest
Connect to cameras the site already operates (RTSP / ONVIF). Normalize frames from mixed vendors, including night-IR streams, so one agent runtime covers the estate.
02
On-edge vision agents
Agents trained on early flame and plume signatures run continuously next to the streams. Detection does not wait for smoke to reach a ceiling head. Inference stays on existing site compute.
03
Structured event + clip
On a positive, the system writes camera ID, location, UTC time, a short clip, and instance boxes (class + region). That payload is both the operational signal and the evidence record.
04
Dispatch and retain
Adapters push the event into the channels operations already live in. The same record is stored so a later insurance or inspection review has a complete trail of every fire-related signal the cameras saw.
Stack
Multi-class detector
Fire, smoke, extinguisher instances
Edge inference
On-site GPU / existing compute
Stream ingest
RTSP / ONVIF mixed estates
Event schema
Camera, UTC, clip, classed boxes
Channel adapters
Slack, WhatsApp, Telegram, webhooks
Evidence store
Timestamped clips and audit trail
System profile
What we specified and evaluated
Figures below are from the shipped design and the evaluated scene set—not a lab mAP card. They describe what the agent must do on a live estate.
3
Classes per frame
Fire, smoke, and fire extinguisher as separate instance heads. A fuel-island frame can carry one flame box, one plume, and three extinguishers.
13
Scene types
Woodland pole, night entrance IR, brick courtyard, indoor kitchen, warehouse bay, industrial alley, petrol dusk/day, rain street, fog yard, snow alley, dusk gathering, warehouse dock interior.
8
Regimes
Daylight, dusk, night IR (no RGB), rain, snow, fog/haze, indoor, and live fuel-site. Colour is not a required cue.
N-box
Instance output
Multiple boxes per class on one asset—cabinet-door seams, ground plus wall kit—not a single scene label.
<60s
Visual path
Design target versus a ceiling head: first visible flame or plume, not wait-for-smoke physics. Typical alarm lag on the same incident is minutes.
Edge
Inference locus
Detection stays on site compute already present. No new cameras, no specialist fire head per aisle, no cloud round-trip to decide.
5-field
Event payload
camera_id, site location, UTC timestamp, clip URI, detections[{class, box}]. Enough for Slack and for an insurer later.
Dual
Sensor class
Runs beside the certified alarm. The alarm is not replaced. The camera estate becomes a second, faster path.
Outcome
Seconds
vs. minutes
The vision path fires on the first visible plume or flame, while the ceiling sensor is still waiting for smoke to arrive.
3-class
localized alert
The on-call lead gets source, plume, and nearest extinguisher—not a raw stream and not a binary “possible fire.”
Zero
new cameras
Deployment sits on infrastructure the site already paid for. No specialist fire camera per aisle. No alarm replacement.
Our point of view
Fire detection should not depend on a single physics path. Cameras are already sensors. The missing layer is the software that treats them that way—continuously, on the edge, and with enough discipline that operations can trust the signal. That is the class of applied AI we build: not a demo on a clean video, but a second sensor that has to live next to a certified alarm and still be useful at 02:47.
LET'S BUILD SOMETHING GREAT TOGETHER.
Have an idea? We'd love to hear about it. Let's create the next big thing together.

David Wong
Product Manager, Senior SDM
What happens next
- Share the basic information about your project - like expectations, challenges, and timeframes.
- We will come back within 24 hours.