Trueface SDK Reference - Beta
Welcome to the Trueface SDK. The SDK allows you to integrate Trueface’s AI models directly into your application while ensuring maximum performance and flexibility. Start by downloading the correct version of the SDK for your target platform and desired language. Next, refer to the General section for guidance on how to initialize the SDK.
Downloads
Beta release version 3.0.30900
Choosing Your Release Type
Alpha contains the absolute latest features (updated daily), but may also contain bugs. Beta contains fewer bugs while still having relatively new features. Stable will contain the fewest bugs but will take the longest to get new features. You will generally want to choose the Beta or Stable releases.
Note, if downloading the SDK in an automated manner (ex. building docker images) and you always require the latest SDK version, then replace the postfix in the download link (SDK version) with _latest.zip
instead.
So for example, https://reference.trueface.ai/cpp/staging/latest/uploads/truefaceSDK_v0.10.5483.zip
would become https://reference.trueface.ai/cpp/staging/latest/uploads/truefaceSDK_latest.zip
. This is only available for Alpha and Beta releases.
If you require a previous version of the documentation or SDK downloads, refer to the Previous Stable Releases tab on the left.
x86-64 C++
Target platform |
Notes |
SHA256 |
---|---|---|
Compiled with gcc 9.3.0, GLIBC 2.31, tested on Ubuntu 20.04. |
|
|
Compiled with gcc 11.4.0, GLIBC 2.35, tested on Ubuntu 22.04. |
|
|
Must install GPU dependencies. Compiled with gcc 9.3.0, GLIBC 2.31, Cuda 11.8, tested on Ubuntu 20.04. |
|
|
Must install GPU dependencies. Compiled with gcc 11.4.0, GLIBC 2.35, Cuda 12.0, tested on Ubuntu 22.04. |
|
|
Must install Windows dependencies. Compiled with MSVC 19.35.32217.1 in Release mode. |
|
x86-64 Python bindings
Target platform |
Notes |
SHA256 |
---|---|---|
For CentOS, must run |
|
|
For CentOS, must run |
|
|
For CentOS, must run |
|
|
For CentOS, must run |
|
|
For CentOS, must run |
|
|
Must install GPU dependencies. Tested on Ubuntu 20.04. |
|
|
Must install GPU dependencies. Tested on Ubuntu 20.04. |
|
|
Must install GPU dependencies. Tested on Ubuntu 20.04. |
|
|
Must install GPU dependencies. Tested on Ubuntu 20.04. |
|
|
Must install GPU dependencies. Tested on Ubuntu 20.04. |
|
|
Must install GPU dependencies. Tested on Ubuntu 22.04. |
|
|
Must install GPU dependencies. Tested on Ubuntu 22.04. |
|
|
Must install GPU dependencies. Tested on Ubuntu 22.04. |
|
|
Must install GPU dependencies. Tested on Ubuntu 22.04. |
|
|
Must install GPU dependencies. Tested on Ubuntu 22.04. |
|
ARM C++
Target platform |
Notes |
SHA256 |
---|---|---|
Compiled with aarch64-linux-gnu-g++ 9.4.0, GLIBC 2.31, tested on Ubuntu 20.04. |
|
|
Compiled with aarch64-linux-gnu-g++ 11.4.0, GLIBC 2.35, tested on Ubuntu 22.04. |
|
|
Must install GPU dependencies. Compiled with aarch64-linux-gnu-g++ 11.4.0, GLIBC 2.35, CUDA-12.0, tested on Ubuntu 22.04. |
|
ARM Python Bindings
Target platform |
Notes |
SHA256 |
---|---|---|
Tested on Ubuntu 20.04. |
|
|
Tested on Ubuntu 20.04. |
|
|
Tested on Ubuntu 20.04. |
|
|
Tested on Ubuntu 20.04. |
|
|
Tested on Ubuntu 20.04. |
|
|
Tested on Ubuntu 22.04. |
|
|
Tested on Ubuntu 22.04. |
|
|
Tested on Ubuntu 22.04. |
|
|
Tested on Ubuntu 22.04. |
|
|
Tested on Ubuntu 22.04. |
|
|
Must install GPU dependencies. Tested on Ubuntu 22.04. |
|
|
Must install GPU dependencies. Tested on Ubuntu 22.04. |
|
|
Must install GPU dependencies. Tested on Ubuntu 22.04. |
|
|
Must install GPU dependencies. Tested on Ubuntu 22.04. |
|
|
Must install GPU dependencies. Tested on Ubuntu 22.04. |
|
iOS
Target platform |
---|
Android
Target platform |
---|
NodeJS
SDK Dependencies
The SDK has a few external dependencies, including:
OpenMP
libdl
ONNX Runtime
When linking against the static Trueface SDK, these dependencies must be manually linked by specifying them in the target_link_libraries
command in the CMakeLists.txt
file.
When linking against the dynamic Trueface SDK, they do not need to be manually linked as the dependency linkage has already been set to Public.
Before you can run an application linking against the SDK, you will need to add the directory which contains the onnxruntime shared library (shipped as part of the SDK bundle) to you LD_LIBRARY_PATH
environment variable.
GPU SDK Dependencies
In addition to the dependencies listed above, the GPU SDK has a few additional dependencies which must be installed.
Ubuntu 20.04 and 22.04
Start by installing the NVIDIA drivers on your machine by following the instructions here.
Next, you will need to install CUDA:
- Ubuntu 20.04:
- Ubuntu 22.04:
After installing CUDA, the CUDA Deep Neural Network (cuDNN) libraries need to be installed. The SDK requires cuDNN 8, the instructions for which can be found here. NOTE: the cuDNN 8 version MUST match the installed version of CUDA. For example:
- Ubuntu 20.04:
libcudnn8=8.6.1.6+cuda11.8
- Ubuntu 22.04:
libcudnn8=8.6.1.6+cuda12.0
Next, navigate to this link, create an account or login with your existing account, then click on TensorRT 8.6 GA. From there download the appropriate version of the TensorRT 8.6 GA for x86_64 Architecture. Once downloaded, extract the package by running
tar -xzf ./TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.8.tar.gz
then add the full path to theTensorRT-8.6.1.6/lib
directory to yourLD_LIBRARY_PATH
environment variable (ex.export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/tensorrt/dir/lib
. If you want this change to persist, you should add the command to your~/.bashrc
.).Finally, run the following commands:
apt-get install -y libomp-dev libopenblas-dev libgomp1 ln -s /usr/lib/x86_64-linux-gnu/libomp.so.5 /usr/lib/x86_64-linux-gnu/libomp.so
Alternatively, you can use either the nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu20.04
or nvidia/cuda:12.0.0-cudnn8-runtime-ubuntu22.04
docker images, but you will need still need to complete steps 4 and 5 above.
apt-get install -y libopenblas-dev
If you see that your system has libnvinfer.so.7
installed instead of the required libnvinfer.so.8
, then you’ll need to update the image running on your Jetson.
Windows SDK
For a full tutorial on how to install the Windows SDK, please consult this video.
Our team does the majority of development and testing in a Unix environment. The Windows SDK may therefore contain more bugs than the other platform releases and may be lacking in a few features. The current known issues and limitations are as follows:
Any file including
winerror.h
must have#undef NO_ERROR
as theNO_ERROR
defined inwinerror.h
conflicts withTrueface::ErrorCodes::NO_ERROR
.Trueface::SDK::identifyTopCandidate()
andTrueface::SDK::identifyTopCandidates()
will only use a single thread for search and will therefore be slower than searches run on Unix platforms. However,Trueface::SDK::batchIdentifyTopCandidate()
is capable of using multiple threads.
Dependencies which must be installed. These dependencies will automatically be installed by installing Git for Windows:
libintl-8.dll
libcrypto-1_1-x64.dll
libsll-1_1-x64.dll
As of this time, we are only supporting a release
configured version of the library (and not a debug
version).
The library is built as a dynamic library; therefore, you must link against libtf.lib
when compiling your application and must ensure that libtf.dll
is in the same directory as your executable.
We advise using “Git Bash” when compiling and and running your application to ensure the dependency libraries are properly found.
Getting Started Tutorials
Every SDK download package comes bundled with sample code (C++ and Python) demonstrating proper usage of the SDK for various tasks such as face detection, face recognition, object detection, mask detection, and more. Start by understanding how the sample code works by reading the comments in the code.
Sample Apps
Sample Apps demonstrate full working applications. These extend the scope of the sample code which comes shipped with the SDK.
Reporting SDK Bugs and Documentation Errors
If you encounter a bug in the SDK, please send an email to support@pangiam.com. Please include at minimum the following:
SDK version
SDK target (ex. Python 3.7 CPU Linux)
Expected behaviour
Observed behaviour
A minimal reproducible code example showing how to replicate the bug
Any input images used
The more information you provide, the faster we can diagnose the issue and push out a fix.
If you happen to find a mistake (spelling, syntax error, etc.) in the latest Alpha, Beta, or Stable documentation, please email support@pangiam.com with a screenshot of the mistake, documentation version number (same as SDK version), and the release type (Alpha, Beta, or Stable). We will push out a fix as soon as we can.