You’re a student, waiting to take a final you’ve stayed up all night studying for. It’s a big test, worth a big chunk of your grade, so you’ve got a good reason to be nervous. You join the call at 5:00 PM, but then you end up waiting in the call… for 10, 15, even 20 minutes, while they perform long “ID checks” that they’ve already done a couple times in the term. Not to mention the security risks associated with these checks! You’re showing your name, student number, and face to a room of 200 strangers that you’ve never seen before.
What it does
- Prior to an invigilated exam, students will send in a clear picture of their student ID
- On the day of the examination, students will enter the Zoom call with their webcams on. After instructing all students to look directly at the camera, the invigilator will then scroll through the screens of everyone on the call and take a screenshot for each slide of students. The screenshots are then uploaded to eXamine, which will then compare all the faces in the screenshot to the database of students.
- eXamine will then a class list, indicating which students are present and absent. The advantages of using eXamine are:
- It SIGNIFICANTLY reduces the time required by students, TAs, and professors to stay on call, waiting for names to be checked. Though 15 minutes may not seem like a lot of time, there are many implications that it may hold on students’ and teachers’ stress, as well other complications that come with online school, including limited internet access and different time zones.
- The security risk of displaying your card to everyone is greatly reduced.
- Reduction of manpower and time spent on manually comparing everyone in the zoom call with the class list.
How we built it
We built eXamine using Python, primarily using the OpenCV library for its powerful computer vision capabilities. Our backend structure aloso included the use of NumPy, Face-Recognition, Dlib, and CMake. For our front end UI, we used Tkinter.
Challenges we ran into
One of the biggest challenges was understanding the libraries and dependencies we were using. Installation ended up taking much longer than we anticipated, especially considering we were not familiar with the libraries prior to the hackathon. As a result, we were more pressed on time, as we also had to figure out how to implement the different libraries and platforms.
Accomplishments that we're proud of
We found small victories throughout our hackathon. From finally getting all the libraries' installations working properly on everyone's device, to figuring out the capabilities and limitations of each of the libraries, we're proud of our own perseverance to work through errors to get a working prototype.
What we learned
It was the first time that we worked with OpenCV. We learned a lot through figuring out how to make different parts of the backend work, exploring the documentation, and working with Python as a team.
What's next for eXamine
- Continue optimizing the app so that it is more efficient comparing pictures
- Integrate with the Zoom API (and/or API of other online conferencing software) to automatically detect attendance within the meeting, without needing to manually screenshot
- Retrieve student IDs directly from the university/school to minimize security risk and eliminate the need for students to send in a picture of their ID.