findface-extraction-api
The findface-extraction-api service uses neural networks to detect a face in an image, extract face biometric data (feature vector), and recognize gender, age, emotions, and other features.
It interfaces with the findface-sf-api service as follows:
Gets original images with faces and normalized face images.
Returns the coordinates of the face bounding box, and (optionally) feature vector, face feature data, should these data be requested by
findface-sf-api.
Tip
You can use HTTP API to directly access findface-extraction-api.
Functionality:
face detection in an original image (with return of the bbox coordinates),
face normalization,
feature vector extraction from a normalized image,
gender/age/emotions/country recognition.
The findface-extraction-api service can be based on CPU (installed from the findface-extraction-api package) or GPU (installed from the findface-extraction-api-gpu package). For both CPU- and GPU-accelerated services, configuration is done through the /etc/findface-extraction-api.ini configuration file. Its content varies subject to the acceleration type.
CPU-service configuration file:
allow_cors: false
detector_instances: 0
dlib:
  model: /usr/share/findface-data/normalizer.dat
  options:
    adjust_threshold: 0
    upsample_times: 1
extractors:
  instances: 1
  max_batch_size: 16
  models:
    age: ""
    beard: ""
    emotions: ""
    face: face/grapefruit_480.cpu.fnk
    gender: ""
    glasses3: ""
    liveness: ""
  models_root: /usr/share/findface-data/models
fetch:
  enabled: true
  size_limit: 10485760
license_ntls_server: 127.0.0.1:3133
listen: 127.0.0.1:18666
max_dimension: 6000
nnd:
  model: /usr/share/nnd/nnd.dat
  options:
    max_face_size: .inf
    min_face_size: 30
    o_net_thresh: 0.9
    p_net_max_results: 0
    p_net_thresh: 0.5
    r_net_thresh: 0.5
    scale_factor: 0.79
  quality_estimator: true
  quality_estimator_model: /usr/share/nnd/quality_estimator_v2.dat
ticker_interval: 5000
GPU-service configuration file:
listen: 127.0.0.1:18666
dlib:
  model: /usr/share/findface-data/normalizer.dat
  options:
    adjust_threshold: 0
    upsample_times: 1
nnd:
  model: /usr/share/nnd/nnd.dat
  quality_estimator: true
  quality_estimator_model: /usr/share/nnd/quality_estimator_v2.dat
  options:
    min_face_size: 30
    max_face_size: .inf
    scale_factor: 0.7900000214576721
    p_net_thresh: 0.5
    r_net_thresh: 0.5
    o_net_thresh: 0.8999999761581421
    p_net_max_results: 0
detector_instances: 0
extractors:
  models_root: /usr/share/findface-data/models
  max_batch_size: 3
  instances: 2
  models:
    age: ""
    beard: ""
    emotions: ""
    face: face/grapefruit_480.gpu.fnk
    gender: ""
    glasses3: ""
    liveness: ""
  cache_dir:
  gpu_device: 0
license_ntls_server: 172.17.46.26:3133
fetch:
  enabled: true
  size_limit: 10485760
max_dimension: 6000
allow_cors: false
ticker_interval: 5000
When configuring findface-extraction-api (on CPU or GPU), refer to the following parameters:
Parameter  | 
Description  | 
|---|---|
  | 
Enables face quality estimation. In this case,   | 
  | 
The minimum size of a face (bbox) guaranteed to be detected. The larger the value, the less resources required for face detection.  | 
  | 
The minimum size of a face (bbox) guaranteed to be detected.  | 
  | 
The   | 
  | 
(Only for GPU) The number of the GPU device used by   | 
  | 
The number of neural network instances (and, consequently, the number of simultaneously processed
requests) that are loaded into RAM by   | 
  | 
Enables fetching images from the Internet.  | 
  | 
The maximum size of an Internet image to be fetched.  | 
You will also have to enable recognition models for face features such as gender, age, emotions, glasses3, and/or beard, subject to your needs. Be sure to choose the right acceleration type for each model, matching the acceleration type of findface-extraction-api: CPU or GPU. Be aware that findface-extraction-api on CPU can work only with CPU-models, while findface-extraction-api on GPU supports both CPU- and GPU-models.
models:
  age: faceattr/age.v1.cpu.fnk
  emotions: faceattr/emotions.v1.cpu.fnk
  face: face/grapefruit_480.cpu.fnk
  gender: faceattr/gender.v2.cpu.fnk
  beard: faceattr/beard.v0.cpu.fnk
  glasses3: faceattr/glasses3.v0.cpu.fnk
The following models are available:
Face feature  | 
Acceleration  | 
Configuration file parameter  | 
|---|---|---|
face (biometry)  | 
CPU  | 
  | 
GPU  | 
  | 
|
age  | 
CPU  | 
  | 
GPU  | 
  | 
|
gender  | 
CPU  | 
  | 
GPU  | 
  | 
|
emotions  | 
CPU  | 
  | 
GPU  | 
  | 
|
glasses3  | 
CPU  | 
  | 
GPU  | 
  | 
|
beard  | 
CPU  | 
  | 
GPU  | 
  | 
Tip
To disable a recognition model, simply pass an empty value to a relevant parameter. Do not remove the parameter itself as in this case the system will be searching for the default model.
models:
  gender: ""
  age: ""
  emotions: ""