Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProctorVision AI 🎓🔍

AI-Powered Exam Proctoring System — Real-time cheating detection using computer vision and pose estimation for university examination halls.

Features

  • 🎯 Real-Time Pose Analysis — YOLOv8-Pose based behavioral detection
  • 👁️ Multi-Cue Detection — Head gaze, body lean, hand signals, shoulder asymmetry
  • 📊 Adaptive Row Thresholds — Front/Middle/Back row detection with per-student calibration
  • 🔒 Locked Detection Thresholds — All 30+ thresholds frozen via immutable dataclass
  • 🎥 CCTV & Webcam Support — Works with IP cameras (RTSP) and video files
  • 📋 Evidence Management — Auto-captures violation clips and screenshots
  • 🪑 Seating Plan Integration — CSV-based seat-to-student mapping with attendance
  • 📈 Detailed Reports — Per-student violation reports with confidence scores
  • 🤝 Interaction Detection — Detects coordinated cheating between neighbors

System Architecture

ProctorVision/
├── main.py                    # Entry point
├── run.bat                    # Windows launcher (uses bundled Python)
├── ProctorVision.vbs          # Silent launcher (no console window)
├── src/
│   ├── config.py              # LOCKED system configuration
│   ├── core/
│   │   ├── pose_analysis.py   # 🔒 LOCKED detection engine (frozen thresholds)
│   │   ├── tracker.py         # CentroidTracker for person persistence
│   │   ├── evidence_manager.py# Violation clip & screenshot capture
│   │   ├── gaze_tracker.py    # MediaPipe gaze estimation (disabled)
│   │   ├── face_recognition_manager.py  # Face recognition (optional)
│   │   └── confusion_matrix.py# Accuracy evaluation tools
│   ├── gui/
│   │   ├── app.py             # Main ProctorDashboard window
│   │   ├── theme.py           # UI theme constants
│   │   ├── video_processor.py # Core video processing loop
│   │   └── screens/           # Dashboard, Process, Reports, Settings
│   ├── utils/
│   │   └── seating.py         # Seating plan utilities
│   └── tools/
│       └── video_roi_selector.py  # ROI selection tool
├── assets/
│   └── logo.png               # Application logo
├── data/
│   ├── seating_map.json       # Seat coordinate definitions
│   ├── seating_plan.csv       # Seat-to-student mapping
│   └── student_database.csv   # Student database
└── models/                    # YOLOv8 models (download separately)

Quick Start

Prerequisites

  • Python 3.11+
  • Windows 10/11

Installation

  1. Clone the repository:
git clone https://github.com/Manjoooooo/ProctorVision.git
cd ProctorVision
  1. Install dependencies:
pip install -r requirements.txt
  1. Download YOLOv8 Pose models (place in models/ folder):

    • yolov8n-pose.pt (Fast — low-end hardware)
    • yolov8s-pose.pt (Balanced — recommended)
    • yolov8x-pose.pt (Accurate — powerful GPU)
  2. Run:

python main.py

Or use the Windows launcher: run.bat

Detection Thresholds (LOCKED 🔒)

All detection thresholds are consolidated in a frozen dataclass in src/core/pose_analysis.py. They cannot be modified at runtime — any attempt raises FrozenInstanceError.

Category Key Thresholds
Classification Suspicious: 0.38, Cheating: 0.60
Head Turn Moderate: 1.35, Extreme: 1.55
Body Lean Front: 0.42, Middle: 0.50, Back: 0.58
Hand Signal Front: 0.35, Middle: 0.42, Back: 0.50
Temporal 3-frame gate, 0.5s violation duration

Team & Mentorship 🎓

Project Team (Batch 2022)

  • Ahmed Muarij Siddiqui (22FA-062-SE)
  • Fatima Amin Siddiqui (22FA-046-SE)
  • Nabiha Fatima (22FA-008-SE)
  • Abdul Raahim Sheikh (22FA-039-SE)

Supervisor

  • Dr. Muhammad Wasim
  • Department of Software Engineering, UIT University

License / Academic Usage

This project is developed as a Final Year Project (FYP) for academic purposes.

About

AI-powered examination monitoring and attendance system using YOLOv8, OpenCV and Flask.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages