Phase 2 · tracking · association · temporal voting

Turn commodity cameras into a per-worker safety record.

SentinelVision binds every PPE observation to a tracked worker, applies the policy you configure, and writes a tamper-evident audit trail. It runs on the cameras, laptops and edge boxes you already own, with no proprietary hardware and no cloud dependency.

No cloud dependencyRealtime on CPUApache-2.0
verified96%Test coverage across the pipeline
green289Passing tests in CI
taxonomy10PPE & context classes
identityByteTrackTracking backend for stable worker IDs
The pipeline

Five deterministic stages, one accountable event

Detection is deliberately permissive, while commitment is deliberately conservative. Nothing is written to the audit log until the pipeline is sure it is looking at a person, and not at a flicker.

Capabilities

Built like infrastructure, not like a demo

Every layer earns its keep: typed configuration, observable runtime, and evidence that stands up to review.

Architecture

A straight line from camera to evidence

Each stage has one job, one input and one output. That linearity is what makes behaviour reproducible and bugs shallow.

events.jsonlEXAMPLE RECORD
Policy & classes

Ten classes, each with its own confidence bar

Violations are derived, never assumed: a worker wearing the required item is compliant, and the matching absence class at a higher threshold records the finding. Context classes describe the scene and raise nothing on their own.

Positive PPEViolationContext class
Asymmetric by design. A violation class sits at 0.65 while its positive counterpart sits at 0.50, so raising an alarm always demands more evidence than recording compliance. Combined with the six-of-ten quorum, that ordering keeps a false positive off a supervisor's desk.
Deployment

Installed and running in one command

Point the CLI at a webcam index or a recorded file. Events stream to the JSONL log while the run is live, and the stats block prints on exit.

live webcambash
batch over footagebash
Get started

Safety evidence from the cameras already on site.

Clone it, point it at a camera and watch a violation become a signed, chained record instead of an anecdote.

Apache-2.0 licensedPython 3.9+Realtime on CPUAppend-only JSONLNo cloud required