Real-time AI exam monitoring | Multi-camera support | BLE & WiFi device detection | Intelligent alerting
Features โข Quick Start โข Documentation โข Demo โข Contributing
- Overview
- Features
- System Architecture
- Quick Start
- Installation
- Usage
- ESP32 Integration
- Configuration
- Documentation
- Future Roadmap
- Contributing
- License
- Contact
ExamShield is a comprehensive AI-powered exam proctoring solution that combines computer vision, deep learning, and IoT sensors to ensure exam integrity. Built with YOLOv8 for object detection and ESP32 microcontrollers for environmental monitoring, ExamShield provides real-time alerts for potential cheating behaviors.
- AI Object Detection: Detects phones, earphones, smartwatches in real-time
- Behavioral Analysis: Monitors head rotation and suspicious movements
- Multi-Student Tracking: Supports multiple students per camera
- IoT Integration: ESP32-based BLE and WiFi device monitoring
- Multi-Camera Support: Single camera, 4-camera (Pro), and 16-camera
(Enterprise) modes
- Intelligent Alerting: Smart cooldown system prevents false positives
- GPU Acceleration: CUDA, DirectML, and CPU support
- Risk Scoring: Weighted detection confidence with priority levels
| Detection Class | Priority | Description | Threshold |
|---|---|---|---|
| ๐ฑ Phone | Critical | Mobile phone usage | 45% |
| ๐ง Earphone | Critical | Earbuds/headphones (requires 3+ detections) | 30% |
| โ Smartwatch | High | Wearable device detection | 50% |
| ๐ Head Rotation | High | Suspicious head movement (sustained 5s) | 55% |
| ๐ Paper Passing | Medium | Paper exchange between students | 60% |
- โ Threaded Camera Capture - Zero frame lag with background processing
- โ Person Tracking - Centroid-based multi-student tracking
- โ Alert Management - Cooldown periods, photo limits, and spacing control
- โ Risk Scoring - Priority-weighted confidence analysis
- โ Session Reporting - Comprehensive CSV logs and summary reports
- โ ESP32 Integration - BLE scanner and WiFi sniffer for device detection
- โ Video Analysis - Process pre-recorded exam footage
- Standard Mode (
main.py) - Single camera, full features - Pro Mode (
Main_Pro.py) - 4 independent cameras - Enterprise Mode (
main_Enterprise.py) - Up to 16 cameras, optimized performance
graph TB
subgraph "Camera System"
CAM[Camera Feed] --> THREAD[Threaded Capture]
THREAD --> QUEUE[Frame Queue]
end
subgraph "AI Detection"
QUEUE --> YOLO[YOLOv8 Model]
YOLO --> DETECT[Object Detection]
DETECT --> PERSON[Person Tracking]
end
subgraph "Behavioral Analysis"
PERSON --> ANALYZE[Student Analyzer]
ANALYZE --> RISK[Risk Scoring]
RISK --> ALERT{Alert Trigger?}
end
subgraph "Alert System"
ALERT -->|Yes| PHOTO[Capture Photo]
PHOTO --> LOG[CSV Logging]
LOG --> REPORT[Session Report]
end
subgraph "IoT Monitoring"
ESP32_BLE[ESP32 BLE Scanner] --> UDP[UDP Stream]
ESP32_WIFI[ESP32 WiFi Sniffer] --> TCP[TCP Stream]
UDP --> GUI[Monitor GUI]
TCP --> GUI
end
ALERT -->|No| QUEUE
- Python 3.8+ installed
- Webcam or USB camera
- (Optional) ESP32 microcontrollers for IoT monitoring
- (Optional) NVIDIA GPU for faster processing
# Clone the repository
git clone https://github.com/MORSHEDMDMONOARUL/ExamShield.git
cd ExamShield
# Install dependencies
pip install -r requirements.txt
# Run ExamShield
python src/main.pyThat's it! ExamShield will start monitoring with your default camera.
| Key | Action |
|---|---|
Q |
Quit application |
S |
Take screenshot |
H |
Hide/show UI overlay |
git clone https://github.com/MORSHEDMDMONOARUL/ExamShield.git
cd ExamShield# Create virtual environment
python -m venv .venv
# Activate (Windows)
.venv\Scripts\activate
# Activate (Linux/Mac)
source .venv/bin/activatepip install -r requirements.txtultralytics==8.3.229- YOLOv8 frameworkopencv-python==4.12.0.88- Computer visiontorch==2.9.1- Deep learning frameworktorchvision==0.24.1- Vision utilitiesnumpy==2.2.6- Numerical computingpsutil==7.1.3- System monitoringPillow==12.0.0- Image processing
python src/main.pyBest for: Individual exam monitoring, testing, development
python src/Main_Pro.pyBest for: Small exam halls, multiple angle coverage
python src/main_Enterprise.pyBest for: Large exam halls, university-scale deployments
python src/videotodetect.pyProcess pre-recorded exam videos for post-exam analysis.
python src/esp32_monitor_gui.pyReal-time visualization of BLE and WiFi device detection.
-
Flash
BLE+WIFI/ble.inoto ESP32// Update WiFi credentials (lines 14-15) const char* ssid = "Your-WiFi-SSID"; const char* password = "Your-WiFi-Password"; // Update laptop IP (line 19) const char* targetIP = "192.168.1.100"; // Your computer's IP -
Run BLE Monitor
python BLE+WIFI/ble.py
- Flash
BLE+WIFI/wifi.inoto ESP32 - Run WiFi Monitor
python BLE+WIFI/wifi.py
python src/esp32_monitor_gui.pyDisplays both BLE and WiFi detections in a unified interface.
Edit configuration in src/main.py (lines 43-128):
class Config:
# Video settings
FRAME_WIDTH = 1280
FRAME_HEIGHT = 720
TARGET_FPS = 30
# Detection thresholds
ALERT_THRESHOLD = {
"phone": 0.45,
"earphone": 0.30,
"smartwatch": 0.50,
"headrotation": 0.55,
"paperpassing": 0.60
}
# Alert management
ALERT_COOLDOWN = 10 # seconds
MAX_PHOTOS_PER_ALERT = 3
PHOTO_INTERVAL = 2 # secondsExamShield uses a custom-trained YOLOv8 model:
- Path:
runs/detect/examshield_yolov8s/weights/best.pt - Size: 22.6 MB
- Classes: 5 (phone, earphone, smartwatch, headrotation, paperpassing)
To use your own model:
DETECTION_MODEL = "path/to/your/model.pt"- Installation Guide - Detailed setup instructions
- ESP32 Setup - Complete ESP32 configuration
- API Reference - Class and function documentation
- Architecture - System design and diagrams
- Troubleshooting - Common issues and solutions
- Contributing Guide - How to contribute
- Web-based dashboard for remote monitoring
- Database integration (PostgreSQL / MongoDB)
- Email / SMS alert notifications
- Mobile app for supervisors
- Advanced analytics and reporting
- Facial recognition for student identification
- Gaze tracking for attention monitoring
- Speech detection for verbal cheating
- Cloud deployment support (AWS / Azure)
- Multi-language support
- AI behavior prediction models
- Blockchain-based tamper-proof logs
- AR/VR exam environment support
- Integration with Learning Management Systems (LMS)
See FUTURE_ROADMAP.md for detailed plans.
We welcome contributions from the community! Here's how you can help:
- ๐ Report Bugs - Use issue templates
- ๐ก Suggest Features - Share your ideas
- ๐ Improve Docs - Help make documentation better
- ๐ป Submit PRs - Fix bugs or add features
- โญ Star the Repo - Show your support!
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add some AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open a Pull Request
See CONTRIBUTING.md for detailed guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2025 Sejong University
Developed by: Morshed MD Monoarul
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software... (see LICENSE file for full text)
Morshed MD Monoarul - Sejong University
- GitHub: @MORSHEDMDMONOARUL
- Email: monoarulmorshed@gmail.com
- Institution: Sejong University
Project Link: https://github.com/MORSHEDMDMONOARUL/ExamShield
Copyright: ยฉ 2025 Sejong University. All rights reserved.
Morshed MD Monoarul - Lead Developer
- Main application development (YOLOv8 integration, multi-camera system)
- Dataset preparation and model training in Roboflow
- YOLOv8 model training and optimization
- ESP32 monitor GUI development (BLE + WiFi)
- System architecture and design
- Documentation and project management
MIRAJ MD MEJBAH HOSSAIN - ESP32 IoT Developer
- BLE scanner implementation (ESP32)
- WiFi sniffer development (ESP32)
- IoT sensor integration
MANISH - AI Training Contributor
- Model training assistance in Roboflow
- Training dataset photos contribution
- Data annotation support
IKSA - AI Training Contributor
- Model training assistance in Roboflow
- Training dataset photos contribution
- Data annotation support
Sejong University
- Project supervision and resources
- Copyright holder
- Ultralytics YOLOv8 - Object detection framework
- OpenCV - Computer vision library
- Espressif ESP32 - IoT microcontroller
- PyTorch - Deep learning framework
- Roboflow - Dataset management and model training platform
- Dataset preparation: Roboflow
- Model architecture: YOLOv8s
- Training: Custom dataset with 5 cheating detection classes
- Annotation: Team collaborative effort
- Sejong University for project support and resources
- All contributors for their dedication to academic integrity
- Open source community for the amazing tools
Made with โค๏ธ for academic integrity
If you find ExamShield useful, please consider giving it a โญ๏ธ