Skip to main content
DoneThat

AI Adoption GuideConstructionBuild

Real-Time Safety Hazard Detection

Vision model on site cameras flags PPE violations, exclusion zone breaches, and unsafe acts in near-real-time. (e.g., Smartvid.io, Newmetrix)

Construction processBidAwardPlanMobilizeBuildInspectHandoverClose

By Don, DoneThat’s AI coach · updated

The flag is the product, not the score

A useful detection run ends with a cite HSE can stand behind: which camera, the timestamp, and a short description of what the model thought it saw. That packet is the quality outcome. A rolling site score, a league table of crews, or an auto-generated warning letter is not.

Near-real-time is a design constraint. The flag has to arrive while the shift can still act, or at least while the people in the frame can still be identified from the gate log. It is not a latency figure you publish as an SLA. If the stream lands the next morning, you have a still for a conversation, not a live hazard feed.

Tools in this class (Smartvid.io, Newmetrix, Procore, and similar camera-plus-model stacks) sit on existing site CCTV or dedicated safety cameras. Treat them as one family of vision detectors. They do not replace the permit, the exclusion-zone drawing, or the HSE lead's call on whether the frame is a real unsafe act.

What you are buying is a queue of reviewable flags, not a verdict. If the model cannot attach camera ID, time, and a readable "what was seen" line, the flag is not ready for HSE. Send it back to the integrator.

Point cameras at PPE, live zones, and a short list of acts

Start from the hazards you already brief, not from a default class list in the product.

PPE flags belong at gates, hoist landings, and workface edges where missing hard hats, hi-vis, or harnesses actually matter. Each flag should name the camera, the time, and which PPE class the model claims is missing or incomplete. Do not treat a low-confidence crop of a shadow or a rucksack strap as a violation. HSE still decides whether the person was in a mandatory-PPE area and whether the item was on, off, or simply hard to see in that frame.

Exclusion-zone flags are only as good as today's drawing. Draw polygons from the live RAMS and the current lift or demolition plan, not from last month's layout. A visitor walkway still treated as a live crane slew zone will fill the queue and train supervisors to ignore it. The cite must include the zone name on today's drawing and the camera that saw the crossing. If the polygon and the induction path disagree, fix the polygon before you chase anyone. Put camera health next to the flag queue. A dark, dirty, or moved camera over a hoist exclusion is an unmonitored zone, not an all-clear.

Unsafe-act flags should stay a short list: climbing on unguarded edges, standing under a suspended load, walking into a live plant path. The model can propose "person in path of plant" with a cite. It cannot decide intent. A still of someone pausing at a barrier is not an act until HSE watches enough of the clip to see whether they crossed, were escorted, or were the banksman.

Wire PPE, zones, and acts into one review queue with the same cite fields. Split dashboards by crew or by product module only after HSE can filter false positives. Pair this with site setup compliance vision check so the cameras you use for hazard flags are the same ones you already trust for hoarding, signage, and access layout. Do not reuse a progress-only angle that never sees the gate or the zone line.

Competency is a different control. A person in frame without a ticket is not something a PPE model can prove. Send that check to worker competency document verification instead of stuffing it into the unsafe-act class.

Review the cite before anyone is named

The operating rule is simple: the model flags, HSE reviews, then the site acts.

Open the cite. Confirm camera and time against the live view or the retained clip. Read the "what was seen" line. Watch enough of the sequence to see entry, the alleged act, and exit. If the still is ambiguous, the flag stays in review. It does not become a named incident.

Do not auto-discipline from a score or from a single frame. A still can crop out the barrier, the banksman, or the tagged visitor escort. Using that thumbnail as the basis for a warning or a dismissal is a process failure, even if the interface showed high confidence. Near-real-time pressure makes this worse. Someone wants to act on the flag before the clip is watched. Hold the process. No named action until HSE has the sequence.

After review, record one of a few outcomes: confirmed hazard and an immediate stop or briefing; false positive with a note on why (zone drawing stale, visitor route, glare, wrong class); or insufficient evidence, including a camera gap or a clip too short to judge. Only confirmed items feed toolbox talks, RAMS updates, or a formal report. Names go on records HSE already owns, not on the model's label.

Here is the review pattern, not a measured case. Cam 7, 14:12, "person in crane exclusion zone, no hard hat." The queue looks urgent. HSE pulls the clip and sees a visitor on the marked pedestrian route, hard hat on, walking the path the induction described. The zone polygon still covered that route from last week's lift. The right action is to redraw the zone and close the flag as a false positive, not to pull the visitor into a disciplinary file because a thumbnail looked empty of PPE. Do not treat this walkthrough as a reduction in violations. It is how a cite is supposed to die when the drawing is wrong.

Stale polygons, stills used as evidence, and cameras that go dark

Those three failure modes are how a cite loses quality on a live site, not rare glitches.

Pause a zone class until the polygon matches the current lift or demolition plan. Reopen it and watch the next flags with HSE, not with a dashboard owner.

If clips cannot be retained long enough to review, the system is not ready for personnel records. The still is a pointer into the sequence. It is not the evidence.

Surface a dead camera next to the queue. Decide who walks that area until it is back, and whether the zone needs a human spotter for the rest of the shift.

These are process failures, not reasons to rank products. Smartvid.io, Newmetrix, and Procore-class stacks all inherit bad polygons, still-only workflows, and silent cameras.

Progress photography is a different job. AI visual progress monitoring can share a camera network, but a progress still is not a safety cite. Do not mix the two queues. open defect aging monitor tracks whether a recorded issue is getting older, not whether someone walked a line in the last few minutes.

Rebuild zones when the site moves

Rebuild the zone set when the lift plan, demolition sequence, or visitor route changes. A regular check that the polygons still match the briefing is part of running the system. If the model classes no longer match the brief (harnesses required only once a new leading edge opens), stop that class until HSE rewrites the rule. A stale class is the same kind of lie as a stale zone.

Keep the near-real-time path boring: flags into one HSE queue, cites complete, review before names. Use shift overlap as the design test. Check whether HSE can see a flag while the people in frame are still on site, or at least while the gate log still matches faces to names. That is the constraint. It is not a vendor SLA to print on a slide.

If the queue is hours deep, you have a staffing problem, a false-positive problem, or both. Unreviewed flags train the site to treat detection as noise.

The artefact you hand a supervisor is the cite: camera, time, what was seen, and HSE's decision.

Is this worth automating for you?

Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other. This one is rated high effort to implement, so the baseline matters more than usual.

DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.

Measure the baseline first