An offline video forensics system for automated examination malpractice detection and tamper-evident case auditing.
Python
0
1 commits
updated Aug 23, 2026
Deterministic · 100% On-Premise · Zero Facial Recognition · Conformal FDR Control · Full-Stack Forensics
Large-scale written and computer-based examinations face severe integrity vulnerabilities: subtle paper chit exchanges, concealed micro-electronics (smart watches, earphones, cell phones), coordinated copying networks, and invigilator collusion. Manual invigilation and passive CCTV review suffer from human fatigue, blind spots, and lack of verifiable proof.
SAAKSHI (साक्ष्य) is an enterprise-grade, privacy-preserving video forensics system built specifically for offline examination halls. Operating strictly on-premises without cloud dependencies, SAAKSHI transforms passive CCTV streams into mathematical proof:
[ CCTV FOOTAGE (MP4 / AVI / H.264 / HEVC) ]
│
▼
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ STAGE 1: DAY-0 VIDEO PROFILER │
│ • Hardware/Software Decoder Routing • True FPS vs Container Extraction • MB Noise-Floor Calibration│
└───────────────────────────────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ STAGE 2: AUTOMATIC SEATMAP DISCOVERY │
│ • Temporal Persistence Discovery • Watershed / Voronoi Splitting • Contested Space Fraction │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ STAGE 3: MULTI-CHANNEL MOTION PASS │
│ • DIS Dense Optical Flow • Global Camera Motion Subtraction • Native-FPS Cascade │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ STAGE 4: STATISTICAL EVIDENCE CORE & FDR CONTROL │
│ • Huber Common-Mode Nuisance Rejection • Conformal EVT Tail Scoring • PELT Segmentation │
│ • Benjamini–Hochberg FDR ($q \le 0.05$) • Exchange Graph Permutation Test • Staff Lookback (2.0 Hz) │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ STAGE 5: DEEP MULTIMODAL AI VERIFICATION │
│ • RF-DETR + SAHI Micro-Object Detection • Static Background Suppression • SmolVLM Visual Reasoning │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ STAGE 6: FORENSIC CONSOLE & CASE MANAGEMENT │
│ • Review Console & Annotations • Incident Ticketing (SAAK-n) • Persistent Bookmarks │
│ • Interactive Hall & Seat Heatmaps • Timeline & Lookback Player • Hash-Chained PDF Export │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────┘
| Stage 2 — Automatic Seatmap Discovery | Stage 4/5 — Anomaly Detection & Flagging |
|---|---|
![]() | ![]() |
| Temporal persistence clustering auto-generates per-seat region polygons from raw footage. | A candidate flagged for suspicious lateral movement; red box marks the alert zone, orange skeleton shows detected pose. |

Stage 5 — RF-DETR + pose skeleton on an isolated high-confidence flag; adjacent seats are empty, ruling out common-mode noise.
/console):
/tickets):
SAAK-1, SAAK-2, etc.) with state machine transitions (OPEN → IN_REVIEW → RESOLVED → CLOSED).P1 Critical, P2 High, P3 Medium, P4 Low)./bookmarks):
UNCLEAR OBJECT, OCCLUDED, LOW CONFIDENCE, 2ND OPINION)./hall):
/timeline):
/queue):
/export):
| Layer | Technologies |
|---|---|
| Deep Learning & CV | PyTorch, torchvision, RF-DETR, SAHI, SmolVLM, OpenCV (DIS Optical Flow), Shapely |
| Statistical Engine | NumPy, SciPy (EVT / Conformal), ruptures (PELT change-point), pandas |
| Backend API | Python 3.11+, FastAPI, Uvicorn, Python-Multipart, Pydantic |
| Frontend App | React 19, Vite 6, Tailwind CSS, React Router 7 |
| Design & UI | JetBrains Mono & Inter (Vendored, Zero CDN), Custom In-House Toast System |
| Tooling & Package Mgmt | uv (ultra-fast Python package manager), npm, oxlint |
uv installed (curl -LsSf https://astral.sh/uv/install.sh | sh)npmgit clone https://github.com/Nikshaan/CBT_cheating_detector.git
cd CBT_cheating_detector
cd backend
uv sync
uv run python tools/serve_api.py
The SAAKSHI Bridge API will initialize at
http://127.0.0.1:8787.
In a new terminal:
cd frontend
npm install
npm run dev
Access the web application at
http://localhost:5173(orhttp://localhost:5175).
To run the complete 6-stage forensics analysis directly on raw exam hall footage from the CLI:
cd backend
uv run python -m saakshi run /path/to/exam_hall_cctv.mp4 --out-dir reports/cases
--out-dir: Directory for consolidated case JSON and evidence frames (default: reports/cases).--n-samples: Number of frames sampled for seatmap discovery (default: 200).--no-intervention: Skip invigilator tracking pass for faster processing.--no-vlm: Run RF-DETR object detection while skipping the heavier SmolVLM pass.--k-budget: Cap candidate windows evaluated in Stage 4 (default: 200).An offline video forensics system for automated examination malpractice detection and tamper-evident case auditing.
Python
0
1 commits
updated Aug 23, 2026
Deterministic · 100% On-Premise · Zero Facial Recognition · Conformal FDR Control · Full-Stack Forensics
Large-scale written and computer-based examinations face severe integrity vulnerabilities: subtle paper chit exchanges, concealed micro-electronics (smart watches, earphones, cell phones), coordinated copying networks, and invigilator collusion. Manual invigilation and passive CCTV review suffer from human fatigue, blind spots, and lack of verifiable proof.
SAAKSHI (साक्ष्य) is an enterprise-grade, privacy-preserving video forensics system built specifically for offline examination halls. Operating strictly on-premises without cloud dependencies, SAAKSHI transforms passive CCTV streams into mathematical proof:
[ CCTV FOOTAGE (MP4 / AVI / H.264 / HEVC) ]
│
▼
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ STAGE 1: DAY-0 VIDEO PROFILER │
│ • Hardware/Software Decoder Routing • True FPS vs Container Extraction • MB Noise-Floor Calibration│
└───────────────────────────────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ STAGE 2: AUTOMATIC SEATMAP DISCOVERY │
│ • Temporal Persistence Discovery • Watershed / Voronoi Splitting • Contested Space Fraction │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ STAGE 3: MULTI-CHANNEL MOTION PASS │
│ • DIS Dense Optical Flow • Global Camera Motion Subtraction • Native-FPS Cascade │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ STAGE 4: STATISTICAL EVIDENCE CORE & FDR CONTROL │
│ • Huber Common-Mode Nuisance Rejection • Conformal EVT Tail Scoring • PELT Segmentation │
│ • Benjamini–Hochberg FDR ($q \le 0.05$) • Exchange Graph Permutation Test • Staff Lookback (2.0 Hz) │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ STAGE 5: DEEP MULTIMODAL AI VERIFICATION │
│ • RF-DETR + SAHI Micro-Object Detection • Static Background Suppression • SmolVLM Visual Reasoning │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ STAGE 6: FORENSIC CONSOLE & CASE MANAGEMENT │
│ • Review Console & Annotations • Incident Ticketing (SAAK-n) • Persistent Bookmarks │
│ • Interactive Hall & Seat Heatmaps • Timeline & Lookback Player • Hash-Chained PDF Export │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────┘
| Stage 2 — Automatic Seatmap Discovery | Stage 4/5 — Anomaly Detection & Flagging |
|---|---|
![]() | ![]() |
| Temporal persistence clustering auto-generates per-seat region polygons from raw footage. | A candidate flagged for suspicious lateral movement; red box marks the alert zone, orange skeleton shows detected pose. |

Stage 5 — RF-DETR + pose skeleton on an isolated high-confidence flag; adjacent seats are empty, ruling out common-mode noise.
/console):
/tickets):
SAAK-1, SAAK-2, etc.) with state machine transitions (OPEN → IN_REVIEW → RESOLVED → CLOSED).P1 Critical, P2 High, P3 Medium, P4 Low)./bookmarks):
UNCLEAR OBJECT, OCCLUDED, LOW CONFIDENCE, 2ND OPINION)./hall):
/timeline):
/queue):
/export):
| Layer | Technologies |
|---|---|
| Deep Learning & CV | PyTorch, torchvision, RF-DETR, SAHI, SmolVLM, OpenCV (DIS Optical Flow), Shapely |
| Statistical Engine | NumPy, SciPy (EVT / Conformal), ruptures (PELT change-point), pandas |
| Backend API | Python 3.11+, FastAPI, Uvicorn, Python-Multipart, Pydantic |
| Frontend App | React 19, Vite 6, Tailwind CSS, React Router 7 |
| Design & UI | JetBrains Mono & Inter (Vendored, Zero CDN), Custom In-House Toast System |
| Tooling & Package Mgmt | uv (ultra-fast Python package manager), npm, oxlint |
uv installed (curl -LsSf https://astral.sh/uv/install.sh | sh)npmgit clone https://github.com/Nikshaan/CBT_cheating_detector.git
cd CBT_cheating_detector
cd backend
uv sync
uv run python tools/serve_api.py
The SAAKSHI Bridge API will initialize at
http://127.0.0.1:8787.
In a new terminal:
cd frontend
npm install
npm run dev
Access the web application at
http://localhost:5173(orhttp://localhost:5175).
To run the complete 6-stage forensics analysis directly on raw exam hall footage from the CLI:
cd backend
uv run python -m saakshi run /path/to/exam_hall_cctv.mp4 --out-dir reports/cases
--out-dir: Directory for consolidated case JSON and evidence frames (default: reports/cases).--n-samples: Number of frames sampled for seatmap discovery (default: 200).--no-intervention: Skip invigilator tracking pass for faster processing.--no-vlm: Run RF-DETR object detection while skipping the heavier SmolVLM pass.--k-budget: Cap candidate windows evaluated in Stage 4 (default: 200).