Skip to main content

What's New

Version history for the SFE Toolkit. The most recent release is at the top.

Changelog

All notable changes to this project are documented in this file.

[4.2.1] - 2026-03-16

Fixed

  • Documentation missing in the package [BSDK-545]
  • Fix minor documentation inconsistencies

[4.2.0] - 2026-03-09

Fixed

  • Fixed incorrect Face extraction preprocessing that affected accuracy. [BSDK-486]

Breaking Changes

  • Face templates extracted using prior v4.x toolkit must be re-extracted.

[4.1.0] - 2026-02-18

Added

  • Optional Palm landmarks on detection: palm detections can now carry attached landmarks, so you can skip calling palm landmark extraction when the detector already provides them.
  • C API: SFEPalmLandmarks and SFEPalmDetectionData with has_landmarks and landmarks.
  • UniFFI: PalmLandmarks dictionary and Modality::Palm with optional landmarks.

Fixed

  • Palm landmark extraction reuses landmarks already on the detection when present. Fixes [BSDK-484].

[4.0.4] - 2026-02-12

Added

  • Face template export/import support [BSDK-463]
  • C API: sfeFaceTemplateExport(), sfeFaceTemplateImport()
  • UniFFI: template_export, template_import

[4.0.3] - 2026-02-09

Fixed

  • Fixed incorrect score normalization in Face match/identification [BSDK-479]

[4.0.2] - 2026-02-04

Fixed

  • Updated Android NDK to r28c to fix 16k page size issues [BSDK-459]
  • Updated SFEImageFormat definition to match implementation
  • More predictable identification performance on various platforms

[4.0.1] - 2026-01-30

Added

  • Support for TFLite and TensorFlow models

Changed

  • Fixed missing mutli-detection models in all packages
  • Fixed missing models in Ambarella packages

[4.0.0] - 2026-01-29

Breaking Changes

Unified Detection API

All modality-specific detection types and functions have been replaced with a unified detection system:

  • New SFEDetection struct replaces all modality-specific detection types (SFEFaceDetect, SFEIrisDetect, SFEPalmDetect, SFEObjectDetect, SFETattooDetection, SFEPersonDetectOriented)
  • New sfeDetect() function replaces modality-specific detection functions (sfeFaceDetect, sfeIrisDetect, sfePalmDetect, sfeObjectDetect, sfeTattooDetect)
  • Detection modality is indicated by SFEModality enum field in SFEDetection
  • Field names standardized: bboxbounding_box, bbox_confidenceconfidence
Unified Tracker API

All modality-specific tracker functions have been replaced with unified tracker functions:

  • sfeDetectionTrackerCreate(), sfeDetectionTrackerUpdate(), sfeDetectionTrackerFree(), sfeDetectionTrackerLost(), sfeDetectionTrackerRemoved()
  • Tracker creation now requires 5 parameters with new new_track_thresh parameter for minimum confidence to initialize a new track
  • max_time_lost parameter type changed from size_t to uint64_t
Core API Changes
  • Type renames:
    • SFELicenseSourceSFELicenseType
    • SFE_LICENSE_SOURCE_*SFE_LICENSE_TYPE_*
    • SFEBboxSFEBoundingBox
    • SFEOrientedBboxSFEOrientedBoundingBox
  • Function renames:
    • sfeImageLoad()sfeImageDecode()
    • sfeImageSave()sfeImageEncode()
    • sfeSolverCreateWithParameters()sfeSolverCreate()
  • Signature changes:
    • sfeImageInfo(): Now returns SFEImageInfo struct instead of separate output pointers
    • sfeImageColorTranspose(): Now returns new image via out_image parameter instead of in-place modification
    • sfeLicenseValidate(): No longer returns license source; use new sfeLicenseType() function instead
Face API Changes
  • SFEFaceDetectAccuracyTypeSFEFaceDetectionAccuracyType
  • sfeFaceLandmarks(): Now accepts const SFEDetection * instead of SFEBbox
  • sfeFaceTemplateExtract(): Now requires const SFEDetection * parameter
  • sfeFaceLivenessPassive(): Now returns SFEFaceLiveness struct instead of float
  • sfeFaceDetectInputSize(): Now returns SFEDetectionInputSize struct
  • sfeFaceCrop(): face_size_extension parameter changed from uint32_t to float
Palm API Changes
  • New SFEPalmLandmarks struct and sfePalmLandmarks() function for palm landmark extraction
  • sfePalmTemplateExtract(): Now accepts const SFEPalmLandmarks * instead of detection
  • sfePalmAttributes(): Now accepts const SFEPalmLandmarks * instead of detection
  • sfePalmLivenessPassive(): Now accepts const SFEDetection *
Person API Changes
  • sfePersonAttributes(), sfePersonPose(), sfePersonTemplateExtract(): Now accept const SFEDetection * instead of SFEBbox
Iris API Changes
  • sfeIrisTemplateExtract(): Now accepts const SFEDetection *
Tattoo API Changes
  • sfeTattooTemplateExtract(): Now accepts const SFEDetection *
  • sfeTattooTemplateVersion(): Now returns SFETattooTemplateVersion struct
Other Breaking Changes
  • SFEEntityIdentificationCandidate struct now includes index field

Added

  • Unified detection API with sfeDetect() supporting all modalities
  • New multi_detect_bb detection solver for Face, Person, Palm and QR detection
  • Unified tracker API with sfeDetectionTracker*() functions
  • SFEDetection struct with SFEModality discriminator for type-safe detection results
  • SFEImageInfo struct for image metadata
  • SFEDetectionInputSize struct for detection input size calculation
  • SFEPalmLandmarks struct and sfePalmLandmarks() function
  • SFEFaceLiveness struct for liveness results
  • sfeLicenseType() function to query current license type

Changed

  • Improved error messages with more detailed explanations
  • Solvers are now validated for compatibility on load
  • New face extraction models: balanced, fast, accurate (replacing legacy models)
  • Updated person_detect_fisheye solver

Removed

  • Modality-specific detection structs: SFEFaceDetect, SFEIrisDetect, SFEPalmDetect, SFEObjectDetect, SFETattooDetection, SFEPersonDetectOriented
  • Modality-specific detection functions: sfeFaceDetect(), sfeIrisDetect(), sfePalmDetect(), sfeObjectDetect(), sfeTattooDetect()
  • Modality-specific tracker functions: sfeFaceTracker*(), sfeIrisTracker*(), sfePalmTracker*(), sfeObjectTracker*()
  • Deprecated type aliases: SFEFaceEntity, SFEIrisEntity, SFEPalmEntity, SFEPersonEntity, SFEObjectEntity, SFETattooEntity (use SFEEntity)
  • Deprecated type aliases: SFEIdentificationResult, SFE*TemplateIdentificationCandidate (use SFETemplateIdentificationCandidate)
  • Deprecated type aliases: SFE*EntityIdentificationCandidate (use SFEEntityIdentificationCandidate)
  • SFEPalmQualityAttributes and sfePalmQualityAttributes() (use SFEPalmAttributes and sfePalmAttributes())
  • Legacy face extraction models

[3.4.0] - 2026-01-19

Added

  • Added support for fast evaluation of demographic attributes (BSDK-412)

[3.3.1] - 2026-01-13

Added

  • Added sfeLicenseType function to get the license type (BSD-302)

Changed

  • Python module now searches for native libraries also in system directories and LD_LIBRARY_PATH (BSDK-303)

Fixed

  • Fixed an issue where Python examples from the Conan package could not be run without a prior pip installation (BSDK-303)
  • Tattoo detection bounding box is clamped to the 0,1 range (BSDK-385)
  • Empty tattoo detection bounding box is not propagated (BSDK-385)

[3.3.0] - 2025-12-10

Added

  • Added demographic attributes (BSDK-229, BSDK-384)

Fixed

  • Missing tattoo solvers are added into conan package (BSDK-383)

[3.2.4] - 2025-12-03

Changed

  • Implementation of tattoo extraction uses real solver (BSDK-282)

[3.2.3] - 2025-11-28

Changed

  • Implementation of tattoo detection uses real solver (BSDK-284)

[3.2.2] - 2025-11-05

Fixed

  • Minor documentation fixes.

[3.2.1] - 2025-10-29

Changed

  • All android libraries now use 16 kB page sizes, as mandated by Google for architectures x86_64 and arm64-v8a (BSDK-279)

[3.2.0] - 2025-10-14

Breaking Change

  • Fixed Palm template extraction for palm.extraction.resnet50; template now reports version v1.1.0 and invalidates older templates. [BSDK-291]

[3.1.5] - 2025-10-10

Added

  • Added new face_detect_fast model [BSDK-26]

[3.1.4] - 2025-10-06

Added

  • Publishing aarch64-unknown-linux-gnu and aarch64-apple-darwin Conan packages to Artifactory [BSDK-238]

Changed

  • Updated palm extraction model palm.extraction.resnet50 [BSDK-269]
    • Improved performance on Intel CPUs
    • Updated onnxruntime_solver to version 0.10.25

Fixed

  • Revised outdated documentation and fixed run issues in code examples. [BSDK-251]

[3.1.3] - 2025-09-29

Fixed

  • Added missing tattoo extraction methods into UniFFI API [BSDK-245]

[3.1.2] - 2024-09-25

Changed

  • Updated face_liveness_passive_nearby_fast.tflite.solver with better accuracy on NXP NPUs [BSDK-234]
  • tflite_solver updated to v0.10.11 [BSDK-234]

[3.1.1] - 2025-09-18

Added

  • Added package for aarch64-unknown-linux-gnu [BSDK-238]
  • Added package for aarch64-apple-darwin [BSDK-237]
  • Added tattoo module to Kotlin

Changed

  • Improved accuracy of face_liveness_passive_nearby_fast preprocessing [BSDK-268]
  • Updated palm extraction model to palm.extraction.resnet50 (by upgrade onnxruntime_solver to version 0.10.24) [BSDK-262]

Fixed

  • Missing sfeImageFree in example_face_identify.cpp

[3.1.0] - 2025-09-12

Added

  • Added detection API for new tattoo modality [BSDK-244]
  • Added extraction API for new tattoo modality [BSDK-245]

Changed

  • Updated face_liveness_passive_nearby_fast [BSDK-233]
  • Updated Person fisheye detection model
  • Updated ilicense to v3.4.3 [BSDK-259]
  • Updated onnxruntime_solver to version 0.10.22 [BSDK-245]

[3.0.2] - 2025-08-21

Breaking Change

  • Removed deprecated palm::metrix functionality

Added

  • New core::OrientedBondingBox type for oriented detectors (BSDK-213)
  • Added person::detect_oriented (BSDK-213)

[3.0.1] - 2025-08-18

Added

  • Added palm_liveness_fast model for Rockchip RKNN2 (BSDK-121)

Changed

  • Updated Rockchip RKNN2 solver version to 0.10.7 (BSDK-121)

Fixed

  • YoloX square padding preventing unnecesary upscales and errors with fixed shape solvers

[3.0.0] - 2025-08-12

Breaking Change

  • The AttributesResult.quality is now in range <0,1> instead of <0-100>.

Changed

  • Updated palm attributes model (BSDK-204)
  • Updated palm liveness accurate model (BSDK-197)
  • Updated palm liveness fast model (BSDK-198)
  • Updated onnxruntime_solver to version 0.10.18
  • Updated ILicense to version 3.4.2

[2.0.2] - 2025-07-18

Changed

  • Updated Rockchip RKNN2 solver version to 0.10.6 (BFO-51)
    • Updated rknn_api_v2 to version 2.3.2
    • Fixed palm_template_extract_accurate model output name
    • palm_template_extract_accurate and palm_detect_accurate model converted with latest rknn_toolkit_2.3.2 to be compatible with rknn librknnrt 2.3.2

[2.0.1] - 2025-07-08

Changed

  • The palm accurate detector performance for rockchip RKNNv2 is improved

[2.0.0] - 2025-07-04

Breaking Change

  • To ensure consistent terminology across SDKs
    • in C
      • Renamed enum SFEHandSide to SFEHandPosition
      • Renamed hand_side in SFEPalmDetect to hand_position
    • other languages
      • Renamed enum HandSide to HandPosition
      • Renamed hand_side in palm Detection to hand_position

Deprecated

  • sfePalmQualityAttributes is deprecated and will be removed soon. Please use sfePalmAttributes instead.

Fixed

  • Added missing palm solvers in Rockchip RKNN2 packages

Added

  • Added new function sfePalmAttributes that provides SFEPalmAttributes with (BSDK-123):
    • hand_orientation
    • hand_position
    • quality

[1.15.7] - 2025-06-25

Added

  • Updated Rockchip RKNN2 solver version to 0.10.4 (BFO-80):
  • Added Rockchip RKNN2 palm accurate detector support
  • Added Rockchip RKNN2 palm accurate extractor support
  • Added logging support to ONNX solvers with configurable log level and log file output
  • Added parameter log_level (empty for no log, or set to verbose, info, warning, error, fatal)
  • Added parameter log_file (empty for stdout, or specify file path)
  • Added parameter profile_prefix to dump JSON stats from inference
  • Added session_config parameter to support advanced session settings in ONNX solvers

Changed

  • Updated onnxruntime_solver to v0.10.14
  • Updated fast palm detector model and postprocessing (BSDK-146)

Fixed

  • Inference performance on Intel CPUs due to subnormal numbers (BSDK-182)
  • Fixed NNAPI FP16 flag logic in ONNX solvers by correcting inverted condition

[1.15.6] - 2025-06-18

Fixed

  • Upload conan packages into artifactory (BSDK-174)

[1.15.5] - 2025-06-17

Added

  • Upload kotlin binding into maven releases repository (BSDK-174)
  • Upload conan packages into artifactory (BSDK-174)

Fixed

  • Python binding performance regression

[1.15.4] - 2025-06-13

  • sfePalmQualityAttributes - Implementation of palm quality attributes (BSDK-157)

[1.15.3] - 2025-06-06

Added

  • sfePalmQualityAttributes - API for Palm quality attributes (BSDK-168)
  • Optional JVM bindings with Kotlin examples (BSDK-149)

Fixed

  • Missing generated Python bindings

[1.15.2] - 2025-06-04

Fixed

  • Solvers are now loaded on Android using loadLibrary (BSDK-152)

[1.15.1] - 2025-06-03

Added

  • Licensing based on Android ID has been added for devices running Android 10 and older (i.e., below Android 11) (BSDK-152)

Fixed

  • Removed unnecessary image resize before sfePalmDetect in example_palm_* and benchmark_palm applications

[1.15.0] - 2025-05-15

Added

  • New palm modality detection, extraction and liveness models:
    • palm_detect_accurate - High-accuracy palm detection model
    • palm_detect_fast - Optimized for real-time palm detection
    • palm_template_extract_accurate - High-accuracy palm template extraction
    • palm_liveness_accurate - Enhanced palm liveness verification

Changed

  • Palm template format improvements:
    • Reduced template size to 522B for improved efficiency
    • Enhanced palm detection with 8 keypoints (previously 4)
    • Added SFEHandOrientation and SFEHandSide enums for better hand position tracking
  • Updated sfePalmTemplateExtract API to require solver parameter for improved flexibility

Fixed

  • Corrected const qualifier in tracking API parameters for better type safety
  • Fixed parameter passing consistency in sfePalmLivenessPassive function [BSDK-133]

Breaking Changes

  • Removed backward compatibility with palm templates from versions 1.13.0 through 1.14.6
    • This change is required due to the implementation of a new palm template algorithm
    • Users must re-extract palm templates with version 1.15.0 or later

[1.14.6] - 2025-04-25

Added

  • rknn2 face_detect_accurate_mask solvers for w480h640, w720h960 and w960h1280 images (rknn2 0.10.3)

Changed

  • Updated face passive liveness threshold in example_face_liveness according to documentation
  • Updated Rockchip RKNN2 solver version to 0.10.3

[1.14.5] - 2025-04-11

Fixed

  • A bug in reported version string

[1.14.4] - 2025-04-10

Added

  • Added support for Palm liveness with examples and benchmark

Changed

  • Reported version string in FFI/UniFFI APIs will now match the package version

[1.14.3] - 2025-03-28

Fixed

  • Fixed C API definition of SFEFaceTracked, SFEIrisTracked, SFEObjectTracked, SFEPalmTracked
    • Removed unused "entity" field, use "uuid" field instead
    • Added "state" field and enum to indicate the tracking state
  • Updated tracking to be more readable with terminal output

[1.14.2] - 2025-03-13

Changed

  • TFLite library and solvers skipped in Kotlin packages build for Android
  • TFLite solver updated to v0.10.9 [BFO-21]
    • Added face detectors with portrait input sizes 720x1280 and 1080x1920

[1.14.1] - 2025-03-05

Added

  • Added Tracking API in C API and bindings [SE-333]
  • Added Android ID based licensing [SE-255]

Changed

  • Entity, SFETemplateIdentificationCandidate, SFEEntityIdentificationCandidate are now a Core types. Modality specific types are deprecated and will be removed in next major release. [SE-333]
  • onnxruntime_solver updated to v0.10.6 [SE-255]
  • tflite_solver updated to v0.10.7 [SE-255]

Fixed

  • License with MAC address range HWID (IM0*-IM0*) is now checked against multiple MAC addresses if available.

[1.13.5] - 2025-02-18

Changed

  • Updated Kotlin UniFFI bindings for better Java compatibility
    • API types change: ULong => Long, UInt => Int, UByte => Byte
  • Cleaned up Kotlin and Java imports
  • Android in ONNXRT configuration uses Float16 solvers to reduce package size [SE-510]
  • Android packages are built with opt-level = "s" [SE-510]

[1.13.4] - 2025-01-21

Added

  • Add support for Android armeabi-v7a
  • Add suppurt for Android arm64-v8a GPU

Changed

  • Updated onnxruntime solver to v0.10.4 (fixed qr/palm keypoints calculation [SE-507])
  • Update Liveness thresholds documentation

[1.13.3] - 2024-12-04

Added

  • Add suport for palm modality in Kotlin for Android [SE-447]

Fixed

  • Ambarella face detector post processing had wrong relative coordinates calculation
  • Fixed licensing impact on identification performance

[1.13.2] - 2024-11-28

Changed

  • TFLite solver updated to version 0.10.6 [SE-470]
    • New passive liveness NEARBY FAST model

[1.13.1] - 2024-11-19

Added

  • Added support for dynamic input shape palm detection [SE-479]
    • new palm_qrcode_detect.onnxrt.solver with dynamic input shape support
    • old solver renamed to palm_qrcode_detect_w640h480.onnxrt.solver

Changed

  • TFLite solver updated to version 0.10.5 [SE-431]
    • Improved face_detector_accurate_mask* model performance
    • Default delegate is now correctly set to vx for NXP build, gpu for Android build

Fixed

  • Jpeg encoding has wrong color order, BGR instead of RGB

Removed

[1.13.0] - 2024-11-07

Added

  • Introduced new Palm modality:
    • sfePalmDetect
    • sfePalmTemplateExtract
    • sfePalmTemplateMatch
    • sfePalmTemplateVersion
    • sfePalmTemplateIdentify
    • sfePalmEntityIdentify
  • Added assets, example and benchmark for palm modality

Changed

Fixed

Removed

[1.12.1] - 2024-11-06

Added

  • Added C++ examples for face entity identification, liveness and iris identification

Changed

  • Separated examples from benchmarks

Fixed

  • sfeHwidGet now returns required buffer length when called with null buffer pointer.

Removed

[1.12.0] - 2024-10-25

Added

  • Added new passive liveness NEARBY FAST model with significantly improved accuracy
    • ONNX Runtime solver
    • Updated documentation for new liveness solvers

Changed

  • TFLite solver updated to 0.10.4
    • New passive liveness DISTANT FAST model with significantly improved accuracy.
    • TFLite VX delegate caching is enabled by default, and there is preset cache file path specific for each model

Fixed

  • Iris matching score after normalization was wrongly mapped to [0.0, 1.0] range
  • Fixed QualityAttributes to return zero values when an error occurs instead of returning a Result type

Removed

  • Removed old passive liveness DISTANT and NEARBY model

[1.11.2] - 2024-10-04

Added

Changed

  • TFLite solver update to 0.10.2 with default delegate vx for NXP build and gpu for Android build

Fixed

  • Fixed sfeFaceSize mismatched output parameter type from size_t to float

Removed

[1.11.1] - 2024-08-05

Added

Changed

  • Ambarella solver updated to v0.10.1 with a static EazyAI based implementation
  • Ambarella vproc.bin location is now first searched for in current working directoryd Solver API version is now v0.10.x

Fixed

Removed

[1.11.0] - 2024-07-26

Added

  • Integrated new passive liveness DISTANT FAST model with significantly improved accuracy.
    • Ambarella solver SDK2.5.8 cv22 and SDK3.0.6 - cv2, cv22, cv28

Changed

  • Supported Solver API version is now v0.10.x
  • Update of solver version because of major fix in generic_solver [SE-399]
  • Improved documentation design

Fixed

Removed

[1.10.3] - 2024-06-12

Added

  • Added reference to bindings API on documentation

Changed

  • Fixed missing tensorflow_lite.so in Android AAR package

Fixed

Removed

[1.10.2] - 2024-05-28

Added

  • Added TFLite GPU solvers to Android Kotlin package
  • Added Python connector for Linux and Windows

Changed

Fixed

Removed

[1.10.1] - 2024-05-24

Added

  • Added support for new passive liveness DISTANT FAST on Rockchip RKNNv1 (rockchip solver v0.9.1)

Changed

Fixed

Removed

[1.10.0] - 2024-05-20

Added

  • Integrated new passive liveness DISTANT FAST model with significantly improved accuracy.
    • ONNX Runtime solver only
  • Integrated new face detector ACCURATE model
    • ONNX Runtime solver only
  • Add support for NN model acceleration on Android GPU via TensorFlow Lite GPU delegate

Changed

  • Supported Solver API version is now v0.9.x
  • Deprecating passive liveness DISTANT model. It will be removed in next major release.

Fixed

Removed

[1.9.1] - 2024-03-05

Added

  • sfePersonTemplateType()

Changed

Fixed

Removed

[1.9.0] - 2024-02-29

Added

  • Person template extract modality
    • Person template extraction
    • Person template matching
    • Person matching
  • Uniffi API for Swift (iOS and macOS) and Kotlin (Android)
  • Face solvers for Rockchip with RKNNv2

Changed

Fixed

Removed

[1.8.3] - 2024-02-23

Added

Changed

Fixed

  • More robust solver dll loading on Windows

Removed

[1.8.0] - 2024-01-31

Added

  • Added a new modality - Iris:
    • sfeIrisDetect
    • sfeIrisTemplateExtract
    • sfeIrisTemplateMatch
    • sfeIrisTemplateQuality
    • sfeIrisTemplateVersion
    • sfeIrisTemplateIdentify
    • sfeIrisEntityIdentify
  • Added support for Ambarella cv28 architecture

Changed

  • Deprecating SFEBBox in favor of SFEBoundingBox, field names will be changed in next major release
  • Ambarella solvers unified for cv2, cv22, cv25 and cv28 - version 0.8.6
    • same accuracy on each architecture
  • New licensing for solvers based on modalities: face, face_liveness, iris, person, object
    • old licenses won't work

Fixed

Removed

[1.7.2] - 2023-11-29

Added

Changed

Fixed

  • Fixed padding in sfeLicenseSet

Removed

[1.7.1] - 2023-11-27

Added

Changed

Fixed

  • Fix in identification API

Removed

[1.7.0] - 2023-11-17

Added

  • Added licensing API to the sfe_core library:
    • sfeHwidGet
    • sfeLicenseValidate
    • sfeLicenseSet

Changed

Fixed

  • Fixed error formatting on Windows - charset changed to Ascii, color disabled [SE-259]
  • Fixed path to user specific license file location (~/AppData/Local/Innovatrics) on Windows

Removed

[1.6.0] - 2023-11-07

Added

  • sfeFaceEntityIdentify function - Identify entities with multiple templates.

Changed

  • SFEIdentificationResult - Is now deprecated and will be removed in next major release. Use SFEFaceTemplateIdentificationCandidate instead.

Fixed

Removed

[1.5.3] - 2023-10-27

Added

Changed

Fixed

  • Sharpness calculation was fixed
  • Affine transformation for rectangular images was fixed

Removed

[1.5.2] - 2023-09-14

Added

Changed

  • Solver for Ambarella SDK v2.5.8 updated to later version (v0.8.6) with improved performance.

Fixed

Removed

[1.5.1] - 2023-09-07

Added

  • Ambarella SDK v2.5.8 is now supported:
    • Added new package containing special solvers that enable Ambarella SDK v2.5.8 support.

Changed

Fixed

Removed

[1.5.0] - 2023-08-25

Added

  • Added new function sfeFaceCrop that returns face crop with its bounding box according given landmarks and face size extension.

Changed

Fixed

Removed

[1.4.2] - 2023-08-14

Added

Changed

  • Integrated new passive liveness DISTANT model with significantly imporved accuracy
    • ONNX Runtime solver updated to v0.8.3
      • face_liveness_passive_distant.onnxrt.solver
    • Rockchip solver updated to v0.8.0
      • face_liveness_passive_distant_quant.rockchip.solver
    • Ambarella solver updated to v0.8.3
      • updated face_liveness_passive_distant_acc.ambarella.solver
      • New face_liveness_passive_distant_perf_dra3.ambarella.solver with better accuracy and comparable performance replaces face_liveness_passive_distant_perf.ambarella.solver

Fixed

Removed

[1.4.1] - 2023-07-10

Added

Changed

  • Ambarella solvers updated to v0.8.1
    • New BALANCED template extraction model with improved accuracy - face_template_extract_balanced_perf_dra3.ambarella.solver
  • Android JNI wrapper now uses android::util::Base64 class instead of java::util::Base64 class to encode license data.

Fixed

  • Fixed detection solvers in Android packages
  • Fixed alignment issue on 32bit systems in sfe_face library function sfeFaceHeadPose
  • Fixed SFESolverParameter ownership of name and value

Removed

[1.4.0] - 2023-06-23

Added

  • Added new function sfeSolverCreateWithParameters which accepts collection of solver specific parameters (SFESolverParameter) on input. Supported solver parameters are documented in Solver documentation.
  • Added support for TensorflowLite solver enabling NN acceleration on NXP iMX8M Plus chip with VX delegate support

Changed

  • Ambarella solvers updated to v0.8.0
    • improved accuracy of BALANCED template extraction - face_template_extract_balanced_perf.ambarella.solver
  • function sfeSolverCreate is deprecated and will be replaced by sfeSolverCreateWithParameters in next major release version
  • ONNX Runtime execution provider can be configured using solver parameter "runtime_provider", so on Linux x86, Windows x86 and Jetson platforms the same ONNX Runtime solver binary can be used for CPU, CUDA and TensorRT.

Fixed

Removed

  • Removed onnxrt_cuda and onnxrt_tensorrt solvers.

[1.3.4] - 2023-06-06

Added

Changed

  • Rockchip solver to v0.7.5 with faster input preprocessing (no channel swap, no CHW/HWC swap)

Fixed

Removed

[1.3.3] - 2023-06-02

Added

  • Added support for passive liveness on Rockchip
  • New documentation in HTML and PDF added to the package
  • License Manager app added to the package

Changed

  • Faster image resize
  • Performance improvements (fast image resize, parallel warp) in all solvers

Fixed

Removed

[1.3.2] - 2023-05-18

Added

  • New function sfeVersion() added into the sfe_core library

Fixed

  • Fixed swapped roll and pitch calculation

[1.3.1] - 2023-05-09

Added

  • Added support for passive liveness on Ambarella
  • Added Android Java connector with sample application

Fixed

  • Fixed missing liveness solvers in Android package

[1.3.0] - 2023-04-23

Added

  • DISTANT and NEARBY passive liveness integrated into sfe_face library
  • Face areas computation support (relative area, relative area in image)
  • Added face quality attributes (sharpness, brightness, contrast, unique_intensity_levels) to sfe_face library
  • Added support for calculating headpose angles

[1.2.4] - 2023-04-18

Added

  • Added support for Ambarella CV22 and CV25 (armv8 CPU) with CVFlow support. Ambarella SDK 3.0.6 and newer is required.

[1.2.3] - 2023-04-14

Added

  • Calculate detection input dimension based on face size
  • Added support for ILICENSE and ILICENSE_DATA environment variables

[1.2.2] - 2023-04-03

Fixed

  • Debugging symbols are now stripped

[1.2.1] - 2023-03-21

Added

  • Face size api request to sfe_face lib

[1.2.0] - 2023-03-09

Added

  • Introduced support for Android (armv7, armv8)
  • Added pose estimation to sfe_person library

Changed

  • The library sfe_person_attribute renamed to sfe_person
  • sfe_face_detect, sfe_face_landmarks and sfe_face_template libraries merged into single sfe_face library
  • The library sfe_object_detect renamed to sfe_object

[1.1.0] - 2023-02-20

Added

  • Added license check to identification
  • Added object detection for 80 object types including person, animals and vehicles
  • Added 3 ONNX Runtime solvers for object detection
    • object_detect_fast
    • object_detect_balanced
    • object_detect_accurate

Changed

  • SFEBBox parameter added into sfeGetPersonAttributes function

[1.0.3] - 2023-02-13

Added

  • Support for older NVIDIA Jetson Jetpacks:
    • Jetpack 4.4: ONNX Runtime version 1.7.2
    • Jetpack 4.6: ONNX Runtime version 1.12.2

Fixed

  • Undefined symbols in ONNX Runtime solvers related to licensing were fixed

[1.0.2] - 2023-01-30

Added

  • Added Windows x86_64, Linux x86_64 and Jetson ARM64 support
    • ONNX Runtime solvers (CPU, CUDA and TensorRT)
  • Added environment variables for threading optimization
    • ONNXRUNTIME_SOLVER_INTER_THREADS
    • ONNXRUNTIME_SOLVER_INTRA_THREADS
  • Added person attributes detection
    • supported in ONNX Runtime solvers only

Changed

  • SFEBBox structure moved to libsfe_core

[1.0.1] - 2023-01-23

Added

  • Added face template identification
  • Added SFEFaceLandmarkType enumeration

[1.0.0] - 2023-01-09

  • First version for Rockchip RV1109 armv7 CPU with RKNN support