Back to Projects
FYP

Decemeber 2025 - July 2026

Intelligent CCTV Video Monitoring System

A three-stage CCTV pipeline, built with NASTP as domain partner, that skips deep learning on static frames and only records once a person or vehicle is actually confirmed.

Problem

Traditional CCTV records everything nonstop. That burns through storage fast across multiple cameras, and leaves security staff scrubbing through hours of empty footage to find the one moment that mattered.

Running a deep object detector like YOLO on every single frame is also too costly for regular hardware — a smarter pipeline needs to filter out the boring frames before the expensive model ever runs.

Delivered

Built a three-stage detection pipeline:

  • Stage 1 — MOG2 background subtraction flags motion in each frame
  • Stage 2 — Semantic and geometric filtering (contour area, aspect ratio, solidity, shape persistence) throws out shadows, blowing leaves, and small noise blobs before they reach the expensive stage
  • Stage 3 — YOLO11n confirms and classifies people and vehicles, running in ROI mode with a full-frame fallback for startup and stationary-presence checks
  • Only confirmed detections get recorded, with a pre-event and post-event buffer so saved clips keep context instead of cutting in mid-action.

On top of the pipeline:

  • CSV metrics logging — FPS, per-stage latency, pass ratios, detection confidence, event duty cycle
  • A FastAPI backend with a WebSocket live-frame stream and browser dashboard
  • A low-lag Tkinter desktop UI, which became the go-to interface for local demos since it skips the browser's streaming delay
  • Full report written in LaTeX on Overleaf, plus a 24-slide defense deck

Impact

  • On the best logged run, the pipeline processed 657 frames at an average of 57 FPS end-to-end — well above the 15 FPS target — with 17.6ms average latency.
  • Of those 657 frames, only 46 actually needed the YOLO stage. Everything else got filtered out earlier by Stage 1 and Stage 2, which is the entire point of staging the pipeline instead of running YOLO on every frame.
  • Across 23 logged test runs, recorded footage dropped anywhere from roughly 25% to 75% compared to continuous recording, depending on scene activity.
  • Defended as a 4-person Final Year Project under Dr. Madiha Liaqat, with the problem domain and requirements shaped by discussions with NASTP.

Tech stack

PythonOpenCVYOLO11n (Ultralytics)FastAPITkinterPyYAML

Architecture

Intelligent CCTV Video Monitoring System architecture