All case studies

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
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.

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.

Monochrome IR at a gated entrance. The same three classes hold under floodlight contrast and total darkness—no colour cue required.

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.

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.

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.

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

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.

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

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.

Open electrical box with people on scene. The agent still writes fire, smoke, and extinguisher—timestamped for the evidence trail.

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.

Pump-island fire under a canopy. Smoke is boxed separately from a tight flame region; three extinguishers are found across the island.

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.

Wet pavement and umbrellas. Reflections and rain do not collapse the classes: cabinet flame, rising plume, post-mounted extinguisher.

CAM 04 · Street · Rain, night

Wet pavement and umbrellas. Reflections and rain do not collapse the classes: cabinet flame, rising plume, post-mounted extinguisher.

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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

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.