All Studio apps
Vision & CCTV Experimental

Safety PPE

EXPERIMENTAL · helmet · hi-viz

Advisory flags when a person in a work zone is missing a required helmet or hi-viz vest — for a human to review.

streamhub.studio/studio/safety-ppe
Safety PPE

Read this first — EXPERIMENTAL

This plugin uses an existing open community model (nothing is trained in-house), its accuracy claims are self-reported, and its training data is biased toward outdoor construction imagery. Treat every event as an advisory signal for a human to review — it is not a certified safety system, and not a substitute for one.

The problem

PPE spot-checks are manual and sporadic. A camera watching a work zone can flag the obvious cases — someone in the dock without a helmet or hi-viz vest — for a supervisor to look at, without pretending to be a certified safety system. Safety PPE is deliberately scoped as that advisory signal, with honest limits stated up front.

Use cases

Industrial / HSE

Helmet & hi-viz spot-checks

Flag a person inside a work zone, during work hours, missing a required helmet or vest for more than N consecutive frames — an advisory nudge for a supervisor, not an automatic penalty.

Industrial / HSE

Dock & yard advisory monitoring

Point it at a loading dock or yard during the shift; sustained violations (with a cooldown) each capture an evidence JPEG for a human to confirm before anyone acts.

How it works

Input

Live HLS + work zones & schedule

A worker samples the stream (default 1 fps), schedule-gated: off-schedule frames are skipped entirely. You draw the work zones and set the hours.

Detect

YOLOv8m PPE model (ONNX)

A community helmet/vest/person model run through onnxruntime associates each person with the PPE in their box, then a sustained-violation tracker filters transients.

Signed callback

ppe.violation (advisory)

A sustained (zone, item) miss fires one ppe.violation to your callback URL, HMAC-signed with the same scheme as the app callbacks, then cools down per zone and item.

Your system

Evidence + human review

Each event stores an evidence JPEG and a SQLite row and shows in the violations table. A human confirms before anything downstream acts — by design.

Events it emits

Declared in the plugin manifest and relayed through the app's HMAC-signed callbacks (webhook + MQTT). Anything a worker tries to emit that is not on this list is rejected — no core-event spoofing.

ppe.violation

Scope & limits (honest)

  • Not a certified safety system and not a substitute for one — advisory signals only, for a human to review.
  • Dataset bias: daylight, outdoor, construction imagery. Expect degradation indoors, at night / IR, and in warehouses and factories.
  • Vest colour bias toward hi-viz yellow/orange; non-standard vests miss. Hardhats below ~20 px (beyond ~15–20 m on 1080p) are missed — closer or zoomed cameras help.
  • Model-weights provenance is legally untested; running the ONNX file through onnxruntime keeps the AGPL runtime out of StreamHub, but the licensing ambiguity remains (disclosed in the docs).

Minimum requirements

  • CPU-only: YOLOv8m at 640² costs ~1 s of one modern core per analyzed frame. Budget 1–1.5 cores + ~2 GB RAM per stream at the default 1 fps — do not raise fps on CPU; lower it (0.5) to stack streams.
  • GPU recommended for more than one stream or fps ≥ 2: any NVIDIA GPU with ≥ 4 GB VRAM via onnxruntime-gpu and the cuda toggle (graceful CPU fallback).
  • Disk: ~100 MB model cache + evidence JPEGs (one per event, cooldown-limited) + the SQLite DB.

Numbers are the plugin authors' honest measurements, not marketing. GPU is optional on every vision plugin except where noted.

Runs as a full app

Every Studio app is a first-class application, not a config modal — and it does not have to live inside StreamHub.

Full-page dashboard view

Opens as its own page inside the tenant app — zones, live panels, history and settings on one surface, not squeezed into a dialog.

Its own database

Keeps its state in a dedicated per-app SQLite database — reads, alerts, occupancy and evidence rows — that you own and can query.

Exportable bundle

Download the app as a self-contained bundle — worker, Dockerfile, compose and an env template — to self-host on your own infra and extend, talking back over the REST API and signed webhooks.

Have cameras or streams to put to work?

Tell us what you are monitoring and we will scope the right apps, wire them into your systems and run them with you. The software is open source — the deployment and operation is what we do.