Подключение Face SDK к проекту
#
Добавление библиотеки в проект#
Требуемые зависимостиДля работы с Face SDK Вам необходимо установить следующие зависимости:
- Windows: библиотека
sense4.dll
. Эта библиотека находится в дистрибутиве Face SDK в папке bin и должна оставаться рядом с библиотекойfacerec.dll
в случае перемещения. - Windows 64-bit: библиотека
tensorflow.dll
. Эта библиотека находится в дистрибутиве Face SDK в папке bin. Она должна располагаться в директории, из которой запускается приложение, либо необходимо добавить путь до директории с этой библиотекой в системную перемннуюPATH
- Windows 64-bit: Microsoft Visual C++ Redistributable for Visual Studio 2019
- Linux библиотека
libusb-0.1.so.4
- Linux 64-bit: библиотека
libtensorflow.so.2
. Эта библиотека находится в дистрибутиве Face SDK в папке lib
#
C++Бибилотека libfacerec
загружается динамически во время выполнения при вызове статического метода pbio::FacerecService::createService
, поэтому не нужно линковать программу с libfacerec.so
(Linux) или facerec.dll
(Windows). Необходимо только добавить каталог include к директориям заголовочных файлов и для проектов под Linux – слинковать с библиотекой libdl
с флагом -export-dynamic
.
Предупреждение: Вызывать pbio::FacerecService::createService
можно только один раз, иначе может произойти сбой.
Все объявления libfacerec
находятся в двух заголовочных файлах:
facerec/import.h
– должен быть включен ровно один раз (например, вmain.cpp
)facerec/libfacerec.h
– должен быть включен в каждом файле, использующем библиотеку
Библиотека libfacerec
не имеет фактических сторонних зависимостей*, т.к. все использованные сторонние библиотеки (см. Лицензии свободного ПО) слинкованы статически, поэтому для примеров, в которых используется OpenCV или boost, должны подходить любые версии указанных библиотек.
* – за исключением дистрибутивов linux_x86_64 и windows_x86_64. Для них на текущий момент имеется зависимость от libtensorflow.so.2
и tensorflow.dll
соответственно.
#
Версия библиотекиТекущая версия библиотеки может быть получена путем вызова метода get_version
от созданного объекта FacerecService
. При этом будет возвращена строка формата x.yy.zz
, где x
– основная версия, yy
– дополнительная версия, zz
– версия патча.
Для C++ версию дополнительно можно получить из констант препроцессора:
LIBFACEREC_VERSION
– строковое представление, аналогично форматуFacerecService.get_version()
LIBFACEREC_VERSION_HEX
– трехбайтовое представление версии, удобное для численного сравнения, например,0x010234
#
JavaДля использования facerec.jar
в проекте укажите путь до этого файла в classpath
. Java-библиотека facerec.jar
является оберткой над C++ библиотекой, поэтому необходимо наличие libfacerec_jni.so
и libfacerec.so
для Linux и Android или facerec_jni.dll
и facerec.dll
для Windows во время выполнения. Путь до директории, содержащей libfacer_jni.so
или facerec_jni.dll
, должен быть указан в java.library.path
.
#
C#Для использования библиотеки необходимо добавить ссылку на FacerecCSharpWrapper.dll
в ваш проект. После сборки проекта добавьте facerec.so
(для Linux) или facerec.dll
(для Windows) и FacerecCSharpWrapper.dll
в директорию с исполняемым файлом.
#
Использование библиотеки libfacerecРабота с библиотекой libfacerec
начинается с вызова статического метода FacerecService.createService
, который динамически загрузит библиотеку.
Метод FacerecService.createService
иммеет перегруженную сигнатуру и может быть вызван:
- с указанием пути до директории с лицензией (из которой будет подгружена лицензия
3divi_face_sdk.lic
) - с передачей лицензии в виде специальной структуры:
FacerecService.License
Предупреждение: Вызывать FacerecService.createService
можно только один раз, иначе может произойти сбой.
Примечание: Вам не обязательно удерживать объект FacerecService
все время работы с библиотекой. Библиотека libfacerec
автоматически выгрузится, когда не останется интерфейсных объектов.
#
Примеры- C++
- C#
- Java
- Python
#
Примеры вызова метода createService с предварительно загруженной (сохраненной в строковой переменной) лицензией- C++
- C#
- Java