Skip to main content

SFE Toolkit — Introduction

Package

Get the SDK: SFE Toolkit packages are distributed through the Innovatrics Customer Portal (one package per target OS / CPU architecture / accelerator) and are available on request via sales@innovatrics.com.

Each of the SFE Toolkit packages consists of:

  • root directory includes:
    • this readme file,
    • changelog,
    • EULA,
  • doc directory includes documentation in HTML and PDF format,
  • lib directory includes shared libraries compiled for one target CPU,
  • solver directory includes a set of solvers compiled to be accelerated using a specific neural network accelerator,
  • include directory includes header files with documentation of the C API,
  • bin directory includes:
    • pre-built example applications demonstrating the usage and integration of the SFE Toolkit libraries,
    • pre-built benchmark applications for benchmarking the SFE Toolkit libraries,
    • License Manager application compiled for the target CPU,
  • example directory includes sources of example applications,
  • benchmarks directory includes sources of benchmark applications,
  • assets directory includes images for example and benchmark applications.

Overview

SmartFace Embedded Toolkit (SFE Toolkit) is a modular, portable and easy-to-integrate SDK that can be used in any facial recognition use case on various platforms.

Key Features

SFE Toolkit currently supports the following features.

Face Detection

SmartFace Embedded can detect faces of various sizes, orientations, facial hair types or ethnicities.

Face Quality Evaluation

SFE Toolkit provides functionality to measure the quality of detected faces to improve the quality of enrollment and accuracy of face recognition.

SFE Toolkit supports the following face attributes:

  • Head pose deviation (yaw, pitch, roll)
  • Brightness in the facial region
  • Contrast in the facial region
  • Sharpness in the facial region
  • Uniform Lighting / Shadow in the facial region
  • ICAO cropping of the facial region.

Face Recognition

  • Face verification (1:1)
  • Face identification (1:N)
  • Face liveness evaluation

Iris Recognition

  • Iris detection
  • Iris verification (1:1)
  • Iris identification (1:N)

Palm Recognition

  • Palm detection
  • Palm verification (1:1)
  • Palm identification (1:N)
  • Palm attributes

Platform support

SFE Toolkit supports the following platforms:

  • Windows x86_64,
  • Linux x86_64,
  • Android ARMv7 and ARM64
  • Embedded Linux ARMv7 and ARM64

If you need to support another OS or architecture, please contact your sales representative at Innovatrics.

HW acceleration

  • Ambarella CVFlow (Ambarella SDK 3.0)
    • CV28
    • CV25
    • CV22
    • CV2
  • Rockchip RKNPU (RKNPU 1.6.0)
    • RK1808/RK1806
    • RV1109/RV1126
  • Rockchip RKNPU2 (RKNPU2 1.5.2)
    • RK3566/RK3568
    • RK3588/RK3588S
    • RV1103/RV1106
    • RK3562
  • NVIDIA GPUs and NVIDIA Jetson platforms with NVIDIA CUDA or TensorRT support
  • NXP iMX8 (Tensorflow Lite -> VX delegate)

Libraries

SFE Toolkit consists of the following libraries:

  • libsfe_core.so (sfe_core.dll on Windows)
    • solver loading
    • image operations
    • error handling
  • libsfe_face.so (sfe_face.dll on Windows)
    • face detection
    • face landmarks detection
    • face mask detection
    • face template extraction
    • 1:1 face template matching
    • 1:N face template identification
    • face liveness detection
    • face and image quality attributes
  • libsfe_iris.so (sfe_iris.dll on Windows)
    • iris detection
    • iris template extraction
    • 1:1 iris template matching
    • 1:N iris template identification
  • libsfe_palm.so (sfe_palm.dll on Windows)
    • palm detection
    • palm template extraction
    • 1:1 palm template matching
    • 1:N palm template identification
  • libsfe_tattoo.so (sfe_tattoo.dll on Windows)
    • tattoo detection

API

SFE Toolkit libraries provide C API. We can also provide a binding with an example application for the following platforms:

  • Python for Windows and Linux
  • Kotlin for Android
  • Swift for iOS
  • .NET for Windows and Linux

Licensing

You will need a valid license file to use the SFE Toolkit.

Hardware ID

The hardware ID of your Embedded/Edge device or PC is required to generate the valid license.

Please use the License Manager application to generate a Hardware ID for your device:

./license_manager_cli -p

On Embedded platforms, the MAC address of the device's network adapter is used as the hardware ID.

NOTE: If you require a license based on a different type of hardware parameter of your edge device, please contact your Innovatrics sales representative.

License generating

Use the hardware ID or MAC address (without colons) of your device to generate a license at our Customer Portal.

License deployment

Copy this license file to one of the following locations on Linux PC and Embedded Linux:

  • /etc/innovatrics (all users)
  • ~/.innovatrics (specific user)
  • working directory

and on Windows PC:

  • C:\ProgramData\Innovatrics\iengine.lic (all users)
  • C:\Users<user>\AppData\Local\Innovatrics\iengine.lic (specific user)
  • working directory

The license file has to be named iengine.lic.

License ENV variables

The license can be also set using environment variables:

  • ILICENSE - path to the license file
  • ILICENSE_DATA - base64 (RFC 4648) encoded license file content. Please note you have to disable line wrapping. To convert the license file to base64 correctly, please use the following command:
cat iengine.lic | base64 -w0 > base64_license.txt

Example application

To run the pre-built example applications run the following commands in the package root directory:

export LD_LIBRARY_PATH=$PWD/lib
bin/example_face_identify

To display options run:

bin/example_face_identify -h

Python example

To run the Python example, run the following command:

On Linux:

cd example/python
export LD_LIBRARY_PATH=../../lib
python example_face.py

On Windows:

  1. Copy sfe_* DLLs to C:\Windows\System32 or working directory (example/python)
  2. Copy DLLs from bin/ directory to python.exe installation directory because there is an incompatible onnxruntime.dll installed in Windows 10 and 11.
    • onnxruntime.dll, zlibwapi.dll
    • OPTIONALLY: onnxruntime_providers_* and CUDA (cudnn*) DLLs to enable GPU acceleration using cuda or tensorrt runtime provider
  3. Run python.exe example_face from example/python directory.

Benchmarks application

To run the pre-built benchmarks applications run the following commands in the package root directory:

export LD_LIBRARY_PATH=$PWD/lib
bin/benchmark_face

To display options run:

bin/benchmark_face -h

If you want to build the application, please follow the instructions in example/readme.md

Support

Please contact sfembedded-integration@innovatrics.com in case of any issues or questions.