expressed/v_dl/sdk/doc/VisageGazeTracker.html

1873 lines
40 KiB
HTML
Raw Permalink Normal View History

2023-11-20 16:39:21 +00:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: VisageGazeTracker</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: VisageGazeTracker</h1>
<section>
<header>
<h2>
VisageGazeTracker
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="VisageGazeTracker"><span class="type-signature"></span>new VisageGazeTracker<span class="signature">(configurationName)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
VisageGazeTracker is an upgrade of Tracker which extends Tracker functionality adding screen space gaze tracking on top of facial features/head tracking.
<br/><br/>
<b>Note</b>: After the end of use VisageGazeTracker object needs to be deleted to release the allocated memory.
Example:
<pre class="prettyprint source"><code>
&lt;script>
m_Tracker = new VisageModule.VisageGazeTracker("Facial Features Tracker.cfg");
...
m_Tracker.delete();
&lt;/script>
</code></pre>
<br/><br/>
For information about using facial/head tracking refer to <a href="VisageTracker.html">VisageTracker</a>.
<br/><br/>
<b>Screen Space Gaze Tracking</b>
<br/><br/>
Screen space gaze tracking feature estimates gaze position (the location on the screen where the user is looking) in normalized screen coordinates.
Screen space gaze tracking works in two phases: calibration and estimation.
<br/><br/>
In the calibration phase, the system is calibrated for gaze estimation by passing the calibration data to the tracker. Calibration data consists of series of points displayed on screen.
The user looks at the calibration point. During the calibration phase tracker collects calibration points and matching tracking data for each point.
After all calibration points have been passed to the tracker, the tracker performs calibration of gaze tracking system and switches to estimation phase.
<br/><br/>
In the estimation phase the tracker estimates gaze location in screen space coordinates and returns the screen space gaze position in <a href="ScreenSpaceGazeData.html#x">ScreenSpaceGazeData.x</a> and
<a href="ScreenSpaceGazeData.html#y">ScreenSpaceGazeData.y</a> members of the <a href="FaceData.html#gazeData">FaceData.gazeData</a> object for each frame.
<br/><br/>
Screen space gaze tracking in HTML5 works only in online mode (some other versions of visage|SDK also include offline mode).
Online mode is used when tracking in real time from camera. It is initialized by calling <a href="VisageGazeTracker.html#initOnlineGazeCalibration">initOnlineGazeCalibration()</a> method.
This method prepares the tracker for real time gaze tracking calibration.
Each calibration point in normalized screen coordinates is passed to the tracker by calling <a href="VisageGazeTracker.html#addGazeCalibrationPoint">addGazeCalibrationPoint()</a>.
It is expected that the point is displayed on the screen before calling the method and that the user looks at calibration points during the calibration.
Application is responsible for reading or generating the calibration data, displaying it on screen and synchronization with the tracker.
It is required to manually notify the tracker that calibration is finished (once all calibration points are used) by calling <a href="VisageGazeTracker.html#finalizeOnlineGazeCalibration">finalizeOnlineGazeCalibration()</a>
method. Once this method is called the tracker performs calibration of screen space gaze tracking system using provided calibration data and tracking data collected during the calibration process.
<br/><br/>
After the system is calibrated, the estimation phase starts. Estimations are returned as part of <a href="FaceData.html">FaceData</a> objects returned by calling track() method.
Specifically location of screen space gaze point is returned in <a href="FaceData.html#gazeData">gazeData.x</a> and <a href="FaceData.html#gazeData">gazeData.y</a>
while the state of estimator is returned in <a href="FaceData.html#gazeData">gazeData.inState</a>.
<br/><br/>
<b> Gaze tracking quality</b>
Gaze tracking quality is available on both frame and session level.
Gaze quality is returned as a value from 0 to 1, where 0 is the worst and 1 is the best quality.
<br/><br/>
Gaze quality is returned as a part of <a href="FaceData.html">FaceData</a> object.
The frame level quality is returned as quality parameter in <a href="FaceData.html#gazeData">gazeData.quality</a> object.
The session level quality is returned as <a href="FaceData.html#gazeQuality">gazeQuality</a> parameter in <a href="FaceData.html">FaceData</a> object. All frames passed to the tracker are considered part of a session,
meaning that the quality is recalculated for each new frame processed by the tracker.
<br/><br/>
<b> Note: </b> VisageTracker' <a href="VisageTracker.html#track">track</a> function tracks multiple faces and facial features however VisageGazeTracker estimates gaze for one face only (parameter <b>maxFaces</b> is not used).
<br/><br/>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>configurationName</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last">the name of the tracker configuration file (.cfg; default configuration files are provided in lib folder;
for further details see <a href="doc/VisageTracker Configuration Manual.pdf">VisageTracker Configuration Manual</a>).</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul>
<li><a href="VisageGazeTracker.html#initOnlineGazeCalibration">initOnlineGazeCalibration()</a>, <a href="VisageGazeTracker.html#addGazeCalibrationPoint">addGazeCalibrationPoint()</a>, <a href="VisageGazeTracker.html#finalizeOnlineGazeCalibration">finalizeOnlineGazeCalibration()</a></li>
</ul>
</dd>
</dl>
</dd>
</div>
<h3 class="subsection-title">Extends</h3>
<ul>
<li><a href="VisageTracker.html">VisageTracker</a></li>
</ul>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="initOnlineGazeCalibration"><span class="type-signature"></span>initOnlineGazeCalibration<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Initializes online screen space gaze tracking. Online mode is used when tracking from camera.
<br/><br/>
This method starts the calibration phase of screen space gaze tracking. In the calibration phase the application displays the calibration data on the screen and passes it to the tracker using<a href="VisageGazeTracker.html#addGazeCalibrationPoint">addGazeCalibrationPoint()</a>.
Application is responsible for finishing the calibration phase by calling<a href="VisageGazeTracker.html#finalizeOnlineGazeCalibration">finalizeOnlineGazeCalibration()</a>.
</div>
<dl class="details">
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul>
<li><a href="VisageGazeTracker.html#addGazeCalibrationPoint">addGazeCalibrationPoint()</a>, <a href="VisageGazeTracker.html#finalizeOnlineGazeCalibration">finalizeOnlineGazeCalibration()</a></li>
</ul>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="addGazeCalibrationPoint"><span class="type-signature"></span>addGazeCalibrationPoint<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Passes a calibration point to the tracker in online screen space gaze tracking mode.
<br/><br/>
This method is used in online gaze tracking mode to pass the position of the currently displayed calibration point to the tracker. This method should be called once for each calibration point, after the calibration point is displayed on the screen.
Position of the calibration point is in normalized screen coordinates. The origin of the coordinate system is in the upper left corner of the screen; the lower right corner has coordinates (1, 1).
<br/><br/>
NOTE:
Application is responsible for synchronization between the frequency of passing calibration points to the tracker and the frequency at which the tracker processes video frames.
If calibration points are passed faster than the tracker works, it may happen that two (or more) calibration points are passed while the tracker is processing a single video frame.
In such case, if the difference in speed is large enough, it is possible that the tracking data for the processed frame does not match to the calibration point. This reduces the quality of calibration and, consequently, estimation.
<br/><br/>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>x</code></td>
<td class="type">
<span class="param-type">float</span>
</td>
<td class="description last">x coordinate of the calibration point in normalized screen coordinates</td>
</tr>
<tr>
<td class="name"><code>y</code></td>
<td class="type">
<span class="param-type">float</span>
</td>
<td class="description last">y coordinate of the calibration point in normalized screen coordinates</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul>
<li><a href="FaceData.html#gazeData">gazeData.x</a>, <a href="FaceData.html#gazeData">gazeData.y</a>,<a href="FaceData.html#gazeData">gazeData.inState</a>, <a href="VisageGazeTracker.html#initOnlineGazeCalibration">initOnlineGazeCalibration()</a>, <a href="VisageGazeTracker.html#finalizeOnlineGazeCalibration">finalizeOnlineGazeCalibration()</a></li>
</ul>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="finalizeOnlineGazeCalibration"><span class="type-signature"></span>finalizeOnlineGazeCalibration<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Finalizes online screen space gaze tracking calibration.
<br/><br/>
This method should be called after all calibration data is displayed and passed to the tracker. After this method is called the tracker performs calibration of gaze tracking system using
the provided calibration data and the tracking data collected during the calibration phase.
<br/><br/>
After the calibration is finished, screen space gaze position is obtained as a part of FaceData object passed to the track() function
<br/><br/>
The FaceData object contains gaze position stored in <a href="FaceData.html#gazeData">gazeData.x</a> and <a href="FaceData.html#gazeData">gazeData.y</a>.
</div>
<dl class="details">
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul>
<li><a href="VisageGazeTracker.html#initOnlineGazeCalibration">initOnlineGazeCalibration()</a>, <a href="FaceData.html#gazeData">gazeData</a>, <a href="FaceData.html">FaceData</a>, <a href="VisageGazeTracker.html#addGazeCalibrationPoint">addGazeCalibrationPoint()</a></li>
</ul>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="track"><span class="type-signature"></span>track<span class="signature">(frameWidth, frameHeight, p_imageData, faceDataArray, <span class="optional">format</span>, <span class="optional">origin</span>, <span class="optional">widthStep</span>, <span class="optional">timeStamp</span>, <span class="optional">maxFaces</span>)</span><span class="type-signature"> &rarr; {Int32Array}</span></h4>
</dt>
<dd>
<div class="description">
Performs face tracking in the given image and returns tracking results and status.
This function should be called repeatedly on a series of images in order to perform continuous tracking.
<br/><br/>
If the tracker needs to be initialized, this will be done automatically before tracking is performed on the given image.
Initialization means loading the tracker configuration file, required data files and allocating various data buffers to the given image size.
This operation may take several seconds.
This happens in the following cases:
<br/><br/>
<ul>
<li>In the first frame (first call to <a href="VisageTracker.html#track">VisageTracker.track()</a> function).<br/>
</li><br/>
<li>When frameWidth or frameHeight are changed, i.e. when they are different from the ones used in the last call
to <a href="VisageTracker.html#track">VisageTracker.track()</a> function.<br/>
</li><br/>
<li>If setTrackerConfigurationFile() function was called after the last call
to {@link VisageTracker#track|VisageTracker.track()} function.<br/>
</li><br/>
<li>When maxFaces is changed, i.e. when it its different from the one used in the last call to <a href="VisageTracker.html#track">track()</a> function.<br/>
</li><br/>
</ul>
<br/>
Sample usage:
<br/>
<pre class="prettyprint source"><code>
var m_Tracker,
faceData,
faceDataArray,
frameWidth,
frameHeight;
function initialize(){
//Initialize licensing with the obtained license key file
//It is imperative that initializeLicenseManager method is called before the constructor is called in order for licensing to work
VisageModule.initializeLicenseManager("xxx-xxx-xxx-xxx-xxx-xxx-xxx-xxx-xxx-xxx-xxx.vlc");
//Instantiate the tracker object
m_Tracker = new VisageModule.VisageTracker("../../lib/Facial Features Tracker.cfg");
//Instantiate the face data object
faceDataArray = new VisageModule.FaceDataVector();
faceData = new VisageModule.FaceData();
faceDataArray.push_back(faceData);
frameWidth = canvas.width;
frameHeight = canvas.height;
//Allocate memory for image data
ppixels = VisageModule._malloc(mWidth*mHeight*4);
//Create a view to the memory
pixels = new Uint8ClampedArray(VisageModule.HEAPU8.buffer, ppixels, mWidth*mHeight*4);
}
function onEveryFrame(){
//Obtain the image pixel data
var imageData = canvas.getContext('2d').getImageData(0,0, mWidth, mHeight).data;
//...Fill pixels with image data
//Call the tracking method of the tracker object with 4 parameters: image width, image height, image pixel data and face data object instance
var trackerStatus = [];
trackerStatus = m_Tracker.track(
frameWidth, frameHeight, ppixels, faceDataArray,
VisageModule.VisageTrackerImageFormat.VISAGE_FRAMEGRABBER_FMT_RGBA.value,
VisageModule.VisageTrackerOrigin.VISAGE_FRAMEGRABBER_ORIGIN_TL.value
);
//Based on the tracker return value do some action with the return values located in face data object instance
if (trackerStatus.get(0) === VisageModule.VisageTrackerStatus.TRACK_STAT_OK.value){
drawSomething(faceDataArray.get(0));
}
}
</code></pre>
<br/><br/>
The tracker results are returned in faceDataArray.
<br/>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>frameWidth</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last">Width of the frame.</td>
</tr>
<tr>
<td class="name"><code>frameHeight</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last">Height of the frame.</td>
</tr>
<tr>
<td class="name"><code>p_imageData</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last">Pointer to image pixel data, size of the array must correspond to frameWidth and frameHeight.</td>
</tr>
<tr>
<td class="name"><code>faceDataArray</code></td>
<td class="type">
<span class="param-type"><a href="FaceDataVector.html">FaceDataVector</a></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last">Array of <a href="FaceData.html">FaceData</a> objects that will receive the tracking results. The size of the faceDataArray is equal to maxFaces parameter.</td>
</tr>
<tr>
<td class="name"><code>format</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
VisageModule.VISAGE_FRAMEGRABBER_FMT_RGB
</td>
<td class="description last">Format of input images passed in p_imageData. It can not change during tracking. Format can be one of the following:<br/>
- VisageModule.VISAGE_FRAMEGRABBER_FMT_RGB: each pixel of the image is represented by three bytes representing red, green and blue channels, respectively.<br/>
- VisageModule.VISAGE_FRAMEGRABBER_FMT_BGR: each pixel of the image is represented by three bytes representing blue, green and red channels, respectively.<br/>
- VisageModule.VISAGE_FRAMEGRABBER_FMT_RGBA: each pixel of the image is represented by four bytes representing red, green, blue and alpha (ignored) channels, respectively.<br/>
- VisageModule.VISAGE_FRAMEGRABBER_FMT_BGRA: each pixel of the image is represented by four bytes representing blue, green, red and alpha (ignored) channels, respectively.<br/>
- VisageModule.VISAGE_FRAMEGRABBER_FMT_LUMINANCE: each pixel of the image is represented by one byte representing the luminance (gray level) of the image.</td>
</tr>
<tr>
<td class="name"><code>origin</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
VisageModule.VISAGE_FRAMEGRABBER_ORIGIN_TL
</td>
<td class="description last">No longer used, therefore, passed value will not have an effect on this function. However, the parameter is left to avoid API changes. <br/></td>
</tr>
<tr>
<td class="name"><code>widthStep</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
0
</td>
<td class="description last">Width of the image data buffer, in bytes.</td>
</tr>
<tr>
<td class="name"><code>timeStamp</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
-1
</td>
<td class="description last">The timestamp of the the input frame in milliseconds. The passed value will be returned with the tracking data for that frame (<a href="FaceData.html#timeStamp">FaceData.timeStamp</a>).
Alternatively, the value of -1 can be passed, in which case the tracker will return time, in milliseconds, measured from the moment when tracking started.</td>
</tr>
<tr>
<td class="name"><code>maxFaces</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
1
</td>
<td class="description last">Maximum number of faces that will be tracked. Increasing this parameter will reduce tracking speed.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="VisageTracker.html#track">VisageTracker.track</a>
</li></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
array of tracking statuses for each of the tracked faces - see <a href="FaceData.html">FaceData</a> for more details
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Int32Array</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="setTrackerConfiguration"><span class="type-signature"></span>setTrackerConfiguration<span class="signature">(trackerConfigFile, <span class="optional">au_fitting_disabled</span>, <span class="optional">mesh_fitting_disabled</span>)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Sets configuration file name.
<br/><br/>
The tracker configuration file name and other configuration parameters are set and will be used for the next tracking session
(i.e. when <a href="VisageTracker.html#track">track()</a>) is called). Default configuration files
(.cfg) are provided in the <i>www/lib</i> folder.
Please refer to the <a href="doc/VisageTracker Configuration Manual.pdf">VisageTracker Configuration Manual</a> for further details on using the configuration files and all configurable options.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>trackerConfigFile</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last">Name of the tracker configuration file.</td>
</tr>
<tr>
<td class="name"><code>au_fitting_disabled</code></td>
<td class="type">
<span class="param-type">boolean</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
false
</td>
<td class="description last">Disables the use of the 3D model used to estimate action units (au_fitting_model configuration parameter).</td>
</tr>
<tr>
<td class="name"><code>mesh_fitting_disabled</code></td>
<td class="type">
<span class="param-type">boolean</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
false
</td>
<td class="description last">Disables the use of the fine 3D mesh (mesh_fitting_model configuration parameter).
<br/><br/></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="VisageTracker.html#setTrackerConfiguration">VisageTracker.setTrackerConfiguration</a>
</li></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="setConfiguration"><span class="type-signature"></span>setConfiguration<span class="signature">(configuration)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Sets tracking configuration.
<br/><br/>
The tracker configuration object is set and will be used for the next tracking session (i.e. when <a href="VisageTracker.html#track">track()</a>) is called).
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>configuration</code></td>
<td class="type">
<span class="param-type"><a href="VisageConfiguration.html">VisageConfiguration</a></span>
</td>
<td class="description last">configuration object obtained by calling getTrackerConfiguration() function.
<br/><br/></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="VisageTracker.html#setConfiguration">VisageTracker.setConfiguration</a>
</li></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="getConfiguration"><span class="type-signature"></span>getConfiguration<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="VisageConfiguration.html">VisageConfiguration</a>}</span></h4>
</dt>
<dd>
<div class="description">
Returns tracking configuration.
<br/><br/>
</div>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="VisageTracker.html#getConfiguration">VisageTracker.getConfiguration</a>
</li></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
- VisageConfiguration object with the values currently used by tracker.
<br/><br/>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="VisageConfiguration.html">VisageConfiguration</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="setIPD"><span class="type-signature"></span>setIPD<span class="signature">(IPD)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Sets the inter pupillary distance.
<br/><br/>
Inter pupillary distance (IPD) is used by the tracker to estimate the distance of the face from the camera.
By default, IPD is set to 0.065 (65 millimetres) which is considered average. If the actual IPD of the tracked person is known, this function can be used to set the IPD.
As a result, the calculated distance from the camera will be accurate (as long as the camera focal length is also set correctly).
This is important for applications that require accurate distance. For example, in Augmented Reality applications
objects such as virtual eyeglasses can be rendered at appropriate distance and will thus appear in the image with real-life scale.
<br/><br/>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>IPD</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">The inter pupillary distance (IPD) in meters.
<br/><br/></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="VisageTracker.html#setIPD">VisageTracker.setIPD</a>
</li></dd>
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul>
<li><a href="VisageTracker.html#getIPD">getIPD()</a></li>
</ul>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="getIPD"><span class="type-signature"></span>getIPD<span class="signature">()</span><span class="type-signature"> &rarr; {number}</span></h4>
</dt>
<dd>
<div class="description">
Returns the current inter pupillary distance (IPD) setting.
<br/><br/>
IPD setting is used by the tracker to estimate the distance of the face from the camera. See setIPD() for further details.
</div>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="VisageTracker.html#getIPD">VisageTracker.getIPD</a>
</li></dd>
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul>
<li><a href="VisageTracker.html#setIPD">setIPD()</a></li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
current setting of inter pupillary distance (IPD) in meters.
<br/><br/>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">number</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="reset"><span class="type-signature"></span>reset<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Reset tracking.
<br/><br/>
Resets the tracker. Tracker will reinitialise with the next call of <a href="VisageTracker.html#track">track()</a> function.
<br/><br/>
</div>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="VisageTracker.html#reset">VisageTracker.reset</a>
</li></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="stop"><span class="type-signature"></span>stop<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="VisageTracker.html#stop">VisageTracker.stop</a>
</li></dd>
<dt class="important tag-deprecated">Deprecated:</dt><dd><ul class="dummy"><li>Stops the tracking.
<br/><br/></li><ul></dd>
</dl>
</dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Index</a></h2><h3>Modules</h3><ul><li><a href="module-VisageTrackerUnityPlugin.html">VisageTrackerUnityPlugin</a></li><li><a href="module-VisageAnalyserUnityPlugin.html">VisageAnalyserUnityPlugin</a></li></ul><h3>Classes</h3><ul><li><a href="FaceData.html">FaceData</a></li><li><a href="ScreenSpaceGazeData.html">ScreenSpaceGazeData</a></li><li><a href="VectorFloat.html">VectorFloat</a></li><li><a href="VectorShort.html">VectorShort</a></li><li><a href="VectorString.html">VectorString</a></li><li><a href="VisageFaceAnalyser.html">VisageFaceAnalyser</a></li><li><a href="AnalysisData.html">AnalysisData</a></li><li><a href="FeaturePoint.html">FeaturePoint</a></li><li><a href="FDP.html">FDP</a></li><li><a href="VisageDetector.html">VisageDetector</a></li><li><a href="FaceDataVector.html">FaceDataVector</a></li><li><a href="VSRectVector.html">VSRectVector</a></li><li><a href="VSRect.html">VSRect</a></li><li><a href="VisageGazeTracker.html">VisageGazeTracker</a></li><li><a href="VisageFaceRecognition.html">VisageFaceRecognition</a></li><li><a href="VisageTracker.html">VisageTracker</a></li><li><a href="VisageConfiguration.html">VisageConfiguration</a></li><li><a href="VisageLivenessBlink.html">VisageLivenessBlink</a></li><li><a href="VisageLivenessSmile.html">VisageLivenessSmile</a></li><li><a href="VisageLivenessBrowRaise.html">VisageLivenessBrowRaise</a></li><li><a href="VisageAR.html">VisageAR</a></li></ul><h3>Global</h3><ul><li><a href="global.html#FP_START_GROUP_INDEX">FP_START_GROUP_INDEX</a></li><li><a href="global.html#FP_END_GROUP_INDEX">FP_END_GROUP_INDEX</a></li><li><a href="global.html#FP_NUMBER_OF_GROUPS">FP_NUMBER_OF_GROUPS</a></li><li><a href="global.html#initializeLicenseManager">initializeLicenseManager</a></li><li><a href="global.html#VisageTrackerStatus">VisageTrackerStatus</a></li><li><a href="global.html#VisageTrackerImageFormat">VisageTrackerImageFormat</a></li><li><a href="global.html#VisageTrackerOrigin">VisageTrackerOrigin</a></li><li><a href="global.html#getSDKVersion">getSDKVersion</a></li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.0</a> on Sat Jul 29 2023 01:38:29 GMT-0000 (GMT)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>