The backend of the FaceDoor project consists of two applications implemented in Java and Python. The Java server uses the SmartActors framework, which implements the actor model.
The Python server uses PyTorch, OpenCV, Dlib, Pillow and Numpy libraries for image processing and face recognition. It is a REST API implemented on FastAPI that handles HTTP requests for face recognition. The Python server uses a ResNet neural network trained on the VGG Face dataset to compare user-submitted photos with employee images stored in the database.
ResNet trained on VGG Face
When a user submits a photo for authorization in the system, it is transmitted to the server in Python. The server uses neural networks to recognize a face and check if it matches the images stored in the database on the server in Java. If a match is found, the Java server returns a signal to open the door.