We as online learners have faced issues of meetings being hacked, random people joining the meeting and disrupting classes. We knew that a majority of the schools world wide are doing online learning and there was no safe way to access zoom links. We know the experience of "zoom bombings" an understand that it creates a unsafe environment in our school. So we decided to build Zoom Go to prevent these hacks from occurring and stopping outsiders from retrieving the zoom link and creating a better safer learning environment for students, teachers, and the school.

What it does

It uses facial recognition technology to detect faces. When student opens the website, the students webcam is turned on and the website looks for a face. When it finds a face, it compares it with the images from the database of registered students and if the image from the webcam matches any face in the database i.e. if the student is a registered student then he/she will automatically be redirected to the meeting link provided by the organizer/teacher.

How we built it

We used face-api.js library for detecting and recognizing faces. It is a pre-trained and quantized model which makes facial recognition very simple and fast. We get the webcam from the user which is shown to the user in a video element and once a face is detected, a canvas element on top of that draws a bounding box to highlight the face. If the face exists in the database, the name of the student is shown in the box and the student is immediately redirected to the meeting link. If the face doesn't match, then the text unknown is shown next to the box and the user is not redirected.

Challenges we ran into

Some challenges that we ran into were getting live video feed. This was difficult since we would have to use a canvas to draw the border box around the object and further training it too make sure it identifies the student as well. Though we got that accomplished, checking both images was also difficult since the condition were problematic. Checking the images before was done using a if-else statement and if !fullFaceDescription was true, it did not redirect. This was a problem, and we saw that it needed to be changed so that the variable that contains the live feed checks on the actual image. This was a major problem since if we used the first way, anyone could get in, but using the second way we could only allow specific users to get in.

Accomplishments that we're proud of

Unlike traditional other machine learning programs which need GPUs or fast servers with high RAM to run, this website can be deployed on any server and even if the student is accessing this from a mobile device, performance won't be highly impacted and the student will still be able to verify himself.

What we learned

We learned how to use the face-api.js library to see if selected images in a database is the same as the real-time image in the web cam.

What's next for Zoom Go

1) Get student images from school database. We would like to integrate real school databases and use their student ID images to provide schools and teachers with our product and apply it to 25+ students

2) Create admin page for teacher to allow teacher to add links to their classes so student can be redirected to it. This goes off from the first point, meaning that we would like to create a UI specifically for teachers who can put their classroom zoom links directly into the application

3) Get school schedule from database and set up auto link redirection based on time of the day that the student is logging in, so teachers won’t have to add links every day.

What we learned

We learned how to use the face-api.js library to see if selected images in a database is the same as the real-time image in the web cam.

How to run the demo on your PC?

  1. Clone the GitHub repo to your PC
  2. Open the cloned folder with VSCode
  3. Select index.html file
  4. Right click inside the index.html file, and click open with live server.
    If you do not have live server installed, then install it from the VSCode Marketplace
  5. Browser window will automatically pop up and webcam stream will be shown
Share this project: