Skip to content

Face SDK 5.1 — March 3, 2023

IMPORTANT Changes

  • In this release, we introduce the new Liveness assessment version. It seeks to find a balance between a simple UX and high reliability. The previous version of the liveness check is no longer supported. Please try our new liveness on the demo site.
  • The Liveness assessment implementation has undergone major changes. To use the feature, you need to install and configure two additional components: PostgreSQL and S3-compatible storage. Learn more
  • Redesigned the Face Identification functionality and introduced a new Web API. Now, it supports infinite horizontal scaling. No matter how intensive the stream of incoming requests or how many records are in a database, you can fulfill high performance and a response within fraction of a second.
  • Introduced the Face Image Quality Assessment feature which validates whether the applicant's photo meets certain conditions, for example ICAO requirements, Schengen or US visa application demand.
  • Updated Milvus vector database to 2.2.2. Data created with previous Face SDK releases are no longer compatible with this version. Image descriptors have to be re-calculated. To upgrade a database, install a new instance of Milvus and re-upload all person's images again.

Core Functionality

Liveness

The key features:

  • Redesigned UI and user experience.
  • Added an animated guide before the start and visual prompts during the process that explain the procedure and make it familiar to a user. You can disable the guide to start the procedure instantaneously.
  • Added the possibility to assign a custom ID to a session before starting it.
  • Implemented a zero-trust concept so that liveness check results are calculated and stored for obtaining on the backend. A video of the process can also be stored at a backend for audit trail purposes. More info
  • Added Web API methods to download the liveness transaction data. Please find the OpenAPI specification here.
  • Improved the performance. Receive liveness check results within a second when using GPU.
  • Redesigned the UX of the selfie capture in Web Components and Mobile SDK. Please find a demo on our web site and in the mobile apps for Android and iOS.

Android and iOS mobile SDKs were updated correspondingly, here is the exhaustive documentation.

The updated Web Components with new liveness are available on the demo site. Here is the npm package.

Face Identification

In this version, we redesigned the Face Identification (aka Face Search) functionality. Now, it supports infinite horizontal scaling. No matter how intensive the stream of incoming requests or how many records are in a database, you can assure high performance and a rapid response.

The new features:

  • Support of additional attributes to bind a photo with the person's name or other information.
  • Setting a threshold by the distance between face descriptors in a database and the one being searched by. This allows more precise identification.
  • Organizing photos in groups to make the search more targeted.

Learn more about Face Identification

The version of Milvus vector database we use under the hood is updated to 2.2.2. Improved the performance and added the capability to backup a database. Please find the complete release notes here: https://github.com/milvus-io/milvus/releases/tag/v2.2.0

Face Detection

Face image quality assessment

This is the first release of the face image quality assessment feature. The functionality validates whether the applicant's photo meets certain conditions.

The demo site is available here: https://faceapi.regulaforensics.com/.

  • 45 parameters to check the image quality, head size and position, pose and expression, head occlusion, and inappropriate objects.
  • Predefined scenarios to check compliance with the ICAO standard, Schengen and US Visa requirements.
  • Customization of the list of controlled parameters and allowed value ranges for each parameter.

Now, you can crop a face image from an original photo, align the face vertically on this image, resize and change the background. You can simply download the resulting image or pass it for further processing. Please find more details in the Face Image Quality Assessment help article.

Face attributes evaluation

With the help of the face attributes evaluation, you can find out the estimated age range of a person; whether the eyes are occluded, closed, or open; the neutral or emotional facial expression; the presence of a smile, glasses, sunglasses, head coverage, medical mask, headphones, etc. Please find more details in the Attributes Evaluation help article.

  • The number of required attributes to be evaluated can be specified in the request.
  • The age range of a person is predicted by the new neural network. The previous one returned simply a binary value "adult" or "child".
  • Improved the quality of the neural networks for face occlusion detection.
  • Optimized the loading speed of the service.
  • Updated onnxruntime from 1.7.2 to 1.13.1. and observed better performance of the service in some scenarios.

Mobile API

iOS

  • Added RFSLivenessProcessingContentView and RFSLivenessRetryContentView for user interface customization purposes.
  • Added configuration properties to LivenessConfiguration and FaceCaptureConfiguration: torchButtonEnabled and closeButtonEnabled.
  • Renamed the LivenessConfiguration and FaceCaptureConfiguration properties from cameraSwitchEnabled to cameraSwitchButtonEnabled.
  • Fixed multithreading issues with the video recorder. Rare app crashes when closing liveness are fixed now.
  • Fixed crashes in the RFSCopyCVPixelBuffer method. In some cases, row by rows copying was used.

Android

  • Added the registerProcessingFragment method in LivenessConfiguration to set a custom processing fragment.
  • Added the setCloseButtonEnabled and setTorchButtonEnabled methods to Configuration.

Hybrid

Web Service API

  • Added the X-RequestID request header to label all requests related to the same context. This value will be included into the log file for all labeled requests. Learn more
  • Added the possibility to match a document ghost image with other images in a single request. Please see OpenAPI help for more details.
  • Added the possibility to process two actions in a single request: comparison of faces and identification (search) in the database. It increases performance and reduces resource consumption as there is no need to calculate image descriptors twice. Learn more.
  • The SQLAlchemy dependency was upgraded as the previous version contained security breaches.
  • Added the possibility to configure the default processing parameters of a service when it starts, see Configuration.
  • Fixed the issue where MethodNotAllowed was returned when Content-Type: application/json was missing in the request.

Demo site

  • Added the Face image quality tab to demonstrate the capabilities whether the applicant's photo meets the predefined ICAO standards, Schengen, or US Visa requirements.
  • Added the Face attribute capabilities display on the Face detection tab of the demo site. This evaluates whether the person in a photo is wearing a medical mask, glasses, head coverage, etc.
  • Updated dependencies for the python demo client to fix security breaches.
  • Updated the Open API specification on GitHub: https://github.com/regulaforensics/FaceSDK-web-openapi.
  • Updated clients and packages.

Web components

The demo version is always available here: https://storybook-face.regulaforensics.com/

The npm package: https://www.npmjs.com/package/@regulaforensics/vp-frontend-face-components

The main features:

  • Validating face size, head position and other faces presence around to capture high-quality photos. Showing prompts to a user to correct detected issues on the fly.
  • Works in any modern browser, both desktop and mobile.
  • Flipping camera functionality in case of using on mobile devices.
  • Customization of Font and Theme color.
  • Localization support for 32 languages.

Face SDK web components documentation

Installation packages

  • The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
  • Docker Helm chart for Kubernetes deployment provided. Learn more

Changed

[all] Environment variables. Changes in behavior:

  • FACEAPI_HTTPS - if enabled, serves web service via HTTPS using default cert and key file paths (Defaults certs/tls.crt; certs/tls.key).
  • FACEAPI_CERT_FILE / FACEAPI_KEY_FILE - won't work if FACEAPI_HTTPS is set to false.
  • FACEAPI_CERT_FILE / FACEAPI_KEY_FILE - defaults were changed to certs/tls.crt; certs/tls.key respectively.
  • FACEAPI_LOGS_ACCESS_CONSOLE - default changed to true.
  • FACEAPI_SQL_URL - defaults were changed to postgresql://regula:Regulapasswd#1@127.0.0.1:5432/regula_db. FACEAPI_SQL_URL is the recommended way to use the 1:N (Identification/Search) module.
  • The service will no longer return system info if REGULA_RETURN_SYSTEMINFO is set.

[containers]

  • Environment variables FACEAPI_BIND, FACEAPI_WORKERS, FACEAPI_LOGS_APP_CONSOLE were removed from the container image, i.e. reverted back to defaults.
  • Environment variables FACEAPI_BACKLOG="20", FACEAPI_TIMEOUT="120", FACEAPI_LOGS_ACCESS_CONSOLE="true" were removed from the container image, i.e. reverted back to defaults.
  • Migrate to ubi9-minimal base image.
  • entrypoint.sh - DB migration mechanism updated.
  • GPU. CUDA and CUDNN were updated to support onnxruntime 1.13.1. See details

Added

  • Environment variables for configuring the 1:N Identification module, see Identification Settings.
  • The PIPENV_DONT_LOAD_ENV=1 environment variable has been added.
  • The environment variable FACEAPI_LIVENESS_GEN_2 to enable the Liveness module.
  • Docker Compose files to support new functionalities. Learn more

Fixed

  • [containers] entrypoint.sh - added section to read .env file before app start, to fix specific cases with FACEAPI_ENABLE_IDENTIFICATION env variable.