Migration from older 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.

Changes in this release



This section covers all changes introduced in all releases since 8.5.

General

Configurable detection algorithm

New experimental algorithm for face and facial features detection introduced (VNN algorithm). While it significantly improves detection quality, it also reduces detection speed (performance).
Detector is currently configurable so VNN algorithm can be enabled or disabled via parameter use_vnn in configuration file.
The experimental detection algorithm requires additional data bundled in visageVNNData.data file located in www/lib folder.

For more information about using VNN detection algorithm, please consult VisageDetector documentation.

Configurable tracking algorithm

New experimental algorithm for face tracking introduced (VNN algorithm). While it significantly improves tracking quality and robustness, it also reduces tracking speed (performance).
Tracker is currently configurable so VNN algorithm can be enabled or disabled via parameter use_vnn in configuration file.

The experimental tracking algorithm requires additional data bundled in visageVNNData.data file located in www/lib folder.

For more information about using VNN tracking algorithm, please consult VisageTracker Configuration Manual and VisageTracker documentation.

API changes:

VisageConfiguration API

Introducing new API for programatically changing VisageTracker configuration parameters, including class:

used in conjunction with new VisageTracker methods: For more details and usage code examples please refer to VisageConfiguration.

FDP class:

VisageTracker class:


Model changes:

A new model file has been added for ear tracking functionality - jk_300_wEars. The new model is based on the previous 'jk_300' model and contains an additional 334 polygons and 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 www/lib folder.

Sample changes:

VisageTrackerUnityDemo:

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



Changes in older releases


visage|SDK 8.5

Changes in configuration file:

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.

API changes:

Copyless data

All function that have returned copies of their values in form of Array, VectorInt or VectorFloat are now returning TypedArray. This change refers to track() function, getFPPos() function and most of FaceData members.

FaceData

visage|SDK 8.4

API changes:

Webassembly format

Default visage|SDK library is in WebAssembly format, thus it comes in two file format: visageSDK.js and visageSDK.wasm. Main file is visageSDK.js and can be located independently of the main .html file, while the visageSDK.wasm file depends on visageSDK.js file and is expected to be located at the same folder as the main .html file.
The location of visageSDK.wasm file can be changed, which entails changing the location of the .data files (visageSDK.data, visageAnalysisData.data, visageRecognitionData.data) to the same folder. An example can be found at the link: Changing the location of the .data file.
To use WebAssembly, MIME type for .wasm file has to be added in .htaccess file on web server as follows (see MIME type):
Asynchronous data load

visage|SDK library has been modified to be completely asynchronous. As a result certain .data files need to be preloaded by calling FS_createPreloadedFile() function. The change refers to license and configuration files. Note, that the FS_createPreloadedFile() function must be called after visageSDK.js script is loaded, but before the .data is completely downloaded (see Changing the location of the .data file example).



Change the name of the Module

Main visage|SDK module renamed from Module to VisageModule in visageAnalysisData.js and visageRecognitionData.js scripts to improve compatilibity with other libararies and software (for example Unity).
In case of using FaceAnalysis or FaceRecognition it is necessary to call Module VisageModule and as such use it in the code.
visageAR

The order of applying rotations on the glasses 3D objects has been fixed to be equal to the tracker's (see getFaceRotation) which is 'YXZ'.

Sample changes:

FaceDetector and FaceTracker samples have been removed from visage|SDK HTML5 package.

VisageTrackerUnityPlugin

VisageTrackerUnityPlugin was updated so it includes all FaceTrack (including multiple face tracking) and FaceAnalysis functions.
The plugin is devided into two files: VisageTrackerUnityPlugin.jslib and VisageAnalyserUnityPlugin.jslib, both file can be found in www/lib folder.
Due to major changes, it is recommended to go through documentation before including VisageTrackerUnityPlugin to your existing project.

ShowcaseDemo

Improved sample performance by moving FaceAnalysis functionality to a Web Worker (see analysisWorker.js file).


visage|SDK 8.3.5959

General changes:

Module object renamed to VisageModule. Automatic initialization and data download has been deprecated. In order to properly initialize VisageModule object and start visageSDK data download, VisageModule object needs to be initialized manually.

Following code demonstrates:
<script src="../../lib/visageSDK.js">

<script>
var Module = VisageModule({onRuntimeInitialized: onModuleInitialized})
</script>

See additional examples within sample application code and in the API documentation (API->VisageTracker->Changing the location of the .data file section).

Landmark detection changes:

For detailed illustration see MPEG-4 FBA.

Changes in configuration file:

Configuration file format had stayed the same.

jk_300 model has been set as a default model for pose and action unit estimation instead of candide3 model.

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:

visageSDK.data file, located in the folder where the application html file is located (e.g. www/Samples/FaceTracker folder), has been updated.


visage|SDK 8.2.5684

API changes:

VisageTracker:
Due to the introduction of multitracking prototype of following methods has been changed:
VisageGazeTracker:
Prototype of the VisageGazeTracker' track function has changed and is the same as the VisageTracker' track function.

Note that VisageGazeTracker works on one face only. Parameter maxFaces is not used.
VisageFaceRecognition:

Changes in configuration file format:


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 values for these new parameters from the Facial Features Tracker - High.cfg configuration file supplied in this package. In all other cases, simply use the provided configuration files.

Data files changes:

visageSDK.data file, located in the folder where the application html file is located (e.g. www/Samples/FaceTracker folder), has been updated.


visage|SDK 8.1.4407

API changes:

Prototype of following methods has been changed:

Changes in configuration file format:

Data files changes:

visageSDK.data file, located in the folder where the application html file is located (e.g. www/Samples/FaceTracker folder), has been updated.
New model has been added - jk_300, in two additional files: jk_300.wfm and jk_300.fdp. For detailed information on how the new model is used inside the visage|SDK consult VisageTracker Configuration Manual section 2.3.


visage|SDK 8.0.3444

API changes:

IMPORTANT: Check the API documentation for major classes FaceData, FDP, FeaturePoint, ScreenSpaceGazeData usage as well as helper classes such as VectorFloat, VectorInt, VectorString and FaceDataVector. Examples of usage can be found in visage|SDK samples.

Changes in configuration files:

If you want to update your existing configuration files, it is recommended to copy the values for these new parameters from the Facial Features Tracker - High.cfg configuration file supplied in this package. In all other cases, simply use the provided configuration files.

Data files changes:

visageSDK.data file, located in the folder where the application html file is located (e.g. www/Samples/FaceTracker folder), has been updated.

Sample changes:

Due to compiler update to emscripten v1.35, HTML5 samples using visage|SDK must have additional code added to your application main .html file. The additional code must be located inside of the script tag and included before the script tag loading visageSDK.js library. Example:

<script type="text/javascript">
var Module = 
{
	onRuntimeInitialized: function()
	{
		onModuleInitialized();
	}
};
</script>
<script src="../../lib/visageSDK.js"></script>
Emscripten functions that use Module object such as
Module._malloc
and visage|SDK.js function such as
m_Tracker.track()
must not be called before the OnModuleInitialized() function is called.

sampleTracker.html line 903

Licensing changes:

Unlicensed VisageDetector will return complete results but has a delay of 2 seconds for each call of detectFacialFeatures method.

Unlicensed VisageFaceAnalyser has a delay of 2 seconds for each call of estimate function.


visage|SDK 7.4.2500

Changes in configuration files:

FFT, HT and Facial Features Tracker - Asymmetric.cfg configuration files have been removed. Two new configurations have been added to the Samples/data folder:

Changes in configuration file format:

If you want to update your existing configuration files, it is recommended to copy the values for these new parameters from the Facial Features Tracker - High.cfg configuration file supplied in this package. In all other cases, simply use the provided configuration files.

visage|SDK 7.3.1860

API changes:

An additional parameter has been added to the FaceDetector detectFeatures method. The minFaceSize parameter is used to specify a lower limit to face size (in pixels) in a given image:

this.detectFeatures = function(frameWidth, frameHeight, p_imageData, faceData);
changed to:
this.detectFeatures = function(frameWidth, frameHeight, p_imageData, faceData, minFaceSize);

Changes in configuration file format:

If you want to update your existing configuration files, it is recommended to copy the values for these new parameters from the FFT - HighPerformance.cfg configuration file supplied in this package. In all other cases, simply use the provided configuration files.

Data files changes:

Data file is located in the folder where the application html file is located (e.g. www/Samples/FaceTracker folder). Copy the file to appropriate folder in any existing applications.

Changes in 7.2.1286

This section covers all changes introduced in all releases since 7.1.744.

API changes:

Screen space gaze tracking API introduced.

1. Screen space gaze tracking API methods added to the Tracker class:

this.initOnlineGazeCalibration = function();
this.addGazeCalibrationPoint = function(x, y);
this.finalizeOnlineGazeCalibration = function();

2. Added two members related to screen space gaze tracking to FaceData container class:

this.screenSpaceGazePos = [];
this.screenSpaceGazeState;

Changes in configuration file format:

If you want to update your existing configuration files, it is recommended to copy the values for these new parameters from the FFT - HighPerformance.cfg configuration file supplied in this package. In all other cases, simply use the provided configuration files.

Sample changes:

New sample added: Gaze Tracker, demonstrates online screen space gaze tracking.

Other:

Tracking bug on high in plane rotations (z axis) fixed.

Changes in 7.1.744

This section covers all changes introduced in all releases since 7.1b4.678.

API changes:

this.drawResults = function(p_imageData) method added to the Detector class.

Changes in configuration file format:

Parameter bdts_trees_factor has been introduced. Increase the value to achieve faster detection but note that the quality of detection will lower.

Sample changes:

For unlicensed use:

Start and Stop button removed. Tracking will start automatically when tracker is ready and all files have been downloaded.

Other:

Firefox freezes when no license is provided bug fixed.

Changes in 7.1b4.678

This section covers all changes introduced in all releases since 7.1b1.579.

API changes:

1. FaceData container class for tracking and detection results is introduced. TrackingData class is deprecated.


2. Tracker.track() method is changed to accept FaceData parameter instead of TrackingData parameter. Interface is changed from:

 this.track = function(frameWidth,frameHeight,imageData,trackingData) 

to:

 this.track = function(frameWidth,frameHeight,imageData,faceData) 

3. Added 3 methods to the Tracker class:

 this.getIPD = function() 
 this.setIPD = function(IPD) 
 this.detectStrip = function(IPDPointer) 

4. Added Detector class with following methods:

 this.detectFeatures = function(frameWidth,frameHeight,imageData,faceData) 
 this.setConfigurationFile = function(configFilename) 
 this.initializeLicenseManager = function(licenseKey) 

Changes in configuration file format:

If you want to update your existing configuration files, it is recommended to copy the values for these new parameters from the Facial_Features_Tracker_-_Asymmetric.cfg configuration file supplied in this package. In all other cases, simply use the provided configuration files.

Data files changes: