Galle, LK--:--5/6 sites live
ML & Vision Final-year undergraduate research project 2nd place at InOrbit among all technology projects

Quintrix ITSO Engine

Final-year undergraduate research project — Intelligent Tiered Storage Optimization

Content-aware retention for CCTV: score every 15-second segment by what happens in it, keep incidents lossless and empty corridors as keyframes. 60.0% less storage on the evaluated footage.

Quintrix ITSO Engine

Overview

Quintrix ITSO is our final-year research project at the Department of Computing, Rajarata University of Sri Lanka (ICT 3411 & COM 3405), built by a five-person team under the supervision of Ms. A.K.N.L. Aththanagoda. Surveillance cameras record continuously, most footage is routine, and storing everything at the same quality wastes space and makes review slow. Quintrix connects video analysis directly to retention: footage is split into 15-second segments, a MOG2 motion gate screens out static scenes, active segments go through object detection, action recognition and a scene-risk model, and a context-aware significance score decides whether each segment is kept as full-quality video (HIGH), compressed video (MEDIUM) or keyframes plus metadata (LOW). On 17 evaluation videos (62.9 minutes, 443.3 MB, 255 segments) it retained 177.4 MB — a 60.0% reduction, beating the proposal's >50% target — while a real gun-point robbery scored S_sig 1.000 and stayed lossless.

Measured results

60.0%

less storage retained

177.4 of 443.3 MB, 17 videos

95.71%

R3D-18 test accuracy

630 held-out UCF-Crime clips, 14 classes

0.954

YOLOv8s mAP@0.5

8 threat classes, P 0.936 / R 0.900

1.43×

real-time processing

Apple M2, GPU 3.4–6× faster than CPU

15.2 ms

API P95

target < 80 ms; 15,576/15,576 requests answered

4.15/5

reviewer rating

4 reviewers, 10 criteria

Design decisions

The choices that shaped the system, and why.

  1. 1

    Why content-aware tiering instead of motion-based recording?

    Motion shows that something changed, not that it matters. Quintrix connects semantic analysis and context to the retention decision itself — the contribution is that connection, not object detection. Configured thresholds turn one auditable score into HIGH, MEDIUM or LOW retention.

  2. 2

    One auditable fusion score per segment

    S_sig = 0.40·A + 0.35·O + 0.25·S + ΣΔctx − U: action severity, object threat (with persistence), a trained scene-risk MLP (16→64→32→1, R² 0.9375), context modifiers (weapon, fire, crowd, night, unattended) and an uncertainty penalty. Weighted-sum late fusion follows Atrey et al. (2010); the weights are the team's own. A critical hazard (gun, knife, fire) floors the tier to HIGH.

  3. 3

    Fine-tune for threats instead of trusting COCO

    Generic COCO YOLO has no gun or knife class, so YOLOv8s was fine-tuned on eight threat classes (gun, knife, rifle, fire, smoke, unattended bag, mask, broken glass) for 80 epochs on a Colab GPU. YOLO11m runs as a second track for people and bags as context. R3D-18 replaced X3D-S because UCF-Crime classes carry security meaning that Kinetics does not.

  4. 4

    Calibrate thresholds against the worst mistake

    The dangerous error is a critical event stored LOW, because the full video is gone. Simulations over four score distributions (6,000 samples each) showed 0.30/0.90 cuts the worst-case critical-to-LOW miss rate from 6.43% to 1.27% versus 0.40/0.70. These trade-offs ship as five operating-mode presets, from Forensic Hold to Edge / Low Power.

  5. 5

    A grace period before irreversible deletion

    LOW-tier degradation is irreversible, so segments wait 72 hours in a review queue where an operator can restore them. Measuring changed decisions too: the savings baseline was once self-generated (a reported 78% was really −3%), and segmentation was inflating storage 3.7× until it switched to ffmpeg stream copy.

Architecture

Five-stage pipeline

Upload → 15-second segments → MOG2 motion gate → object / action / scene-risk analysis → significance score → HIGH (full video), MEDIUM (compressed) or LOW (keyframes + metadata). The motion gate and sampling cut frames sent to the models by 91.7%.

Models

Fine-tuned YOLOv8s threat detector (mAP@0.5 0.954), YOLO11m context track, R3D-18 action recognition on 4,200 UCF-Crime clips (95.71% test accuracy, macro F1 0.96) and a 16-feature scene-risk MLP.

Backend and data

FastAPI REST API with a bounded worker pool and job queue; 12 normalised SQLite tables in WAL mode with FK cascades; video files stay on disk. Indexed search P95 5.2 ms; 57,263 audit-log entries; three roles enforced server-side.

Operator console

Vanilla-JS console with dashboards, footage timelines, a detection player drawing boxes from the models' own output, Image Lab, Workflow Simulator, alerts, review queue and analytics. Device layer picks CUDA, then MPS, then CPU automatically.

DevOps & deployment

Docker image with CPU PyTorch, OpenCV and FFmpeg; CI/CD on Ubuntu, macOS and Windows runners with GCP and Hugging Face deploy targets. All inference, API and storage results were measured on a physical Apple M2 MacBook Pro (hv_vmm_present = 0); model training ran on a Google Colab CUDA VM. The first concurrency test failed 0/100 (one thread and one ffmpeg per upload); a bounded worker pool fixed it to 100/100 in 551 s.

How it ships · GCP Compute Engine VM · Docker Compose · GitHub Actions

  1. 1Pull request / push to main
  2. 2Install CPU torch + compile check
  3. 3docker compose config + docker build
  4. 4On main: gcloud compute ssh → git reset --hard → docker compose up -d --build
How I ship my projects

Features

  • Upload recorded footage into managed projects with automatic 15-second segmentation
  • Per-segment objects, actions, scene risk, S_sig and storage tier with playback
  • Forensic search across segments by time, object, action, tier and score
  • Five operating modes from Forensic Hold to Edge / Low Power
  • 72-hour degradation review queue before irreversible LOW-tier deletion
  • Image Lab and Workflow Simulator for explaining every decision
  • Security alerts, analytics and a full audit log
  • 173-test regression suite and CI on three operating systems

Screenshots

Fig 1 · Surveillance Overview — 60.0% storage saved across 255 analysed segments
Fig 2 · Footage analysis timeline: each 15-second segment coloured by tier (HIGH / MEDIUM / LOW)
Fig 3 · Segment player on real gun-point robbery CCTV — S_sig 1.000, kept HIGH and lossless
Fig 4 · Image Lab: fine-tuned YOLOv8s detects a gun at 71% in 631 ms on the M2 GPU
Fig 5 · Workflow Simulator: live funnel from ingestion to tier decision with a score trace
Fig 6 · Security alerts for high-significance events, with acknowledge and delete
Fig 7 · Degradation review queue: a 72-hour grace period before irreversible LOW-tier deletion
Fig 8 · Analytics: detections, decisions, alerts and timeline across both YOLO tracks
Fig 9 · Sign-in and registration with server-side role-based access
Fig 10 · What a LOW-tier segment keeps: a keyframe and its metadata
Fig 11 · Segment thumbnail from the forensic console

Related writing