Skip to content

Highly available and scalable service for face recognition

Notifications You must be signed in to change notification settings

Ogochi/Face-Recognition

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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;

About

Highly available and scalable service for face recognition

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published