/Cheating-Detection

Undergraduate Thesis on using Machine Learning Pose Estimation for Examination Cheating Detection

Primary LanguagePythonMIT LicenseMIT


Live Exam Cheating Detection

A Cheating Detection System using OpenPose Pose Estimation and XGBoost
View Demo

Table of Contents

About The Project

Abstract - Academic cheating is the use of prohibited methods to gain an unlawful advantage during academic tests and examinations. This study proposes the use of cutting-edge machine learning, particularly deep learning, to utilize pose estimation on examinees to determine if they are cheating. A proctor’s monitoring system was developed alongside the assistive monitoring device using the Nvidia Jetson Nano. A web application was developed to allow the proctor to observe the video feed captured by the device, control the pose estimation and cheating detection features, and review previously stored evidence. The developed system provides real-time capabilities close to 10 frames per second under the full computational load. Benchmarked on a validated dataset, the system was evaluated with an accuracy of 90%, an f1-score of 89.65%, and an area nder the receiver operating characteristic curve (AUROC) of 0.32%. A demonstrated survey to proctors yields complete greement on the system’s overall effectiveness.

See the complete paper here!

This study has won 1st Runner up in the Ateneo de Davao University Engineering Thesis Awards. See here!

This project is no longer under active development but welcomes changes/improvements

Built With

This section should list any major frameworks that you built your project using. Leave any add-ons/plugins for the acknowledgements section. Here are a few examples.

Getting Started

To get a local copy up and running follow these simple example steps.

Prerequisites

  • Requirements for the default configuration (you might need more resources with a greater --net_resolution and/or scale_number or less resources by reducing the net resolution and/or using the MPI and MPI_4 models):
    • CUDA (Nvidia GPU) version:
      • NVIDIA graphics card with at least 1.6 GB available (the nvidia-smi command checks the available GPU memory in Ubuntu).
      • At least 2.5 GB of free RAM memory for BODY_25 model or 2 GB for COCO model (assuming cuDNN installed).
      • Highly recommended: cuDNN.
    • OpenCL (AMD GPU) version:
      • Vega series graphics card
      • At least 2 GB of free RAM memory.
    • CPU-only (no GPU) version:
      • Around 8GB of free RAM memory.
    • Highly recommended: a CPU with at least 8 cores.
  • Dependencies:
    • OpenCV (all 2.X and 3.X versions are compatible).

Installation

  1. Clone the repo
git clone https://github.com/gembancud/Cheating-Detection.git
  1. Install Python packages
pip install -r requirements.txt
Cheating-Detection/CheatDetection/

Usage

Use this space to show useful examples of how a project can be used. Additional screenshots, code examples and demos work well in this space. You may also link to more resources.

For more examples, please refer to the Documentation

Roadmap

See the open issues for a list of proposed features (and known issues).

Author's personal documentation hosted on Google Sheets

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Gil Emmanuel Bancud - @iamuPnP - gembancud@gmail.com

Project Link: https://github.com/gembancud/Cheating-Detection

LinkedIn

Acknowledgements