Серверная часть проекта FaceDoor состоит из двух приложений, реализованных на языках Java и Python. Сервер на Java использует фреймворк SmartActors, реализующий акторную модель.
Сервер на Python использует библиотеки PyTorch, OpenCV, Dlib, Pillow и Numpy для обработки изображений и распознавания лиц. Он представляет собой REST API, реализованный на FastAPI, который обрабатывает HTTP-запросы на распознавание лиц. Python-сервер использует нейронную сеть ResNet, обученную на наборе данных VGG Face, чтобы сравнивать фотографии, отправленные пользователем, с изображениями сотрудников, сохраненными в базе данных.
ResNet trained on VGG Face
Когда пользователь отправляет фотографию для авторизации в системе, она передается на сервер на Python. Сервер использует нейросети для распознавания лица и проверки его совпадения с изображениями, сохраненными в базе данных на сервере на Java. Если совпадение найдено, сервер на Java возвращает сигнал для открытия двери.