CoolFace
Modelpublic

philipho/irail-crowd-counting-yolov8n

sourceHugging Facecc-by-sa-4.0updated 7mo agoView on Hugging Face
0likes30downloads
Model Card

iRail Crowd Counting (YOLOv8n) — Head Detection Baseline

This repository contains a YOLOv8n (nano) model fine-tuned for pedestrian head detection in crowded environments (railway platforms + event entrances). The main objective is crowd counting per frame by detecting heads and counting bounding boxes.

This model is designed as an educational baseline for an iRail/Azure project extension where the iRail API does not provide occupancy, so we estimate a proxy crowd level from images/frames.

Model

  • —Architecture: YOLOv8n (Ultralytics)
  • —Task: Object detection
  • —Class(es): head (single class)
  • —Training input size: imgsz=832
  • —Baseline inference settings used for counting eval:
  • —conf=0.25
  • —iou=0.75
  • —max_det=300

Dataset

Trained on RPEE-Heads (Railway Platforms and Event Entrances-Heads) with head bounding boxes.

  • —1,886 images
  • —109,913 head annotations
  • —Split:
  • —Train: 1,346 images
  • —Val: 246 images
  • —Test: 294 images
  • —License: CC BY-SA 4.0 (dataset + derived model share-alike requirements apply)

Paper reference: RPEE-Heads Benchmark: A Dataset and Empirical Comparison of Deep Learning Algorithms for Pedestrian Head Detection in Crowds Mohamad Abubaker, Zubaida AlSadder, Hamed Abdelhaq, Maik Boltes, Ahmed Alia DOI: 10.34735/ped.2024.2 Dataset URL: http://ped.fz-juelich.de/da/2024rpee_heads

Baseline Evaluation (Detection)

Ultralytics validation metrics on Val/Test (single class: head):

Validation (246 images / 16,022 instances)

  • —Precision: 0.910
  • —Recall: 0.805
  • —mAP@0.50: 0.881
  • —mAP@0.50:0.95: 0.522

Test (294 images / 15,285 instances)

  • —Precision: 0.908
  • —Recall: 0.803
  • —mAP@0.50: 0.878
  • —mAP@0.50:0.95: 0.515

Crowd Counting Evaluation (Counting boxes per image)

Counting is computed as: predicted_count = number of detected boxes (after NMS at chosen conf and iou).

Baseline counting settings:

  • —imgsz=832, conf=0.25, iou=0.75

Metrics

  • —MAE: 4.67
  • —RMSE: 8
  • —Bias (pred - gt): 0.097 (slight undercount)

Intended Use

  • —Educational demo of:
  • —fine-tuning YOLOv8 for head detection
  • —evaluating detection metrics
  • —converting detections to a crowd count proxy
  • —A building block for a larger iRail/Azure pipeline (occupancy proxy)

Limitations

  • —Not trained on Belgian station camera viewpoints specifically.
  • —Counting via “number of boxes” can undercount in very dense crowds.
  • —Domain shift (camera height, lens distortion, resolution, lighting) may reduce performance.

Author

Amine Samoudi - GitHub: @AmineSam