{"id":28762246,"url":"https://github.com/aarambhtech/exam-cheating-detection","last_synced_at":"2025-08-24T13:34:47.536Z","repository":{"id":293639394,"uuid":"984679234","full_name":"AarambhTech/exam-cheating-detection","owner":"AarambhTech","description":"AI-powered online exam proctoring system that detects suspicious activities using computer vision. Tracks eye movements, face presence, multiple faces, and talking during exams with real-time alerts and dashboard.","archived":false,"fork":false,"pushed_at":"2025-05-18T08:53:44.000Z","size":44,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-17T08:07:33.987Z","etag":null,"topics":["ai-education","ai-monitoring","ai-security","cheating-detection","computer-vision","deep-learning","education-tech","exam-proctoring","exam-security","eye-tracking","face-detection","mediapipe","online-assessment","online-exams","online-learning","opencv","proctoring-system","python-flask-dashboard","remote-learning","student-authentication"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AarambhTech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-16T10:23:14.000Z","updated_at":"2025-05-18T17:20:58.000Z","dependencies_parsed_at":"2025-05-16T11:41:14.936Z","dependency_job_id":null,"html_url":"https://github.com/AarambhTech/exam-cheating-detection","commit_stats":null,"previous_names":["aarambhtech/exam-cheating-detection"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AarambhTech/exam-cheating-detection","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AarambhTech%2Fexam-cheating-detection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AarambhTech%2Fexam-cheating-detection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AarambhTech%2Fexam-cheating-detection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AarambhTech%2Fexam-cheating-detection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AarambhTech","download_url":"https://codeload.github.com/AarambhTech/exam-cheating-detection/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AarambhTech%2Fexam-cheating-detection/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260318700,"owners_count":22991120,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-education","ai-monitoring","ai-security","cheating-detection","computer-vision","deep-learning","education-tech","exam-proctoring","exam-security","eye-tracking","face-detection","mediapipe","online-assessment","online-exams","online-learning","opencv","proctoring-system","python-flask-dashboard","remote-learning","student-authentication"],"created_at":"2025-06-17T08:07:33.942Z","updated_at":"2025-06-17T08:07:34.612Z","avatar_url":"https://github.com/AarambhTech.png","language":"Python","funding_links":["https://buymeacoffee.com/aarambhdevhub"],"categories":[],"sub_categories":[],"readme":"# AI-Powered Online Exam Cheating Detection System\n\n\u003c!-- ![System Demo](demo.gif) Add a demo gif later --\u003e\n\nA computer vision system that detects suspicious activities during online exams using webcam footage.\n\n## Features\n\n- **Face Presence Detection**: Identifies when student's face is not visible\n- **Eye Movement Tracking**: Detects excessive eye movements (left/right/up/down)\n- **Gaze Analysis**: Monitors direction of eye gaze\n- **Mouth Movement Detection**: Identifies potential talking or whispering\n- **Multi-Face Detection**: Alerts when multiple faces appear in frame\n- **Real-time Alerts**: Flags suspicious activities with timestamps\n- **Dashboard**: Visual interface showing detection metrics and alerts\n- **Object Delection**: Object Detection: Detects prohibited objects (cell phone, book, etc.).\n- **Screen Recoding**: Continuously captures examinee's screen activity\n- **Audio Detection**: Monitors for voice/whispering in student's environment\n- **Alert Speaker**: Delivers real-time verbal warnings via text-to-speech\n- **Report Generation**: Creates detailed visual PDF and HTML reports with violations summary, heatmaps, and activity timeline  \n\n\n## Technologies Used\n\n- Python 3.8+\n- OpenCV (for computer vision)\n- MediaPipe (for face mesh and landmark detection)\n- FaceNet-PyTorch (for face detection)\n- MTCNN (for face detection)\n- Flask (for dashboard)\n\n## Installation\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/yourusername/exam-cheating-detection.git\ncd exam-cheating-detection\n```\n\n2. Install dependencies:\n```bash\npip install -r requirements.txt\n```\n\n3. Download pre-trained models (if needed):\n```bash\npython -c \"from facenet_pytorch import MTCNN; MTCNN(keep_all=True)\"\n```\n\n## Usage\n\n1. Configure the system by editing `config/config.yaml`:\n```yaml\nvideo:\n  source: 0                   # 0 for default webcam\n  resolution: [1280, 720]\n  fps: 30\n  recording_path: \"./recordings\"\n\nscreen:\n  monitor_index: 0           # 0 for primary monitor\n  fps: 15                    # Lower FPS for screen recording\n  recording: true            # Enable/disable screen recording\n\n\ndetection:\n  face:\n    detection_interval: 5     # frames\n    min_confidence: 0.8\n  eyes:\n    gaze_threshold: 2          # seconds\n    blink_threshold: 0.3       # EAR threshold for blink detection\n    gaze_sensitivity: 15       # pixels threshold for gaze detection\n    consecutive_frames: 3      # frames for gaze change detection\n  mouth:\n    movement_threshold: 3     # consecutive frames\n  multi_face:\n    alert_threshold: 5        # frames\n  objects:\n    min_confidence: 0.65  # Detection confidence threshold\n    detection_interval: 5 # frames between detections\n    max_fps: 5            # Maximum detection frames per second\n  audio_monitoring:\n    enabled: true\n    sample_rate: 16000\n    energy_threshold: 0.001\n    zcr_threshold: 0.35\n    whisper_enabled: false  # Enable only when needed\n    whisper_model: \"tiny.en\"\n        \nlogging:\n  log_path: \"./logs\"\n  alert_cooldown: 10          # seconds\n  alert_system:\n    voice_alerts: true  # Enable/disable voice alerts\n    alert_volume: 0.8   # Volume level (0.0 to 1.0)\n    cooldown: 10        # Minimum seconds between same alert\n```\n\n2.Run the main detection system:\n```bash\npython src/main.py\n```\n\n3. (Optional) Run the dashboard in another terminal:\n```bash\npython src/dashboard/app.py\n```\n4. Access the dashboard at `http://localhost:5000`\n\n## System Architecture\n```\nexam_cheating_detection/\n├── config/              # Configuration files\n├── models/              # Pretrained models\n├── src/                 # Source code\n│   ├── detection/       # Detection modules\n│   ├── reporting/       # Reporting application\n│   ├── utils/           # Utility functions\n│   ├── dashboard/       # Web dashboard\n│   └── main.py          # Main application\n├── logs/                # Session logs\n└── recordings/          # Recorded video sessions\n```\n\n## Customization\nYou can adjust detection thresholds in `config/config.yaml`:\n```yaml\neyes:\n  gaze_threshold: 2      # seconds of gaze deviation to trigger alert\n  blink_threshold: 0.3   # eye aspect ratio for blink detection\n\nmouth:\n  movement_threshold: 3  # consecutive frames of mouth movement\n```\n\n## Troubleshooting\nProblem: Eye detection working, but not perfect\n\nSolution:\n\n    - Ensure good lighting on face\n    - Remove glasses if they cause glare\n    - Adjust camera position to be face-level\n\nProblem: Book detection working, but not perfect\n\nSolution:\n    -\n\n## Contributing\nContributions are welcome! Please open an issue or pull request for any improvements.\n\n## License\nMIT License - See [LICENSE](LICENSE) for details.\n\n## ☕ Support the Project\nIf you find this project helpful, consider buying me a coffee!\n[Buy Me a Coffee](https://buymeacoffee.com/aarambhdevhub)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faarambhtech%2Fexam-cheating-detection","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faarambhtech%2Fexam-cheating-detection","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faarambhtech%2Fexam-cheating-detection/lists"}