Skip to content

Latest commit

 

History

History
44 lines (35 loc) · 1.69 KB

README.md

File metadata and controls

44 lines (35 loc) · 1.69 KB

Face Recognition

Project done as a part of "High performance network services" class at University of Warsaw 2018/19.

Description

Main part of the project was to create Highly Available and easy to scale service.

Project resulted in service consisiting of following parts:

  • Frontend services - generating html files from templates
  • Face recognition service - operations on images linked to face recognition
  • Nginx front server - load balancing between front services and caching
  • Mongo and MySQL databases - storing data
  • RabbitMQ - offloading computations from frontend services to face recognition service

Features

  • Round robin load balancing using Nginx
  • Easy deployment with Docker using docker-compose
  • Caching requests for 2 seconds using Nginx
  • Partitioning in MySQL database
  • Asynchronous processing of incoming heavy requests with images thanks to RabbitMQ

System diagram

System diagram

Views

Main view - added images with lists of people on them Main view

People view - added people with their face pictures People view

Single image view - fullsize image with marked faces Single image view

Technology stack

  • Frontend: HTML/CSS, Bootstrap, Javascript
  • Backend: Python, Flask, MongoDB, MySQL, Nginx, RabbitMQ, face_recognition lib
  • Other: Docker, Git

How to run

After executing commands mentioned below whole service should be accessible on localhost:8080.

docker-compose build;
docker-compose up;