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: ''
    emotions: ''
    face: face/elderberry_576.cpu.fnk
    gender: ''
  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:
allow_cors: false
detector_instances: 0
dlib:
  model: /usr/share/findface-data/normalizer.dat
  options:
    adjust_threshold: 0
    upsample_times: 1
extractors:
  instances: 2
  max_batch_size: 16
  models:
    age: ''
    emotions: ''
    face: face/elderberry_576.gpu.fnk
    gender: ''
  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.8999999761581421
    p_net_max_results: 0
    p_net_thresh: 0.5
    r_net_thresh: 0.5
    scale_factor: 0.7900000214576721
  quality_estimator: true
  quality_estimator_model: /usr/share/nnd/quality_estimator_v2.dat
prometheus:
  faces_buckets:
  - 0
  - 1
  - 2
  - 5
  - 10
  - 20
  - 50
  - 75
  - 100
  - 200
  - 300
  - 400
  - 500
  - 600
  - 700
  - 800
  - 900
  - 1000
  resolution_buckets:
  - 10000
  - 20000
  - 40000
  - 80000
  - 100000
  - 200000
  - 400000
  - 800000
  - 1e+06
  - 2e+06
  - 3e+06
  - 4e+06
  - 5e+06
  - 6e+06
  - 8e+06
  - 1e+07
  - 12000000.0
  - 15000000.0
  - 18000000.0
  - 2e+07
  - 3e+07
  - 5e+07
  - 1e+08
  timing_buckets:
  - 0.001
  - 0.005
  - 0.01
  - 0.02
  - 0.03
  - 0.05
  - 0.1
  - 0.2
  - 0.3
  - 0.5
  - 0.75
  - 0.9
  - 1
  - 1.1
  - 1.3
  - 1.5
  - 1.7
  - 2
  - 3
  - 5
  - 10
  - 20
  - 30
  - 50
ticker_interval: 5000
When configuring findface-extraction-api (CPU- or GPU-based), refer to the following parameters:
| Parameter | Description | 
|---|---|
nnd -> quality_estimator | 
Enables face quality estimation. In this case, findface-extraction-api returns a face quality score
in the detection_score field. Interpret the quality score further in analytics. Upright faces in
frontal position are considered the best quality. They result in values around 0, mostly negative
(such as -0.00067401276, for example). Inverted faces and large face angles are estimated with negative
values some -5 and less. | 
nnd -> min_face_size | 
The minimum size of a face (bbox) guaranteed to be detected. The larger the value, the less resources required for face detection. | 
nnd -> max_face_size | 
The minimum size of a face (bbox) guaranteed to be detected. | 
models -> model_instances | 
The number of neural network instances (and, consequently, the number of simultaneously processed
requests) that are loaded into RAM by findface-extraction-api. Specify the number of instances from
you license. The default value (0) means that this number is equal to the number of CPU cores.
This parameter severely affects RAM consumption. | 
license_ntls_server | 
The ntls license server IP address and port. | 
fetch -> enabled | 
Enables fetching images from the Internet. | 
fetch -> size_limit | 
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/elderberry_576.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 | face: face/elderberry_576.cpu.fnk | 
| GPU | face: face/elderberry_576.gpu.fnk | 
|
| age | CPU | age: faceattr/age.v1.cpu.fnk | 
| GPU | age: faceattr/age.v1.gpu.fnk | 
|
| gender | CPU | gender: faceattr/gender.v2.cpu.fnk | 
| GPU | gender: faceattr/gender.v2.gpu.fnk | 
|
| emotions | CPU | emotions: faceattr/emotions.v1.cpu.fnk | 
| GPU | emotions: faceattr/emotions.v1.gpu.fnk | 
|
| glasses3 | CPU | glasses3: faceattr/glasses3.v0.cpu.fnk | 
| GPU | glasses3: faceattr/glasses3.v0.gpu.fnk | 
|
| beard | CPU | beard: faceattr/beard.v0.cpu.fnk | 
| GPU | beard: faceattr/beard.v0.gpu.fnk | 
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: ""