Downloads · 30 days
0
fiacecson20/cctv-ai-ppe
cctv-ai-ppe is a object detection model from fiacecson20. Use it when you need objects located in an image. It is set up for ultralytics. The card lists the license as mit.
YOLOv8n trained on CPU for the CCTV-AI project. Round-1 baseline — see docs/TRAININGREPORT.md in the upstream repo for full eval details.
Downloads · 30 days
0
Access
Public
Updated May 12, 2026
Repo size
41.2 MB
Likes
0
Public
Click a slice to open those files.
.onnx12.1 MB · 88%
From the Hugging Face model README
YOLOv8n trained on CPU for the CCTV-AI
project. Round-1 baseline — see docs/TRAINING_REPORT.md
in the upstream repo for full eval details.
| File | Purpose |
|---|---|
best.onnx | ONNX export (opset 12), drop-in for onnxruntime / OpenVINO / TensorRT. |
args.yaml | Full training arguments (reproducibility). |
results.csv | Per-epoch metrics. |
confusion_matrix.png | Validation confusion matrix. |
BoxPR_curve.png | Precision-recall curve (per class). |
BoxF1_curve.png | F1 curve (per class). |
results.png | Training curves (loss + metrics across epochs). |
val_batch0_pred.jpg / val_batch0_labels.jpg | Sample predictions vs. ground truth. |
The .pt weights live inside the upstream repo at
weights/ppe-yolov8n-v0.pt
via Git LFS — .onnx lives here because it exceeds the 10 MB LFS threshold
we picked for in-repo storage.
helmet, head, vest| class | precision | recall | [email protected] |
|---|---|---|---|
| helmet | 0.939 | 0.806 | 0.905 |
| head | 0.860 | 0.785 | 0.847 |
| vest | 0.000 | 0.000 | 0.000 |
yolov8n.pt (Ultralytics)imgsz=320, batch=8, epochs=12, patience=4, cos_lr=trueOMP_NUM_THREADS=2args.yaml for full args.CC-BY 4.0 dataset, downloaded at training time via
scripts/download_dataset.py.
Source images are NOT redistributed here.
import onnxruntime as ort
sess = ort.InferenceSession("best.onnx", providers=["CPUExecutionProvider"])
# input: (1, 3, 320, 320) float32 RGB, normalised to [0,1]
# output: (1, N, 84) or YOLOv8 detection head — see Ultralytics docs.
Or via Ultralytics:
from ultralytics import YOLO
model = YOLO("best.onnx")
results = model("image.jpg", imgsz=320)
Vest class had 0 instances in the alphabetical 1200-image subset (all ds1_* files are helmet/head only). Round-2 will use class-balanced sampling.
MIT for these weights. Source dataset CC-BY 4.0 (see upstream TRAINING_REPORT.md
for attribution). Ultralytics base model is AGPL-3.0 — using these weights in a
hosted service may require AGPL compliance; see Ultralytics License.