Changelog

Note

The changelog is written with respect to the C++ SDK and therefore references C++ functions and data types. However, the same changes apply to the python bindings SDK and the corresponding functions and data types - the two SDKs are kept in sync.

v0.28: August 18, 2021

Added:

  • Added new Trueface::FacialRecognitionModel::LITE_V2 face recognition model which has improved accuracy over previous LITE model.

  • Added SDK support for Ubuntu 18.04 CUDA 11.2 target.

Changed:

  • Improved the benchmarking scripts, benchmark.cpp and benchmark_1N_identification.cpp.

v0.27: August 2, 2021

Breaking:

  • Trueface::SDK::getFaceLandmarks() function signature has changed. Function now takes std::array<Point<float>, 106> instead of std::array<Point<int>, 106>.

Added:

  • Added active spoof detection to SDK.

  • Added new API functions, Trueface::SDK::checkSpoofImageFaceSize() and Trueface::SDK::detectActiveSpoof().

  • Added new API enums, Trueface::ActiveSpoofStage and Trueface::SpoofLabel.

  • Added new active spoof sample code, active_spoof.cpp.

  • Added Landmarks alias for std::array<Point<float>, 106>.

Changed:

  • “Face Detection and Recognition” documentation tab has now been split into “Face Detection” and “1 to 1 Face Recognition”.

v0.26: July 6, 2021

Breaking:

  • Trueface::SDK::getFaceLandmarks() function signature has changed.

  • Trueface::SDK::detectBlink() function signature has changed.

Added:

  • Added Trueface::BlinkState struct. Returned by calls to Trueface::SDK::detectBlink().

  • Added Trueface::ErrorCode::EXTREME_FACE_ANGLE enum member.

  • Added batch_enroll_in_database.py sample code demonstrating how to batch generate and enroll Faceprints into a collection.

  • Added shell script named download_face_landmarks_v2.sh for downloading face landmarks model.

  • Added new Python bindings sample app named face_landmarks_live_streaming.py.

Changed:

  • Blink detection model has been improved. The blink detection API function is no longer deprecated. The model is also no longer embedded in the SDK and must be downloaded by running download_blink_detector_v1.sh shell script.

  • Trueface::SDK::getFaceLandmarks() function has been improved and is no longer deprecated.

  • Updated the liveness / blink detection sample code.

  • Object detection model is no longer embedded in the SDK, and must be downloaded by running download_object_detector_v1.sh.

  • Python bindings sample code has been improved to print errors in red to make them more visible.

v0.25: June 22, 2021

Added:

  • Added Trueface::DatabaseManagementSystem::POSTGRESQL support for Trueface Windows SDK.

  • Windows SDK is now a dynamic library. The download bundle contains libtf.lib (required at compile time), and libtf.dll and libpq.dll (required at runtime).

  • Defined SDK copy constructor, assignment operator, move constructor, and move assignment operator.

Changed:

  • Trueface::SDK::saveFaceImage() now takes two additional parameters, height and width.

v0.24: June 8, 2021

Added:

  • Added ssl support for PostgreSQL backend. It can be enabled by adding sslmode=require to the database connection string.

Changed:

  • Changed suggested threshold for Trueface::SDK::estimateFaceImageQuality() to 0.999.

v0.23: May 27, 2021

Changed:

  • x86_64 GPU SDK now supports GPUs with Compute Capability 5.2+ (previously 6.0+).

  • C++ sample code now comes shipped with a CMakeLists.txt which demonstrates how to compile and link against the SDK.

  • The identification.cpp sample code has been split into two sample code files, enroll_in_database.cpp and identification_1_n.cpp.

  • Improved python bindings sample apps, identification.py has been split into two sample code files, enroll_in_database.py and identification_1_n.py.

  • The default threshold used for Trueface::SDK::identifyTopCandidate(), Trueface::SDK::identifyTopCandidates(), and Trueface::SDK::batchIdentifyTopCandidate() has been increased from 0.3 to 0.4.

Fixed:

  • Fixed bug which required FR model to be downloaded in order to run mask detection, glasses detection, spoof, and chip extraction.

  • Fixed bug in Trueface::SDK::batchIdentifyTopCandidate() in which Trueface::Candidate.matchProbability was not being set.

Deprecated:

  • Trueface::SDK::FaceDetectionMode has been removed.

v0.22: May 12, 2021

Added:

  • Added SDK support for AArch64 CUDA.

Breaking Changes:

  • Default Trueface::ConfigurationOptions.frModel has been changed from Trueface::FacialRecognitionModel::LITE to Trueface::FacialRecognitionModel::TFV5

v0.21: May 4, 2021

Added:

  • Added checks to Trueface::SDK::setImage() to ensure provided buffer is not empty.

Fixed:

  • Fixed bug in Trueface::SDK::identifyTopCandidates() which only impacted very rare corner cases.

  • Changed default threshold parameters value for Trueface::SDK::identifyTopCandidates() function from 3.f to 0.3f.

  • If Trueface::SDK::identifyTopCandidates() is called with numCandidates set to 1, it now returns an empty list if found returns false.

v0.20: April 26, 2021

Added:

  • Added SDK support for Ubuntu 20.04.

  • Added GPU SDK support for CUDA 11.

v0.19: April 14, 2021

Changed:

  • GPU face detector is now significantly faster (approximately 2-3x faster). The model also no longer needs to be downloaded at runtime.

  • MXNET_CUDNN_AUTOTUNE_DEFAULT is set to 0 by default.

  • All enum in tf_data_types.h have been changed to enum class.

  • Trueface::SDK::getObjectLabelString() is now a static method.

Removed:

  • Removed the download_face_detection_gpu.sh script, model no longer needs to be loaded at runtime.

Deprecated:

  • Trueface::SDK::FaceDetectionMode has been deprecated and may be removed in future releases.

v0.18: March 29, 2021

Fixed:

  • Fixed bug in CPU face detector which prevented OMP_NUM_THREADS being used properly. CPU face detector now uses fewer threads and is faster.

v0.17: March 11, 2021

Changed:

  • Trueface::SDK::detectGlasses() now returns glasses confidence score.

  • Improved python bindings documentation to provide more information regarding function parameters and return values.

Fixed:

  • Fixed bug with Trueface::SDK::getFaceFeatureVectors() when using CPU inference with GPU SDK.

Deprecated:

  • Marked Trueface::SDK::detectSpoof(), Trueface::SDK::detectBlink(), and Trueface::SDK::getFaceLandmarks() as deprecated due to suboptimal performance.

v0.16: February 25, 2021

Added:

  • New face recognition model Trueface::FacialRecognitionModel::TFV5. We have deprecated the Trueface::FacialRecognitionModel::FULL model (TFV4) but will continue to support it for clients with existing collections. More details on the FAQ page

  • Added download_face_recognition_tfv5_cpu.sh and download_face_recognition_tfv5_gpu.sh which must be run in order to use TFV5 (use the respective script for your target platform).

Changed:

  • Trueface::FacialRecognitionModel::FULL face recognition model download scripts have been changed from download_face_recognition_cpu.sh and download_face_recognition_gpu.sh to download_face_recognition_tfv4_cpu.sh and download_face_recognition_tfv4_gpu.sh.

  • Trueface::FacialRecognitionModel::FULL face recognition model (TFV4) is not longer embedded in the SDK and must be downloaded by running download_face_recognition_tfv4_cpu.sh. This has reduced the SDK binary size by about 230Mb.

Removed:

  • Removed ARM C++ lite downloads from main downloads page. These builds are now redundant as the FULL model is no longer embedded in the SDK.

v0.15: February 16, 2021

Changed:

  • Can choose to run inference on GPU for individual modules using Trueface::EnableGPU configuration option.

  • Changed identification.cpp, identification.py, and identification_live_streaming.py sample code to demonstrate usage of new collection metadata functions.

Added:

  • Trueface::SDK::createCollection(), Trueface::SDK::loadCollection(), and Trueface::SDK::deleteCollection() API functions. Calling Trueface::SDK::createCollection() then subsequently Trueface::SDK::loadCollection() is equivalent to calling Trueface::SDK::createLoadCollection().

  • Trueface::SDK::getCollectionNames() API function returns a list of the names of all the collections in the database.

  • Trueface::SDK::getCollectionMetadata() API function returns the metadata for the specified collection in the database, loaded or unloaded.

  • Trueface::SDK::getCollectionIdentities() API function returns a map of identities and UUIDs for the specified collection in the database, loaded or unloaded.

  • Trueface::CollectionMetadata API struct, returned by Trueface::SDK::getCollectionMetadata().

v0.14: January 25, 2021

Changed:

  • Default value of Trueface::ConfigurationOptions.smallestFaceHeight has been increased from 20px to 40px.

  • Downloadable model file formats have changed. You will need to re-run the model download scripts if upgrading from an older SDK version.

  • Changed sample app images.

Fixed:

  • Fixed bug which impacted Faceprint feature vector integrity with calls to Trueface::SDK::jsonToFaceprint() and Trueface::SDK::faceprintToJson() when Trueface::ConfigurationOptions.frVectorCompression was set to true. The format of serialized Faceprint feature vectors (generated with Trueface::ConfigurationOptions.frVectorCompression = true) has changed and therefore old serialized Faceprints which were generated and saved cannot be used with new versions of the SDK.

  • MXNET_CUDNN_AUTOTUNE_DEFAULT environment variable is now properly read by the GPU SDK. MXNET_CUDNN_AUTOTUNE_DEFAULT=0 should be set when variable-sized input images are used.

v0.13: January 15, 2021

Removed:

  • Removed functions which were marked as deprecated in release 0.11.

Fixed:

  • Fixed bug in python bindings function Trueface::SDK::identify_top_candidates().

v0.12: January 4, 2021

Added:

  • Added Windows SDK to downloads page.

Fixed:

  • Cap similarityMeasure at 1.f, previously could sometimes exceed 1 due to rounding errors.

  • Improved 1 to N identification sample apps, better demonstrate how to select high quality enrollment images. Improved 1 to N identification documentation.

  • Fixed Trueface::SDK::getFaceFeatureVectors() function when running GPU SDK with Trueface::enableGPU set to false.

v0.11: December 23, 2020

Changed:

  • Function prototype changed for Trueface::SDK::removeByIdentity(). Now returns the number of Faceprints which were deleted from the collection.

  • Trueface::SDK::enrollTemplate() has been deprecated, use Trueface::SDK::enrollFaceprint() instead.

  • Trueface::SDK::getLargestFaceFeatureVector(Trueface::Faceprint&) has been deprecated, use Trueface::SDK::getLargestFaceFeatureVector(Trueface::Faceprint&, bool&) instead.

Fixed:

  • Fixed bug with logger.

v0.10: December 11, 2020

New features and enhancements:

  • Face recognition template generation speed improvements on x86 CPU (both Trueface::FacialRecognitionModel::LITE and Trueface::FacialRecognitionModel::FULL model template generation nearly twice as fast). The RAM usage has also increased, the Trueface::FacialRecognitionModel::FULL model now using 2Gb RAM (previously 1.1Gb), and the Trueface::FacialRecognitionModel::LITE model using 55Mb RAM (previously 35Mb).

Changed:

  • SDK now supports CPUs which have AVX instruction set and don’t have AVX2 instruction set (previously our SDK required AVX2 CPUs). SDK uses runtime dispatching and will run significantly faster on CPUs supporting AVX2.

  • Trueface::SDK::faceprintToJson() no longer adds newline to json elements.

v0.9: November 20, 2020

New features and enhancements:

  • Python3.7 bindings for AArch64 and Arm32 SDK (previously only python3.6).

  • Added Trueface::SDK::setImage(const std::vector<uint8_t>&) overload which accepts buffer to encoded JPG, PNG, or TIFF image

Changed:

  • Changed scripts for downloading runtime model files. They are now located in the download_models directory.

  • Function prototype changed for Trueface::SDK::isLicensed() function. Now returns how many days are remaining for the license token.

Fixed:

  • Fixed bug with GPU face detector where Trueface::ConfigurationOptions.smallestFaceHeight parameter was not being used.

  • Bug in spoof code which was producing incorrect results. Spoof function prototype has also been changed, must provided the Trueface::FaceBoxAndLandmarks of the face to be analyzed.

v0.8: November 9, 2020

New features and enhancements:

  • All Python classes have a __repr__ method.

  • Python bindings for AArch64 and Arm32 SDK.

  • Log number of days remaining for license.

  • Can use images residing in CUDA memory for face detection and recognition.

  • Added PostgreSQL DatabaseManagementSystem support.

  • Added Trueface::SDK::faceprintToJson() and Trueface::SDK::jsonToFaceprint() functions for deserializing / serializing Faceprint objects as strings.

  • Improved sample apps.

  • Environment variable for setting log level.

  • Improved documentation.

Changed:

v0.7: August 14, 2020

New features and enhancements:

  • Added Trueface::SDK::detectGlasses() API for detecting eye glasses

  • Added Trueface::SDK::detectMask() API function for detecting face masks

  • Added glasses detection sample codes (C++ and python).

  • Added mask detection sample apps (C++ and python).

  • Spoof model improvements.

  • Reduce SDK size.

  • No longer need to register all the GPUs in a machine in order to use one GPU with the SDK.

Changed:

  • Changed TRUEFACE_LICENSE to TRUEFACE_TOKEN in python bindings sample apps.

  • Spoof score has been inverted, 1 indicates real, 0 indicates fake.

  • Trueface::SDK::detectMask() now takes 1 additional parameter, maskScore.

v0.6: July 7, 2020

New features and enhancements:

  • Face mask detection (currently on the CUDA engine only).

  • Setting Trueface::ConfigurationOptions.smallestFaceHeight to -1 adjusts the face detection scale range from image-height/32 to image-height.

  • Read license token from environment variable in python sample apps.

Method signature changes:

  • Renamed Trueface::SDK::createCollection() to Trueface::SDK::createLoadCollection().