uug-ai / facial-access-control

A scalable web based application to provide and administer facial access to any device or service through facial biometric recognition.
https://uug.ai
3 stars 0 forks source link
docker facerecognition golang kerberosio kubernetes nextjs nvidia-gpu pytorch self-hosted

uuft.ai (facial access control)

This project is a facial access control system that allows you to setup a facial biometric permission application to provide access to various applications, IoT devices, IOs or other types of access control. The application is called uuft which is Ghent dialect for head and relates to concept the face recognition.

This project is currently under construction, so expect some brutal changes coming up ;)

Demo

To be completed

How does it work?

Uuft is a web based application that allows you to build and administer the biometrics of people within your organisation or group that requires biometric access through face detection. The application allows you to:

Next to the web based application, a machine learning workload is running in the background allowing to retrain or add more faces to the face recognition model on the fly, and more:

You can view the designs and mockups for our project on Figma. Click the link below to access them:

View Figma Designs

Architecture

A high-level architecture is visualised below, showing how the different components in this project are communicating. The idea is that each component ui, api and ml can be installed where you want. For example you could deploy the ui and api on a cloud provider, and self-host the ml part on your own private cloud or edge deployment to make sure you are owning the biometric data.

Architecture

UI (front-end)

The front-end makes use of the Next.js framework. Storybook will be used to keep track of and test our UI components.

API (back-end)

The back-end or API is written in Golang, and defines specific methods to persist data and call the face recognition model. It has various API methods to create new users, assign permissions and access control, and (re)train and interfere with the facial recognition model.

ML (face recognition)

To be documented

Kerberos.io (camera networks)

Uuft is focussing on a very specific usecase face recognition, however to operate in production it requires a camera infrastructure (surveillance cameras or ip cameras) to be processed. For example you might use an entrance camera to track incoming employees.

Managing a camera network comes with its own challenges and requires a solution on its own: onboarding cameras, storing recordings, livestreams, alerts, and more. Bottom line it's very complex to manage various cameras brands, make it stable, resilient and have a lot of management features in place. You would spend months and years building this yourself.

To overcome the complexity of managing a multitude of camera networks, we are using the kerberos.io stack. The idea is that we will deploy kerberos.io in one or more networks, consolidate all the cameras in a single distributed environment, and then target uuft's facial access control solution to one or more cameras.

Custom applications

You might not always require surveillance or ip cameras for your usecase. For example you can embed facial recognition into your own application, for example using your smartphone, tablet or working device (laptop).

A few example usecases are:

As described above you might already have your own usecase, for which you would like to integrate facial recognition in. By using uuft you can rely on a stable and user-friendly system that scales, and do not have to build a complete facial recognition system from scratch. Using apis and a management pane you can quickly onboard new facial biometrics and provide access to your solution in a matter of seconds.

Contributors

This project exists thanks to all the people who contribute.