docs/en/datasets/detect/construction-ppe.md
<a href="https://colab.research.google.com/github/ultralytics/notebooks/blob/main/notebooks/how-to-train-ultralytics-yolo-on-construction-ppe-detection-dataset.ipynb"></a>
The Construction-PPE dataset is designed to improve safety compliance in construction sites by enabling detection of essential protective gear such as helmets, vests, gloves, boots, and goggles, along with annotations for missing equipment. Curated from real construction environments, it includes both compliant and non-compliant cases, making it a valuable resource for training AI models that monitor workplace safety.
<p align="center"> <iframe loading="lazy" width="720" height="405" src="https://www.youtube.com/embed/lFaVnrhMmaE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen> </iframe><strong>Watch:</strong> How to train Ultralytics YOLO on Personal Protective Equipment Dataset | VisionAI in Construction 👷
</p>The Construction-PPE dataset is organized into three main subsets:
Each image is annotated in the Ultralytics YOLO format ensuring compatibility with state-of-the-art object detection and tracking pipelines.
The dataset provides 11 classes divided into positive (worn PPE) and negative (missing PPE) categories. This dual-positive/negative structure enables models to detect properly worn gear and identify safety violations.
Construction-PPE powers a variety of safety-focused computer vision applications:
The Construction-PPE dataset includes a YAML configuration file that defines the training and validation image paths along with the full list of object classes. You can access the construction-ppe.yaml file directly in the Ultralytics repository here: https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/construction-ppe.yaml
!!! example "ultralytics/cfg/datasets/construction-ppe.yaml"
```yaml
--8<-- "ultralytics/cfg/datasets/construction-ppe.yaml"
```
You can train a YOLO26n model on the Construction-PPE dataset for 100 epochs with an image size of 640. The following examples show how to get started quickly. For more options and advanced configurations, see the Training guide.
!!! example "Train Example"
=== "Python"
```python
from ultralytics import YOLO
# Load pretrained model
model = YOLO("yolo26n.pt")
# Train the model on Construction-PPE dataset
model.train(data="construction-ppe.yaml", epochs=100, imgsz=640)
```
=== "CLI"
```bash
yolo detect train data=construction-ppe.yaml model=yolo26n.pt epochs=100 imgsz=640
```
The dataset captures construction workers across varied environments, lighting conditions, and postures. Both compliant and non-compliant cases are included.
Construction-PPE is developed and released under the AGPL-3.0 License, supporting open-source research and commercial applications with proper attribution.
If you use this dataset in your research, please cite it:
!!! quote ""
=== "BibTeX"
```bibtex
@dataset{Dalvi_Construction_PPE_Dataset_2025,
author = {Mrunmayee Dalvi and Niyati Singh and Sahil Bhingarde and Ketaki Chalke},
title = {Construction-PPE: Personal Protective Equipment Detection Dataset},
month = {January},
year = {2025},
version = {1.0.0},
license = {AGPL-3.0},
url = {https://docs.ultralytics.com/datasets/detect/construction-ppe/},
publisher = {Ultralytics}
}
```
Unlike generic construction datasets, Construction-PPE explicitly includes missing equipment classes. This dual-labeling approach allows models to not only detect PPE but also flag violations in real-time.
The dataset covers helmets, vests, gloves, boots, goggles, and workers, along with their “missing PPE” counterparts. This ensures comprehensive compliance coverage.
To train a YOLO26 model using the Construction-PPE dataset, you can use the following code snippets:
!!! example "Train Example"
=== "Python"
```python
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="construction-ppe.yaml", epochs=100, imgsz=640)
```
=== "CLI"
```bash
# Start training from a pretrained *.pt model
yolo detect train data=construction-ppe.yaml model=yolo26n.pt epochs=100 imgsz=640
```
Yes. Images are curated from real construction sites under diverse conditions. This makes it highly effective for building deployable workplace safety monitoring systems.
The dataset enables real-time detection of personal protective equipment, helping monitor worker safety on construction sites. With classes for both worn and missing gear, it supports AI systems that can automatically flag safety violations, generate compliance insights, and reduce risks. It also provides a practical resource for developing computer vision solutions in workplace safety, robotics, and academic research.