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.

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
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
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
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
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
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
- 1Pull request / push to main
- 2Install CPU torch + compile check
- 3docker compose config + docker build
- 4On main: gcloud compute ssh → git reset --hard → docker compose up -d --build
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
Related writing
DevOps · 4 min
Cloud Run Problems I Actually Hit — and the Morning My Demo Was Gone
Missing service accounts, region-locked models, disks that vanish, one-writer SQLite, schedulers that stop — and the build-time check that found Nora Labs returning Google's 404.
29 Oct 2026
DevOps · 4 min
Automation Did the Typing. Humans Did the Work.
What automation genuinely saved across 23 projects — and the drawings, verification, font checks, hand calibration and Sinhala writing that only people could do.
25 Oct 2026
Deep dive · 12 min
Quintrix ITSO: My Final-Year Project — 60% Less CCTV Storage by Scoring What Happens
Our 2nd-place InOrbit research project: 15-second segments, a MOG2 motion gate, fine-tuned YOLOv8s, R3D-18 on UCF-Crime, an auditable fusion score and three storage tiers — plus the seven defects we only found by measuring.
14 Sept 2026
More in ML, Vision & Quant
ML & Vision
CryptoEdge & TradeV1 ML
Automated Binance crypto trading engine and machine learning price forecasting pipeline with cloud CI/CD.

ML & Vision
Machine Learning Playbook & Deep Learning Lab
Interactive machine learning educational playground and hands-on laboratory covering computer vision, regression, and deep neural nets.