Releases: 3DiVi/face-sdk
v3.30.0
3.30.0 (2 Apr 2026)
What's New
- Added a new licensing mode: local license server. Face SDK users can now more easily deploy their solutions, including those using Docker images or other environments without persistent hardware_id or internet access.
- New, more accurate version of the
2d_livenessmodification for LIVENESS_ESTIMATOR. - Added a third version of the DEEPFAKE_ESTIMATOR model.
Bug Fixes and Improvements
- Fixed issues that occurred when using DynamicTemplateIndex on iOS.
v3.29.0
3.29.0 (16 Dec 2025)
What's New
- Added CUDA 12 support for Linux.
- The
QUALITY_CONTROLblock (estimationmodification) now supports inference on Rockchip NPU. - Expanded parallelization and acceleration capabilities for 1:N search within the Processing Block API.
- New versions of
2d_ensembleand2d_ensemble_lightmodifications added with higher accuracy. Liveness Detection is now configured for BPCER=0.01 instead of 0.05. - Released second version of the
DEEPFAKE_ESTIMATORmodule, which makes ~2 times fewer errors when detecting attacks. - Added a new
ssyxmodification of the face detector block. - Added a new utility Processing Block for obtaining normalized face crops
(face cut). - Added a demo mobile app project in Java showcasing the use of the Processing Block API.
- Added a demo project for face recognition in Kotlin.
Bug Fixes and Improvements
- Fixed an issue where the
ProcessingBlock.getUUID()method did not work in the Java and Kotlin APIs. - Fixed a bug that in some cases caused
MASK_ESTIMATORto fail. - Improved
face_overflowandyawchecks in thecoremodification of theQUALITY_CONTROLblock. - Several improvements to the C# API:
- Added a
dispose()method for Context and ProcessingBlock classes. - C# API on Linux now supports
libfacerec.so(previously required creating a symbolic linkfacerec.dll -> libfacerec.so). - Added overloads for
FacerecService.createContextFromFrame(...)andFacerecService.createContextFromEncodedImage(...).
- Added a
v3.28.1
3.28.1 (17 Nov 2025)
Bug Fixes and Improvements
- Fixed bugs that occurred when using
DynamicTemplateIndex. - Optimized
DynamicTemplateIndexmemory consumption; now the face database consumes 15-30% less RAM, depending on the platform. - The Flutter plugin now supports Flutter v3.35.
- Simplified the building and running of Face SDK Flutter demos.
- Fixed an issue with searching for the libfacerec.so file when using online licensing within Flutter projects.
- Fixed an issue with running the
FACE_TEMPLATE_EXTRACTORmodule on Rockchip NPU. - Fixed unstable Face SDK communication with the license server in case of a non-default network protocol.
- Fixed the behavior of the Processing Block destructor in the C# API, which could previously cause crashes if the block was not created correctly.
- Creating Context from a dictionary within the Python API now supports fields with
Nonevalue. - Improved the ability to disable checks in the
QUALITY_ASSESSMENT_ESTIMATOR. Now, with the check disabled, no corresponding module is created inside the block.
v3.28.0
3.28.0 (29 Sep 2025)
What's New
-
A new Quality Control Processing Block with
coremodification has been implemented. Image quality assessment is becoming an almost mandatory part of any facial recognition pipeline, especially when it comes to large face databases. Face SDK has provided this functionality since release 3.16.0, and it has been improved and developed in many ways. Thecoremodification was developed based on the experience of numerous practical implementations in order to provide the simplest and most understandable quality assessment process. -
The DynamicTemplateIndex module now has the ability to save and load the entire database of templates. Now Face SDK users need to think a little less about how to organize persistent storage of their face database.
-
A new version 5 of the
2d_ensemblemodification for theLIVENESS_ESTIMATORprocessing block has been added, which is ~14% more accurate in detecting attacks when using the default threshold. In addition, this version provides more accuracy than all of our previous Liveness Estimation modules when lowering the target BPCER from 5% to 1%.
Bug Fixes and Improvements
- The database search procedure (1:N comparison) within the Processing Block API has been improved. Now, searches using the
DynamicTemplateIndexandMATCHER_MODULEmodules are ~3 times faster. In addition, the search procedure now supports the AVX 512 instruction set, providing an additional speed boost on compatible CPUs. - Due to some confusion among users regarding the naming of the
QUALITY_ASSESSMENT_ESTIMATORblock and its modifications, as well as the release of thecoremodification, which largely revises our approach to quality control, the modificationestimationof unit_typeQUALITY_ASSESSMENT_ESTIMATORhas been moved toestimationmodification ofQUALITY_CONTROLunit_type. Thus, please be careful if you have used this modification before. When upgrading to 3.28+, you will need to modify the code by replacing the block's unit_type.
v3.27.1
3.27.1 (05 Sep 2025)
Bug Fixes and Improvements
-
Improved accuracy of face quality assessment in the
QUALITY_ASSESSMENT_ESTIMATORProcessing Block (estimation modification). Note: review your quality threshold after updating. -
Fixed invalid operation of the
erasemethod in the Context class (Python API). -
Refined Python Processing Block API.
v3.27.0
3.27.0 (July 30, 2025)
What's New
-
Introduced a new processing block
DEEPFAKE_ESTIMATORfor detecting AI-generated faces in images. Deepfake technology is rapidly gaining popularity and poses a serious threat to facial biometric systems by enabling effective identity spoofing attacks. The newDEEPFAKE_ESTIMATORblock in Face SDK is our response to modern cybersecurity challenges. -
Added support for the TensorRT inference framework. Now all Processing Block API modules that can run on Nvidia GPUs support inference via TensorRT. Using TensorRT for your Face Recognition pipelines means achieving maximum possible performance on your GPU!
-
Added support for OpenVINO. Most Face SDK Processing Blocks now support using the OpenVINO framework for inference. If you run on Intel processors with modern instruction support, you can boost your face recognition pipeline speed by up to 50%.
-
Added a new Python API for Processing Blocks with support for running without the Global Interpreter Lock (
-no-gil). This allows Python users to efficiently parallelize their face recognition pipelines! -
Dropped support for CUDA 10.2, which was released nearly six years ago — time to move forward. CUDA 11.x and 12.x are supported.
-
Released a new version of the
LIVENESS_ESTIMATORprocessing block (2d_ensemble variant), which improves spoof attack detection accuracy by 30% compared to the previous version.
v3.26.0
3.26.0 (05 Jun 2025)
What's New
- Added new versions for the 2d and 2d_ensemble modifications of the LIVENESS_ESTIMATOR processing block.
- Introduced Go API.
- Added NodeJS API support for Linux platform.
Bug Fixes and Improvements
- Fixed an issue that caused the QUALITY_ASSESSMENT_ESTIMATOR processing block to enter an invalid state.
- Resolved a bug occurring during frequent add/remove operations in DynamicTemplateIndex.
- Fixed an issue in the C# API where Context was incorrectly converted from a Dictionary.
v3.25.2
Bug Fixes and Improvements
- Fixed an issue with 1:N search using DynamicTemplateIndex.
- Fixed an issue adding templates of other versions to DynamicTemplateIndex.
- Fixed an issue with image rotation for JPG files.
- Fixed an issue retrieving hardware_id in get_license.
- Corrected error messages.
- Fixed a memory leak in Python when working with Context.
- Fixed Python template_index demo.
v3.25.1
v3.25.0
What's New
-
Faster extraction of biometric templates and reduced model weights. A lightweight version is now available for each of the up-to-date recognition methods. While minimizing accuracy degradation, lightweight models provide increase in inference speed ( ~40-50% for mobile CPU and ~20-25% for desktop CPU) an ~60% reduction in model weights used in template extraction.
-
Improved accuracy of Liveness Detection methods. We continue to improve the accuracy of our Liveness Detection algorithms. In this release you'll see a 40% increase in attack detection accuracy (decrease APCER@BPCER=0.05 on all attack types).
-
Redesigned TemplateIndex - functional and user-friendly. We redesigned the module responsible for storing the template database and 1:N search. Now you can:
- Dynamically (without recreating TemplateIndex) add and remove templates from the database.
- Name each template with an arbitrary alphanumeric ID (previously you had to store this information separately).
- In case of highly loaded applications, an asynchronous version of the new TemplateIndex can be used, which will allow simultaneous addition/removal of elements and 1:N searches.
-
Testing methods for evaluating SDK quality. This is a detailed guide, including the main tasks addressed by Face SDK, the quality metrics used and a set of scripts for testing. With this guide you'll be able to quickly test the core technologies of Face SDK for your specific use case and see how well it meets your needs.
-
Support for accelerated inference on Rockchip NPU. Support for NPU inference from the Rockchip manufacturer has been added for the Face detection and Face Template Extractor modules. Using the new inference will significantly speed up calculations even on the company's low performance devices.
Bug Fixes and Improvements
-
Filtering detection results by bbox size. Ability to filter detection bboxes by width and height. Ideal for filtering out small faces in the background.
-
Combining multiple detectors into a cascade to improve accuracy in complex cases. When you need to detect faces in the same entrypoint on different domain data, such as selfies, ACS camera photos and ID card photos, it can be difficult to ensure high recognition quality. Combine different face detectors into a cascade so you don't miss a single face!
-
C# Face SDK API update with support for .NET 8. Due to the expiration of the LTS for .NET 6, we have migrated our C# Face SDK API to .NET 8.
-
Fixed a bug in the SetBytes method of the Context class in Java and the Kotlin API that led to segfault on 32-bit devices.