Construction PPE Detection

PythonYOLOv8Ultralyticsmarimouv

A YOLOv8-based deep learning model for detecting Personal Protective Equipment (PPE) violations on construction sites.

Results

Validation predictions

Validation predictions

Confusion matrix (normalized)

Confusion matrix

Training metrics

Training results

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

IDClassNotes
0HardhatCompliance
1MaskCompliance
2NO-HardhatViolation
3NO-MaskViolation
4NO-Safety VestViolation
5PersonWorker
6Safety ConeEquipment
7Safety VestCompliance
8machineryEquipment
9vehicleEquipment

Run

uv sync
uv run marimo edit main.py

Dataset: Construction Site Safety from Kaggle/Roboflow.

Performance

mAP50Interpretation
>0.7Excellent
>0.5Good
<0.5Needs improvement

Authors

  • Mykola Vaskevych (22372199)
  • Oliver Fitzgerald (22365958)