expressed/v_dl/sdk/doc/VisageLivenessSmile.html

757 lines
14 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: VisageLivenessSmile</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: VisageLivenessSmile</h1>
<section>
<header>
<h2>
VisageLivenessSmile
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="VisageLivenessSmile"><span class="type-signature"></span>new VisageLivenessSmile<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
VisageLivenessSmile is a class that detects whether the person on the live video stream has smiled.
<br/><br/>
In order for action to be detected accurately, it is required that the face is frontal and facial expression is neutral for 30 frames before
performing smile.
During smile verification, face data from latest 30 frames ("face data sequence"), i.e. last 30 calls of
<a href="VisageLivenessSmile.html#update">update()</a> is used to verify head stability
(<a href="VisageLivenessSmile.html#STATE_WAIT_FOR_STABLE">STATE_WAIT_FOR_STABLE</a>). Each time the action is reset,
face data sequence will be cleared and the action will need to go through initializing
state (<a href="VisageLivenessSmile.html#STATE_ACTION_INITIALIZING">STATE_ACTION_INITIALIZING</a>) to store initial face data sequence.
Additionally, face data sequence is used as a baseline for neutral facial
Additionally, face data sequence is used as a baseline for neutral facial
expression when detecting if smile was performed. Algorithm presumes that the face will be neutral before performing smile.
<br/><br/>
Action should be updated for each frame in order to update its internal state. The action can be in one of the following states
(states are sequentially verified in each call of <a href="VisageLivenessSmile.html#update">update()</a> ):
<br/>
<ul>
<li><a href="VisageLivenessSmile.html#STATE_WAIT_FOR_FRONTAL">STATE_WAIT_FOR_FRONTAL</a> Face is not frontal. Action is reset.</li>
<li><a href="VisageLivenessSmile.html#STATE_ACTION_INITIALIZING">STATE_ACTION_INITIALIZING</a> Action is storing first set of face data sequence.
After each reset, action needs to reinitialize.</li>
<li><a href="VisageLivenessSmile.html#STATE_WAIT_FOR_STABLE">STATE_WAIT_FOR_STABLE</a> Head is not stable.
In order for action to be verified successfully, the user should keep his head still.</li>
<li><a href="VisageLivenessSmile.html#STATE_WAIT_FOR_ACTION">STATE_WAIT_FOR_ACTION</a> Data is processed in order to verify blink.</li>
<li><a href="VisageLivenessSmile.html#STATE_ACTION_VERIFIED">STATE_ACTION_VERIFIED</a> Action is verified.</li>
</ul>
<br/><br/>
</div>
<dl class="details">
</dl>
</dd>
</div>
<h3 class="subsection-title">Members</h3>
<dl>
<dt>
<h4 class="name" id="STATE_ACTION_VERIFIED"><span class="type-signature"></span>STATE_ACTION_VERIFIED<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
Describes action's state where the action was performed and verified.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
<dt class="tag-default">Default Value:</dt>
<dd class="tag-default"><ul class="dummy"><li>0</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="STATE_WAIT_FOR_FRONTAL"><span class="type-signature"></span>STATE_WAIT_FOR_FRONTAL<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
Describes action's state where face in the frame is not frontal (head rotations larger than 0.3 rad, ~17 degrees).
<br/><br/>
If this state is detected, the action will be reset.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
<dt class="tag-default">Default Value:</dt>
<dd class="tag-default"><ul class="dummy"><li>1</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="STATE_ACTION_INITIALIZING"><span class="type-signature"></span>STATE_ACTION_INITIALIZING<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
Describes action's state while the action is initializing, i.e. storing initial face data sequence.
After each reset, action needs to reinitialize.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
<dt class="tag-default">Default Value:</dt>
<dd class="tag-default"><ul class="dummy"><li>2</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="STATE_WAIT_FOR_STABLE"><span class="type-signature"></span>STATE_WAIT_FOR_STABLE<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
Describes action's state when user is not keeping his head still.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
<dt class="tag-default">Default Value:</dt>
<dd class="tag-default"><ul class="dummy"><li>3</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="STATE_WAIT_FOR_ACTION"><span class="type-signature"></span>STATE_WAIT_FOR_ACTION<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
Describes action's state when blink is trying to be verified.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
<dt class="tag-default">Default Value:</dt>
<dd class="tag-default"><ul class="dummy"><li>4</li></ul></dd>
</dl>
</dd>
</dl>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="update"><span class="type-signature"></span>update<span class="signature">(frameWidth, frameHeight, p_imageData, faceData)</span><span class="type-signature"> &rarr; {number}</span></h4>
</dt>
<dd>
<div class="description">
Method that should be called for each frame until the action is verified.
</br></br>
It should only be called when tracking status is TRACK_STAT_OK. Returns action's current state so appropriate message and/or image can be
displayed if user interaction is required (e.g. warning for user or instruction on how to perform smile).
<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>frameWidth</code></td>
<td class="type">
<span class="param-type">number</span>
</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="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="description last">Pointer to image pixel data, size of the array must correspond to frameWidth and frameHeight.</td>
</tr>
<tr>
<td class="name"><code>faceData</code></td>
<td class="type">
<span class="param-type"><a href="FaceData.html">FaceData</a></span>
</td>
<td class="description last"><a href="FaceData.html">FaceData</a> object filled with tracking results from a previous call of the <a href="VisageTracker.html#track">VisageTracker.track()</a>
or
<a href="VisageDetector.html#detectFeatures">VisageDetector.detectFeatures()</a> function.</td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
state - action's current state.
<br/>
State can be one of the following:
<ul>
<li><a href="VisageLivenessSmile.html#STATE_WAIT_FOR_FRONTAL">STATE_WAIT_FOR_FRONTAL</a> , <a href="VisageLivenessSmile.html#STATE_ACTION_INITIALIZING">STATE_ACTION_INITIALIZING</a>, <a href="VisageLivenessSmile.html#STATE_WAIT_FOR_STABLE">STATE_WAIT_FOR_STABLE</a>, <a href="VisageLivenessSmile.html#STATE_WAIT_FOR_ACTION">STATE_WAIT_FOR_ACTION</a>, <a href="VisageLivenessSmile.html#STATE_ACTION_VERIFIED">STATE_ACTION_VERIFIED</a>. </li>
</ul>
or -1 if frame is not valid (frameWidth and frameHeight less than 1 or p_imageData is null).
</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">
Resets action.
<br/><br/>
Clears face data sequence.
<br/><br/>
</div>
<dl class="details">
</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:30 GMT-0000 (GMT)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>