Choose Deployment ArchitectureΒΆ

FindFace Enterprise Server SDK is delivered in the following distributable packages:

  • A package with components <findface-repo>.deb.
  • Several packages with neural network models <findface-data>.deb. Each model is delivered in a separate package.

Depending on your system characteristics and performance requirements, there are 2 FindFace Enterprise Server SDK deployments:

Deployment Recommendation
Standalone You can deploy FindFace Enterprise Server SDK and neural network models on a single host (standalone) if the number of faces in the database does not exceed some 1,000,000. This variant makes it easier to start deployment and cater to basic requirements of your applications. Standalone deployment can be done step-by-step, from a developer-friendly installer, or as a fully pre-configured virtual machine image.
Cluster If the number of faces in the database does exceed 1,000,000, deploy FindFace Enterprise Server SDK in a cluster environment and configure fast index search. In this case, FindFace Enterprise Server SDK components will be distributed across several hosts. This is a medium and large deployment which can be scaled almost infinitely. It will also suit professional high load projects with severe requirements to performance. Cluster deployment can be only done step-by-step.

The FindFace Enterprise Server SDK basic configuration (FindFace Server) includes the following components:

Component Description
findface-facenapi Python daemon which runs HTTP API and provides the system functioning. It interfaces with MongoDB and extraction-api and tarantool@FindFace daemons.
tntapi (tarantool@FindFace as a shard) Daemon which enables interaction with the face descriptors index (Tarantool database).
findface-extraction-api Daemon which detects a face and extracts a feature vector (based on neural networks). Requires the packages with models <findface-data>.deb. Can also provide advanced functions.
MongoDB Database which stores faces metadata, galleries details, settings, etc.
findface-upload Nginx web server used to receive images using WebDAV.
NTLS Local license server which interfaces with NtechLab Global License Server (for network licensing) or a USB dongle (for on-premise licensing) and passes a license to licensable components.

In addition to FindFace Server, you can also harness advanced features provided by the following components from the <findface-repo>.deb package:

Component Description
fkvideo_detector The video face detection component fkvideo_detector extracts faces from a RTSP camera stream or a video file on-the-fly and sends them via REST API to findface-facenapi for further processing. Licensable.
findface-extraction-api By default, the findface-extraction-api component is used as an extractor of the face feature vector. The component also provides several advanced features, for example, flexible configuration of the API response format. Use this feature to extract various face data, including the bounding box coordinates, normalized face, gender, age, and emotions. Implementing this feature to your system can remarkably broaden the scope of analytic tasks it is capable of fulfilling. Licensable.
findface-mass-enroll The findface-mass-enroll component allows for enrolling faces to findface-facenapi from images in bulk.
findface-ui A web user interface which generally duplicates the functionality available via REST API. To be installed on the findface-facenapi host.
findface-tarantool-build-index The findface-tarantool-build-index component creates a fast index for galleries with the number of faces over 1,000,000.

A typical FindFace Enterprise Server SDK architecture is shown in the diagram below.