Answers are grounded in this paper and cite their sources.
Manual monitoring of personal protective equipment (PPE) compliance in industrial workplaces is labor-intensive, subject to supervision by humans and presents challenges for continuous safety enforcement. In this work, we propose a single embedded platform to integrate real-time multi-class personal protective equipment detection, worker identification, temporal compliance verification, and automated physical access control for an edge-deployed AI safety compliance system. It is based on Raspberry Pi 4 Model B (8 GB RAM) and does not need continuous cloud computing or external GPUs. YOLOv11-nano detector optimized with NCNN framework is used for the PPE detection in 12 classes, while YuNet-FaceNet pipeline implemented via ONNX Runtime is used for the worker identification based on face. The physical access-control interface is implemented with a GPIO-controlled relay, and the stability of compliance decisions before granting access is increased with a five-state finite state machine with a 15-frame majority-voting scheme. The detection model was trained on a combined dataset of >6,000 images of 12 PPE classes, including a subset collected specifically for earmuff and headset detection. The system achieved 0.843 mAP@0.5, 0.841 F1-score on the held-out test set, and field-tested response times of 312-321 ms, well below the 500 ms operational goal. The system can reach 2.3% false-alarm rate and 90% detection at 3 m under normal operating conditions. For adverse lighting, the performance drops to mAP@0.5 of 0.693. The results demonstrate that multi-class PPE detection, worker identification, temporal decision making, event logging and physical access control can be integrated on low-cost embedded hardware without the need for continuous internet connectivity or dedicated server infrastructure.
No takes yet. Share an insight, caveat, or question.
Ullah et al. (2026) studied this question.
Synapse has enriched 10 related papers. Consider them for comparative context: