Construction PPE Detection
PythonYOLOv8Ultralyticsmarimouv
A YOLOv8-based deep learning model for detecting Personal Protective Equipment (PPE) violations on construction sites.
Results
Validation predictions

Confusion matrix (normalized)

Training metrics

Overview
This project fine-tunes a YOLOv8 nano model to identify:
- Safety equipment: Hardhats, Masks, Safety Vests
- PPE violations: Workers without proper protection
- Construction site elements: Personnel, Machinery, Vehicles, Safety Cones
Features
- Automated GPU Detection: Automatically detects and uses available NVIDIA GPU or falls back to CPU
- Interactive Training: Manual training trigger via button - no automatic execution
- Comprehensive Validation: Pre-training checks for dataset existence and structure
- Results Analysis: Confusion matrices, training metrics, and model comparison visualizations
- Production Ready: Reproducible results with fixed random seeds
Dataset Classes
| ID | Class | Notes |
|---|---|---|
| 0 | Hardhat | Compliance |
| 1 | Mask | Compliance |
| 2 | NO-Hardhat | Violation |
| 3 | NO-Mask | Violation |
| 4 | NO-Safety Vest | Violation |
| 5 | Person | Worker |
| 6 | Safety Cone | Equipment |
| 7 | Safety Vest | Compliance |
| 8 | machinery | Equipment |
| 9 | vehicle | Equipment |
Run
uv sync
uv run marimo edit main.py Dataset: Construction Site Safety from Kaggle/Roboflow.
Performance
| mAP50 | Interpretation |
|---|---|
| >0.7 | Excellent |
| >0.5 | Good |
| <0.5 | Needs improvement |
Authors
- Mykola Vaskevych (22372199)
- Oliver Fitzgerald (22365958)