note

Visage Technologies strives to minimize changes in API and configuration files when releasing new versions of the SDK. The inevitable changes are listed here together with specific instructions for developers who have existing applications built with older versions.

For each visage|SDK release, incremental changes in relation to the previous release are listed. To apply the changes correctly, apply them in order from the older version to the newer version without skipping intermediary versions.

Visage Technologies strives to minimize changes in API and configuration files when releasing new versions of the SDK. The inevitable changes are listed here together with specific instructions for developers who have existing applications built with older versions.

For each visage|SDK release, incremental changes in relation to the previous release are listed. To apply the changes correctly, apply them in order from the older version to the newer version without skipping intermediary versions.


visage|SDK 8.6

General

To improve the performance of our algorithms and to support a wider variety of neural network models we are introducing a configurable framework for choosing between different neural network runners.

As a result, additional configuration file NeuralNet.cfg is now included in visage|SDK (located in Samples/data). This file allows the users to configure which runner will be used by visage|SDK. Users can choose between:

  • Visage's in-house developed runner and

  • OpenVINO™ toolkit.

For more information on the parameters of NeuralNet.cfg file see the API page.

OpenVINO is a trademark of Intel Corporation or its subsidiaries.

New experimental algorithm for face tracking and alignment introduced - VNN algorithm.

For the price of slightly reduced tracking speed/performance, it significantly improves tracking quality and robustness. VisageTracker and VisageFeaturesDetector can be configured to use VNN algorithm via configuration parameter - use_vnn.

For more information on use_vnn parameter, please consult VisageTracker Configuration Manual and VisageTracker class documentation.

It is recommended to use VNN algorithm with OpenVINO™ toolkit which significantly improves speed of running neural networks thus mitigating any performance reductions.

OpenVINO is a trademark of Intel Corporation or its subsidiaries.

API changes

Introducing new C++ and C# API for programmatically changing VisageTracker configuration parameters, including new additional classes and templates:

VisageConfiguration

Modify configuration parameters on the fly

VsCfgArr

Helper template structure for storing various VisageConfiguration array data types

The aforementioned classes are used in conjunction of new VisageTracker methods:

C++

VisageConfiguration VisageTracker::getTrackerConfiguration()

void VisageTracker::setTrackerConfiguration(VisageConfiguration &configuration)

C#

VisageConfiguration VisageCSWrapper.VisageTracker.GetTrackerConfiguration()

void VisageCSWrapper.VisageTracker.SetTrackerConfiguration(VisageConfiguration configuration)

There are slight differences in usage between C++ and C#. For example, C++ API uses helper structure VsCfgArr to return specific data types where C# uses native C# types.

VisageConfiguration and VsCfgArr class documentation contains more details and examples of usage in code

FDP group 10 (ears) has been extended from 10 to 24 points (12 points per ear) as part of ear tracking feature.

FDP files saved with visage|SDK 8.6 will not be backwards compatible with previous versions due to the addition of new FDP points.

Using FDP::readFromFile() to load an 8.6 FDP file in an earlier version of the visage|SDK will lead to undefined behavior.

VisageTracker method stop has been deprecated from both APIs.

C++

VisageTracker::stop()

C#

VisageCSWrapper.VisageTracker.Stop()

Prototype of method

void initializeLicenseManager(const char *licenseKeyFileName)

changed to

int initializeLicenseManager(const char *licenseKeyFileName)

It is no longer necessary to declare the licensing function prototype explicitly within your code. Including any of the following headers will also include the licensing prototype:

  • VisageTracker.h

  • VisageFeaturesDetector.h

  • VisageFaceRecognition.h

  • VisageFaceAnalyser.h

FeaturePoint class and FDP class have additional property and functions, respectively to conform with the C++ API.

FeaturePoint

FeaturePoint.detected

FDP

bool FDP::FPIsDetected(int group, int n)
bool FDP::FPIsDetected(String name)

If 1, indicates that the feature point is obtained from a 2D image using the tracking algorithm. 0 indicates that the feature point is estimated from fitting a 3D model onto the detected feature points of the face.

Model changes

A new model file has been added for ear tracking functionality - jk_300_wEars.wfm. The model contains an additional 334 polygons and it’s vertices are mapped to 14 new FDP points in group 10 (10.11 - 10.24).

For detailed description of these changes consult VisageTracker Configuration Manual

Changes in configuration file

For detailed description of these changes consult VisageTracker Configuration Manual.

If you want to update your existing configuration files, it is recommended to copy the parameters values from Facial Features Tracker - High.cfg configuration file supplied in this package.

Data files changes

Projects using older versions of these files should be updated to contain the newest data files from the bdtsdata folder.

Sample changes

VisageTrackerUnityDemo and FacialAnimationUnityDemo:

VisageTrackerUnityDemo and FacialAnimationUnityDemo are now distributed only as Unity projects. Instructions on how to build and run the provided applications can be found here for VisageTrackerUnityDemo and here for FacialAnimationUnityDemo. Additionally, instructions for visage|SDK Unity integration can be found here.


visage|SDK 8.5

Changes in configuration file

  • smoothing_factors parameter
    Due to the re-implementation of the smoothing algorithm in VisageTracker, default values and optimal ranges for this parameter have been changed in all configurations

Please refer to the VisageTracker Configuration Manual, section 2.1. for additional information.

If you want to update your existing configuration files, it is recommended to copy the parameters values from Facial Features Tracker - High.cfg configuration file supplied in this package.

Sample changes

VisageRendering.cs:

Methods DisplayEmotion() and DisplayAgeGenderName() have changed the prototypes from:

public void DisplayEmotion(FaceData trackingData, float[] emotions, int width, int height,
                           bool face_recognition_mode=false)
public void DisplayAgeGenderName(FaceData trackingData, float age, int gender, string name, 
                                 int width, int height, int drawingOptions, 
                                 bool face_recognition_mode=false)

to:

public void DisplayEmotion(FaceData trackingData, float[] emotions, int width, int height, 
                           bool display_background = false)
public void DisplayAgeGenderName(FaceData trackingData, float age, int gender, string name, 
                                 int width, int height, bool display_background = true)

Build tools changes

Libraries built with msvc100 are no longer supported within the package.

Data files changes

visage|SDK data files located in Samples/data/bdtsdata folder have been updated.

Copy all files located in the Samples/data/bdtsdata folder to appropriate folders in any existing application.