YOLO26l face detector (WiderFace)

Single-class face detector: Ultralytics YOLO26l fine-tuned on WIDER FACE.

Classes face (0)
Params ~24.7M (fused)
Weights best.pt โ‰ˆ 151 MB
Train size 1280
Ultralytics 8.4.114+ (YOLO26)
License AGPL-3.0

Base: YOLO26 docs ยท Dataset: WIDER FACE

Examples (val images)

Crowd / parade example Marching band example Concert example Parade example

Quick start

pip install "ultralytics>=8.4.0" huggingface_hub
from huggingface_hub import hf_hub_download
from ultralytics import YOLO

weights = hf_hub_download("uralman/yolo26l-widerface", "best.pt")
model = YOLO(weights)

results = model.predict(
    "image.jpg",
    imgsz=1280,   # match training
    conf=0.25,    # lower (e.g. 0.15) for recall; raise for fewer FPs
    iou=0.7,
    max_det=300,
)
for r in results:
    print(r.boxes.xyxy, r.boxes.conf)  # face boxes
    r.save("out.jpg")

Recommended defaults

Setting Value Notes
imgsz 1280 Trained at 1280; smaller sizes are faster but can miss tiny faces
conf 0.25 Start here; try 0.15โ€“0.35 per domain
iou 0.7 NMS IoU
max_det 300 Crowds / parades need headroom

Approximate latency (PyTorch, imgsz=1280, conf=0.25): ~14 ms/image on NVIDIA H100 (single image, warmed). Expect slower on smaller GPUs / CPU.

When to use this vs nano face models

  • Prefer this L checkpoint when you care about small / crowded faces and can afford ~25M params / ~150MB.
  • Prefer a nano face YOLO when you need max FPS on edge or CPU and faces are relatively large in frame.

Validation metrics

Ultralytics COCO-style box metrics on the YOLO-formatted WIDER FACE val split used in this run (~3.2k images). Peak by mAP50-95 (epoch 71; training stopped ~epoch 73):

Metric Best
Precision 0.896
Recall 0.725
mAP50 0.801
mAP50-95 0.455

Not the official WIDER FACE Easy/Medium/Hard protocol. Numbers depend on label conversion, imgsz, and NMS โ€” use them to reproduce this setup, not as a leaderboard claim.

Training (short)

Item Value
Base Ultralytics yolo26l.pt
Data WIDER FACE โ†’ YOLO labels (~12.9k train / ~3.2k val), 1 class
Setup imgsz 1280, batch 8, AMP, cosine LR, mosaic + multi-scale
Hardware 2ร— H100, DDP
Stop Early (~73 / 200) near plateau

Files

File Description
best.pt Ultralytics PyTorch weights
model.onnx ONNX export (imgsz=1280, dynamic)
assets/pred_*.jpg Example predictions on WIDER FACE val

ONNX

pip install onnxruntime  # or onnxruntime-gpu
from huggingface_hub import hf_hub_download
from ultralytics import YOLO

onnx_path = hf_hub_download("uralman/yolo26l-widerface", "model.onnx")
model = YOLO(onnx_path)
model.predict("image.jpg", imgsz=1280, conf=0.25)

Or export yourself from best.pt:

YOLO("best.pt").export(format="onnx", imgsz=1280, dynamic=True, simplify=True)

Limitations & ethics

  • Face detection only (boxes) โ€” not recognition / identity.
  • Domain shift expected outside WIDER FACE-like photos (strong blur, unusual cameras, etc.).
  • False positives/negatives can affect privacy pipelines; validate on your data before production.
  • Ultralytics / YOLO26 are AGPL-3.0 โ€” see license.

Acknowledgements

Downloads last month
47
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support