A Cheating Detection System using OpenPose Pose Estimation and XGBoost
View Demo
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 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.
To get a local copy up and running follow these simple example steps.
- Requirements for the default configuration (you might need more resources with a greater
--net_resolution
and/orscale_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.
- NVIDIA graphics card with at least 1.6 GB available (the
- 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.
- CUDA (Nvidia GPU) version:
- Dependencies:
- OpenCV (all 2.X and 3.X versions are compatible).
- Clone the repo
git clone https://github.com/gembancud/Cheating-Detection.git
- Install Python packages
pip install -r requirements.txt
- Download Compiled OpenPose Models + (Windows)Pyopenpose and move to:
- Download (Linux)Pyopenpose library without CuDnn and move to:
- Download (Linux)Pyopenpose library with CuDnn and move to:
Cheating-Detection/CheatDetection/
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
See the open issues for a list of proposed features (and known issues).
Author's personal documentation hosted on Google Sheets
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.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Gil Emmanuel Bancud - @iamuPnP - gembancud@gmail.com
Project Link: https://github.com/gembancud/Cheating-Detection