Build a Facial Recognition Access Control Solution

The application detects and registers the image of a person’s face into a database. It recognizes known users entering a designated area and grants access if a person’s face matches an image in the database.

View on GitHub*

What It Does

Learn to build and run an application that:

Detects and registers the image of a person’s face into a database

Recognizes known users entering a designated area

Grants access if a person’s face matches an image in the database

The system consists of two main subsystems:

cvservice

  • This C++ application uses the OpenVINO™ toolkit and connects to a USB camera to detecting faces. It then performs facial recognition based on a training data file of authorized users to determine if a detected person is a known user or is previously unknown. Messages are published to a MQTT* broker when users are recognized, and the processed output frames are written to stdout in raw format (to be piped to ffmpeg for compression and streaming). Here, Intel's photography vision library is used for facial detection and recognition.

webservice

  • This application uses the MQTT broker to interact with cvservice, and is based on Node.js* to provide visual feedback at the user access station. Users are greeted when recognized as authorized users or given the option to register as a new user. It displays a high-quality, low-latency motion jpeg stream along with the user interface and data analytics.

What We Used

Hardware requirements

5th generation Intel® Core™ processor (or newer) or Intel® Xeon® processor (v4 or v5) with Intel® Graphics Technology

USB webcam

Software requirements

Ubuntu* 16.04 LTS

OpenVINO™ toolkit