Face recognition software

Type A set of scripts
TECHNOLOGIES DLib, Docker container, OpenCV, Python
AREAS OF EXPERTISE Computer vision, Video stream processing, Face recognition
TEAM 2 developers, 1 tester, 1 project manager, 1 analyst

The Facial recognition tool is a software made for Jetson Nano devices that can perform fast face recognition with the lowest false-positive ratio possible (2%). This solution is meant to be used for factories, huge office spaces and other social organizations with restricted access to its territory. Its purpose is to provide effective and frictionless employee identification.

Generally, the task was to create a system that would be able to work with a video stream from a camera and: a) detect human faces in every frame and distinguish them from the background; b) recognize faces and compare them to descriptive vectors in the database; c) return a signal with information if a face is in the database or not.

To upload a new dataset into the database the administrator will use a simple Docker script that picks all the images and metadata from a specified folder.

  1. To prevent any unauthorized access, we had to achieve the lowest false-positive ratio possible. False-positive ratio (FPR) is the probability of falsely recognizing a face as one from the database, while it’s actually not there. But decreasing the false-positives ratio makes the system more and more demanding to the environment and video quality and indirectly increases the false-negatives ratio (FNR). This slows down the recognition process and may lead to unnecessary confusion during operation, so we had to find the perfect balance.
  2. One of the main challenges for the QA was to figure out an appropriate testing approach which will help us to make sure that in the real world the system works as good as in the digital simulation. While for testing the system in static we have used just some open source database of facial images, we had to do better than this for the dynamic testing at the final phase.
  3. We had to guarantee the same performance on the client’s  setup. So the system had to be deployed on our client’s devices remotely, and the camera setup had to be installed properly.
  1. We have researched the statistics on the topic of face recognition and FPR/FNR ratio balance and the theory behind it to find the best system sensitivity settings. Then we have deployed the system on a test stand in our office and tuned that balance even further. Thus we have achieved the best system performance together with a guarantee that the FPR will not exceed 2%.
  2. The first idea was to use some celebrities’ content (videos and images available for free usage) to virtually simulate and test the facial recognition video stream input. But then we decided to test it ourselves, so we have purchased and assembled all the necessary hardware, placed a camera in our office at an angle recommended by the client, hooked it up with the employees profile images from our ERP database and tested it on the company employees. This allowed us to be convinced in the quality of the product being developed.
  3. Our DevOps made a great job performing the smoothest deployment possible and provided all the necessary customer support to avoid any possible issues in operation. We have created a detailed guide on hardware and camera setup requirements, database update guide, and helped the customer step by step to make the system working in its best shape.

Face recognition software


The project was tested and accepted by the client. After some minor improvements, the system was launched on several facilities in Mexico, where the staff turnover sometimes exceeds 100% per year.

Business value

Our system helps to solve some of the problems related to the staff turnover by simplifying the process of the employee database update and eliminating the need of mesmerizing every worker personally. It also improves security measures and accelerates the checkpoint passage.

PoC for Football analytics system
PoC for Football analytics system
An algorithm to recognize dead and live cells in yeast images
An algorithm to recognize dead and live cells in yeast images