celia // marketplace platform 2.7.0 · hub@bbef4a83

rules / ppe01

PPE01 v1.0.0

PPE01 — person not wearing required PPE (helmet / safety clothes)

description

PPE-compliance rule: detect a tracked person NOT wearing required protective equipment (helmet and/or safety clothes). Per-frame SGIE classifier scores (not_wearing_helmet, wearing_safetyclothes_1/6) are voted across a short ppe_check_window_seconds window — small or frame-edge boxes are dropped as unreliable — and the rule fires once per track when the violating fraction clears voting_ratio_threshold. The voting window suppresses single-frame misclassifications (turned heads, brief occlusions). Which PPE items are enforced is configurable, so helmet-only or vest-only deployments reuse the same rule.

use cases

  • hard-hat / helmet enforcement on factory floors, docks and construction-like areas
  • hi-vis / safety-clothing enforcement in vehicle-traffic zones
  • entry-gate PPE checks (short dwell is enough thanks to the voting window)

limitations

  • requires a PPE attribute classifier (SGIE) emitting the *_scores — detector alone is not enough
  • {'attribute-level check': 'verifies worn/not-worn, not whether PPE is worn CORRECTLY (e.g. chinstrap)'}
  • distant/low-resolution person crops degrade classifier scores — camera placement matters

config parameters

general

ParameterTypeDefaultNotes
target_class array of string ["person"]
ppe_check_window_seconds number 3.0 (min 0.5)
voting_ratio_threshold number 0.7 (min 0.0, max 1.0)
min_voting_samples integer 3 (min 1)
min_area_percentage number 0.4 (min 0.0)
not_wearing_helmet_threshold number 0.7 (min 0.0, max 1.0)
not_wearing_safetyclothes_threshold number 0.7 (min 0.0, max 1.0)
strict_voting boolean false
check_helmet boolean true
check_safetyclothes boolean true

advanced

ParameterTypeDefaultNotes
cam_resolution array of integer (min items 2, max items 2)

golden replay cases

CaseFramesExpected events
no-helmet51