ROC SDK  2.4.0
Scalable Face Recognition Software
Installation Notes

Supported Platforms

The ROC SDK is supported on a wide variety of operating systems and CPU architectures. The SDK archive names use the following convention:

roc-OperatingSystem-CPUArchitecture-VectorExtension-SDKVersion

Note
If you receive an illegal instruction error, this indicates that you are attempting to run an instance of our SDK whose CPU architecture or vector extension is not supported by your computer. In most cases this can be resolved by downloading the correct flavor of our SDK. The FMA vector extension is available on nearly all x64 CPUs since 2014, and SSE is the legacy fallback alternative. In some cases we can't support CPUs pre-dating 2011.

License Generation

Windows
Double-click bin\roc-host-id.exe to run this command and email the file roc-host-id.json that it creates to bd@ra.nosp@m.nkon.nosp@m.e.io.
Linux & macOS
Email the output of this command to bd@ra.nosp@m.nkon.nosp@m.e.io:
$ ./bin/roc-host-id
Android (<= 7)
Email the output of this command to bd@ra.nosp@m.nkon.nosp@m.e.io:
$ adb shell settings get secure android_id
Android (>= 8)
To generate a valid license file from your application, email the output of roc_get_host_id to bd@ra.nosp@m.nkon.nosp@m.e.io.
iOS
To generate a valid license file call the ROC SDK function roc_get_host_id from your application. Email the output to bd@ra.nosp@m.nkon.nosp@m.e.io.

All Platforms

We will respond to your email with a valid ROC.lic file to copy to the ROC SDK root directory, overwriting the placeholder license file of the same name.

Note
If you intend to use the Command Line Interface or Explore, export the environment variable ROC_LIC to the full path to the ROC.lic license file.

Threads

License files include a threads value which is the maximum number of concurrent calls that can be made to ROC SDK functions. If the limit is exceeded, later threads will block until earlier threads have returned.

The thread count limit can be queried with roc_get_thread_limit and set with roc_set_thread_limit. Most SDK functions are single-threaded and safe to call concurrently, look for thread-safe, reentrant or thread-unsafe markings in the documentation for each function. A few trivially parallelizable functions are marked parallel, indicating that they will use more than one thread when beneficial. Parallel functions are counted against the thread limit in accordance with the number of threads they utilize.

Dongles

HASP

If your license requires a USB hardware dongle, there is a driver provided in the share folder that must be installed to recognize it.

Windows
Run HASPUserSetup.exe.
Linux
$ sudo ./install_32bit_compatibility_package_for_x64.sh
$ sudo dpkg -i --force-architecture aksusbd_7.60-1_i386.deb
macOS
Run Sentinel_Runtime.dmg.
Android & iOS
Not supported.

Keylok

Windows x64
Keylok dongles are only supported on the Windows x64 distribution of the SDK.

The Keylok dongles require 6 unique client clodes. Please reference the provided client.h file from Keylok for those code. Before running roc_initialize please run roc_set_keylok_keys first. The keys required are:

  • ValidateCode1
  • ValidateCode2
  • ValidateCode3
  • ClientIDCode1
  • ClientIDCode2
  • ReadCode3

If using a Keylok dongle please use the --keylok flag on the roc-host-id function.

roc_initialize will attempt to read a "ROC_KEYLOK" environment variable if roc_set_keylok_keys is not called. The environment variable needs to be a comma seperated string of the above keys in that order.

Video Decoding Dependencies

An additional installation step is required only for users in need of Video Decoding or Explore.

Windows & macOS
No additional installation step.
Linux
$ sudo apt-get update
$ ./install_ffmpeg.sh

Additionally, for GStreamer GPU-accelerated video decoding (supported on CUDA GPUs only):
$ ./install_nvdec_gst_plugin.sh
$ export GST_PLUGIN_PATH=$GST_PLUGIN_PATH:/usr/local/lib/gstreamer-1.0/
Android & iOS
Not supported.

Evaluation

The run_accuracy_evaluation.sh script in the share folder of the Linux SDK is a turn-key solution for evaluating ROC algorithms on the LFW and MEDS datasets. See comments in the script for details.

$ cd share
$ ./run_accuracy_evaluation.sh

Acknowledgements

The ROC SDK uses the following software packages:

Name License Source
OpenBR Apache 2.0 http://www.openbiometrics.org
Qt LGPL 3.0 http://www.qt.io
OpenCV BSD 3-clause http://www.opencv.org
FFMPEG LGPL 2.1 http://www.ffmpeg.org