Computer vision · Crowd safety · 2026

Stadium

Crowd and gate monitoring prototype

Estimates how many people are at each stadium gate from video, flags crowding early and recommends where to move staff.

Role
Solo developer
Status
Working prototype
Evidence
Public repository
Year
2026

Evidence

What a reviewer can check today — and what is not claimed.

Working prototype
Status
A solo working prototype that runs on local video files or a webcam. It has not been calibrated for a real venue.
Evidence
Not claimed
No venue deployment and no counting-accuracy figures are claimed.
Stack
  • Python
  • Ultralytics YOLO
  • OpenCV
  • Flask
  • NumPy
  • JavaScript

Context

A solo project, built end to end by Abdulelah.

The problem

Crowding at an entrance becomes a safety problem before anyone has counted it. Gate staff see their own queue, not the whole picture, so the decision that matters — move staff, redirect arrivals — often comes late.

Constraints

  • Use existing camera feeds instead of new sensors
  • Output has to be something an operator can act on immediately
  • Runs locally against video files or a webcam

Solution

YOLO detects people in each frame and assigns them to one of four gate zones. A decision engine sets each gate’s status — normal, busy, critical or overflow — logs alerts, estimates arrival time and recommends staff moves. A Flask API serves that state to a dashboard that polls every two seconds.

My responsibility

Solo developer

  • Built the whole system as a solo project
  • Implemented YOLO person detection and zone assignment
  • Designed the decision engine for gate status, alerts and staff recommendations
  • Built the Flask status API and the live dashboard

Architecture & workflow

  1. 01 · Input

    Camera or video

  2. 02 · Processing

    YOLO person detection

  3. 03 · Intelligence

    Gate-zone status rules

  4. 04 · Output

    Live dashboard & alerts

How it works

  • Ultralytics YOLO detects people frame by frame
  • Each detection’s centroid is mapped to one of four gate zones
  • A decision engine assigns status, logs crowding and overflow alerts and estimates ETA
  • Flask exposes the current state at /api/status
  • An HTML dashboard polls the API every two seconds

Decisions

  • Vision over new hardware

    Computer vision on ordinary camera feeds instead of new sensors — cheaper to trial, and it works with the cameras a venue already has.

  • Recommend an action, not just an alarm

    The decision engine doesn’t only flag a busy gate; it suggests where to move staff, so the output is something an operator can act on.

Verified outcome

A working prototype built solo: detection, zone assignment, four status states, an alert log, staff recommendations, a status API and a live dashboard. It has not been calibrated against a real venue, and no counting-accuracy figure is claimed.

Limitations

  • Gate zones are hard-coded and need calibration for every camera angle.
  • No automated tests cover counting, alert thresholds or the API.
  • Not deployment-ready: camera privacy, latency and operations still need review.
  • Local model and video files make the repository large.

What would come next

  • Make gate zones configurable per camera
  • Measure counting accuracy on labelled footage
  • Add tests for thresholds and the status API

The idea, sketched

Concept visualizationIllustrative sketch of the idea — not a product screenshot.

Working on something similar?

Tell me about the problem, or pick the CV that fits the role — either way you’ll get a direct reply.