Inspiration

This project was built out of spite. It stemmed from the frustration of watching people cheat over and over again on quizzes, tests and other forms of examinations. This completely shifts their marks and invalidates any effort that students put in to study. The lack of an enforcement mechanism regarding cheaters is not to the fault of anyone but the cheaters themselves. Teachers and proctors are constantly surveilling the examination grounds and yet the reality is that: it is incredibly difficult to take any form of action without objective, undeniable proof. An instructor might know if a student is using their phone or whispering to their neighbour during examinations, but without physical proof then any accusation will simply turn into a dispute of fact. The lack of objective enforcement means cheaters can get away with almost all of their actions, whereas students with academic integrity suffer because of the altered curve. This project will serve as the judge of all academic disputes.

What it does

It serves as the third-party impartial and automated witness that provides time-stamped, visual and descriptive evidence for instructors to use to hold those who violate academic integrity accountable for their actions.

What we learned

Through this experience, each member was able to involve themselves first-hand on how to tinker with computer vision – an experience none of us had before. We learned how to break a standard webcam feed down into raw pixel arrays, isolate regions of interest (ROIs), and feed that into an ML model that was able to detect variations of our images and show when a student would likely be found cheating.

How we built it

We built this project using a python backend, which is connected to an arduino serial port. This backends connects to a NodeJS-based frontend via a real-time websocket connection. A Tensorflow pose model in the browser classifies posture and behaviour, which is then sent to an Express-based backend that communicates with an Arduino over pySerial. Simultaneously, a WebSocket connection allows real-time communication and synchronization with a central dashboard where teachers/proctors can monitor many students at once.

Challenges we ran into

Our greatest technical hurdle was that when experimenting with transitions between the three states (normal, caution, flagged), even the smallest movement would cause a change in state, thus creating false positives within our system. We had to manipulate the confidence percentage and event duration to ensure that normal eye-gazes from side to side and minor head tilts didn’t break our system and cause false alarms.

Share this project:

Updates