Inspiration

Our inspiration stemmed from our fascination with the expansive security industry and the intriguing concept of facial recognition technology. This project provided a great opportunity to delve into and learn about the next generation of face-authentication with AI.

What it does

Our application leverages OpenCV to access the webcam and capture individual frames from the user. During this process, the user is prompted to exhibit various facial expressions to enhance recognition. We used a machine learning model that uses these frames to recognize faces from our image database. Based on the model's assessment, a Boolean value is returned to the JavaScript interface indicating the likelihood of a successful facial match. If the match exceeds 75%, the user proceeds from the login page; otherwise, they are prompted to retry or adjust their sign-in credentials.

Our frontend provides a straightforward interface featuring login and signup buttons. The signup process enables users to capture images, enter their names, and provide their email addresses. For logging in, users input the same parameters and have their faces scanned for comparison with the database images. The backend of our system efficiently manages images, names, and other relevant data to streamline database navigation.

How we built it

Our project started with a bare-bones idea, from which we developed a website that included placeholders for different components using React. These placeholders were gradually replaced with the intended features as we progressed. We used a Flask server to host the facial recognition technology and had a MongoDB database for storing the saved profiles and authentication data.

Challenges we ran into

We found it difficult to use OpenCV with the application for tracking and storing it to match to the database.

Accomplishments that we're proud of

Learning how to integrate OpenCV in realtime with the camera in the site was really fun! Hopefully we can try to implement other innovative technology for this.

What we learned

Our journey with this project was an enriching learning experience. We learned how to take an image as input from a website and use a trained machine learning model on image data. We also became familiar with some browser security and permission protocols, as well as basic network communication protocols. Our understanding of image data comparison and information security protocols was enhanced. Above all, we gained valuable insights into effective group work and self-management.

What's next for FaceLock

Hopefully we aim to implement some sort of mobile app for doing this authentication using React native. Ideally we want to expand this for other external websites and applications as well, potentially using a chrome extension for this purpose as well.

Share this project:

Updates