Configuration
The values of all Image API configuration parameters listed in this section are configured in the configuration file ./cfg/image-api.values.yaml.
After editing the file, save it and update Image API in the cluster using the command:
./cli.sh image-api install
Basic Settings
Field Name | Functions |
image_pull_policy | The parameter affects pulling (downloading) container images from registry to deploy an Image API deployment instance. The following field values are available:
|
processing.services[*].configs[*].use_avx2 | Using the AVX2 instructions allows to speed up the recognizers. |
processing.services[*].configs[*].use_cuda | The field value indicates the graphics card usage by the service. This option is available for face-detector-template-extractor. |
processing.services.[*].replicas | Value of service replicas. |
processing.services[*].configs[*].downscale_ rawsamples_to_preferred_size | When field is enabled, each sample is downscaled to the suitable size to reduce memory consumption. However, the system performance decreases. It is recommended to leave this field disabled. |
processing.enable_ingress | This parameter enables proxying to image-api services via ingress. |
processing.enable_resource_management | This parameter enables the use of pod resource management in the cluster. |
processing.enable_hpa | This parameter enables Horizontal Pod Autoscaler for deployments. Needs metric-server to be installed. |
processing.enable_node_selector | This parameter activates the use of designated nodeSelectors in pods. The labels must be assigned to cluster nodes using the command:
|
Face Detection and Facial Recognition Settings
Image API services use a set of configuration objects that implement the functionality of Face SDK - a set of code libraries for development of facial recognition solutions:
- capturer: face detection
- recognizer: face matching
You can configure the configuration object in the ./cfg/image-api.values.yaml file in the specific service block in the configs attribute.
The configuration object has 2 fields defined:
- name: name of Face SDK configuration file.
- params: parameters to be overridden in this configuration.
Detection Settings
- processing.services[*].configs[*].capturer.name
The field value indicates the name of the configuration file of the selected face detector. When installing Image API, the default is common_capturer_uld_fda.xml (ULD detector configuration file used to detect faces of different sizes, including masked faces).
This configuration file can be replaced with another one, specially configured for one of the use cases: Safe City, Remote Identification, ACS (Cooperative / Non-Cooperative recognition).
For more information about detectors and configuration files, see 3DiVi Face SDK documentation.
The same detector configuration file must be specified for all services that use the capturer object.
Facial Recognition Settings
- processing.services[*].configs[*].recognizer.name
The field value specifies the name of the recognizer configuration file. Each recognizer uses a specific recognition method. In total, Face SDK provides several recognition methods that differ in characteristics of recognition accuracy and operating time.
For Image API, you can specify the following recognizer configuration files:
- method11v1000_recognizer.xml
- method12v30_recognizer.xml
- method12v50_recognizer.xml
- method12v100_recognizer.xml
- method12v1000_recognizer.xml
For more information about recognizers, facial recognition methods and recognizer configuration files, see 3DiVi Face SDK documentation.
The same recognizer configuration file must be specified for all services that use the recognizer object.
Module Selection
Module is an implementation variant of Image API service. For example, face-detector-liveness-estimator has three modules available for selection:
- liveness-anti-spoofing
- quality-liveness-anti-spoofing
- face-detector-liveness-estimator
Modules liveness-anti-spoofing and face-detector-liveness-estimator use different liveness algorithms. In quality-liveness-anti-spoofing module, before calculating the liveliness, the image quality is additionally estimated, while the quality threshold (default value is 30) allows excluding images with insufficient quality from processing.
To change the module, find a certain service config in processing.services
in ./cfg/image-api.values.yaml and change the value for module
field.
Example: config of quality-assessment-estimator:
quality-assessment-estimator:
…………
module: quality-assessment-estimator
…………
List of available modules for each Image API service:
Service | Modules |
face-detector-face-fitter |
|
body-detector |
|
age-estimator |
|
emotion-estimator |
|
gender-estimator |
|
mask-estimator |
|
face-detector-liveness-estimator |
|
verify-matcher |
|
face-detector-template-extractor |
|
quality-assessment-estimator |
|
template-extractor |
|
liveness-estimator |
|
Scalability
When the load increases, for stable operation of Image API you can manually scale the deployments described in para. Install Image API to the Cluster.
To scale the installed release, run the command below:
$ kubectl scale deployment <deployment_name> --replicas <count>
where <deployment_name>
is a deployment name (for example, face-detector-face-fitter-dep), and <count>
is a number of deployment replicas (pods).
To save the scaling state, set the value for replicas key in processing.services in ./cfg/image-api.values.yaml file and restart the deployment using a command below:
$ ./cli.sh image-api install