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.