This commit is contained in:
core 2023-11-20 11:39:21 -05:00
commit 103b1aa99a
Signed by: core
GPG key ID: FDBF740DADDCEECF
395 changed files with 523625 additions and 0 deletions

8
.idea/.gitignore generated vendored Normal file
View file

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

11
.idea/expressed.iml generated Normal file
View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="EMPTY_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
.idea/misc.xml generated Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MarkdownSettingsMigration">
<option name="stateVersion" value="1" />
</component>
</project>

8
.idea/modules.xml generated Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/expressed.iml" filepath="$PROJECT_DIR$/.idea/expressed.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml generated Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

1
bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

63
ep_visage/learn.html Normal file
View file

@ -0,0 +1,63 @@
<!doctype html>
<html lang="en" data-bs-theme="dark">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title id="title">ExpressED | Loading Practice</title>
<link rel="stylesheet" href="/bootstrap.min.css" />
</head>
<body>
<div class="h-100 d-flex align-items-center justify-content-center text-center">
<div>
<div class="container">
<div class="row">
<div class="col">
<h1 id="title2">ExpressED: Loading Practice</h1>
<p id="bdata">Please wait, while we load this emotion</p>
</div>
</div>
<div class="row">
<div class="col">
<a href="/learn.html" class="btn btn-secondary p-5 w-100">Go Back</a>
</div>
<div class="col">
<a id="link" href="/v_dl/sdk/www/Samples/ShowcaseDemo/ShowcaseDemo.html?v=1" class="btn btn-success p-5 w-100">Practice!</a>
</div>
</div>
</div>
</div>
</div>
<script>
const params = new URLSearchParams(window.location.search);
if (!params.has("v")) {
window.location.href = "/";
}
let emotions = ["Anger", "Disgust", "Fear", "Happiness", "Sadness", "Surprise", "Neutral"];
let emotion_descriptions = [
"Anger description",
"Disgust description",
"Fear description",
"<b>Smile</b><br>" +
"The person's lips curve upward, forming a friendly and joyful smile.<br>" +
"<b>Bright Eyes</b><br>" +
" Happy eyes often appear bright and lively. The muscles around the eyes may crinkle, forming crow's feet or laugh lines at the corners, indicating genuine happiness. The eyes may also be slightly narrowed, emphasizing the warmth and sincerity of the smile.<br>" +
"<b>Relaxed Brow</b><br>" +
"The forehead is usually smooth and free from tension or furrowing when a person is happy. There are no signs of stress or worry, and the eyebrows may be slightly raised.",
"Sadness description",
"Surprise description",
"Neutral description"
];
document.getElementById("title2").innerText = "ExpressED: Learning " + emotions[Number(params.get("v"))];
document.getElementById("title").innerText = "ExpressED | Learning " + emotions[Number(params.get("v"))];
document.getElementById("bdata").innerHTML = emotion_descriptions[Number(params.get("v"))];
document.getElementById("link").href = "/v_dl/sdk/www/Samples/ShowcaseDemo/ShowcaseDemo.html?v=" + params.get("v");
</script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>
</body>
</html>

33
index.html Normal file
View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html lang="en" data-bs-theme="dark">
<head>
<meta charset="UTF-8">
<title>ExpressED - Unlocking Expressions For The Visually Impaired</title>
<link rel="stylesheet" href="/bootstrap.min.css" />
</head>
<body >
<div class="h-100 d-flex align-items-center justify-content-center">
<div>
<h1>ExpressED - Unlocking Expressions For The Visually Impaired</h1>
<div class="container">
<div class="row">
<div class="col">
<a href="/learn.html" class="btn btn-primary p-5 w-100">Learn!</a>
</div>
<div class="col">
<a href="/practice.html" class="btn btn-primary p-5 w-100">Practice!</a>
</div>
<div class="col">
<a href="/master.html" class="btn btn-primary p-5 w-100">Master!</a>
</div>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"
integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL"
crossorigin="anonymous"></script>
</body>
</html>

51
learn.html Normal file
View file

@ -0,0 +1,51 @@
<!doctype html>
<html data-bs-theme="dark">
<head>
<meta charset="utf-8" />
<title>ExpressED</title>
<link rel="stylesheet" href="/bootstrap.min.css" />
</head>
<body>
<div class="h-100 d-flex align-items-center justify-content-center">
<div>
<h1>Welcome to ExpressED!</h1>
<h2>What emotion would you like to learn about today?</h2>
<div class="container">
<div class="row">
<div class="col">
<a href="/ep_visage/learn.html?v=0" class="btn btn-primary p-5 w-100">Anger</a>
</div>
<div class="col">
<a href="/ep_visage/learn.html?v=1" class="btn btn-primary p-5 w-100">Disgust</a>
</div>
<div class="col">
<a href="/ep_visage/learn.html?v=2" class="btn btn-primary p-5 w-100">Fear</a>
</div>
</div>
<div class="row mt-3">
<div class="col">
<a href="/ep_visage/learn.html?v=3" class="btn btn-primary p-5 w-100">Happiness</a>
</div>
<div class="col">
<a href="/ep_visage/learn.html?v=4" class="btn btn-primary p-5 w-100">Sadness</a>
</div>
<div class="col">
<a href="/ep_visage/learn.html?v=5" class="btn btn-primary p-5 w-100">Surprise</a>
</div>
</div>
<div class="row mt-3">
<div class="col">
<a href="/" class="btn btn-secondary p-5 w-100">Go Back</a>
</div>
<div class="col">
<a href="/ep_visage/learn.html?v=6" class="btn btn-primary p-5 w-100">Neutral</a>
</div>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>
</body>
</html>

50
practice.html Normal file
View file

@ -0,0 +1,50 @@
<!doctype html>
<html data-bs-theme="dark">
<head>
<meta charset="utf-8" />
<title>ExpressED</title>
<link rel="stylesheet" href="/bootstrap.min.css" />
</head>
<body>
<div class="h-100 d-flex align-items-center justify-content-center">
<div>
<h1>Welcome to ExpressED!</h1>
<h2>What emotion would you like to practice today?</h2>
<div class="container">
<div class="row">
<div class="col">
<a href="/v_dl/sdk/www/Samples/ShowcaseDemo/ShowcaseDemo.html?v=0" class="btn btn-primary p-5 w-100">Anger</a>
</div>
<div class="col">
<a href="/v_dl/sdk/www/Samples/ShowcaseDemo/ShowcaseDemo.html?v=1" class="btn btn-primary p-5 w-100">Disgust</a>
</div>
<div class="col">
<a href="/v_dl/sdk/www/Samples/ShowcaseDemo/ShowcaseDemo.html?v=2" class="btn btn-primary p-5 w-100">Fear</a>
</div>
</div>
<div class="row mt-3">
<div class="col">
<a href="/v_dl/sdk/www/Samples/ShowcaseDemo/ShowcaseDemo.html?v=3" class="btn btn-primary p-5 w-100">Happiness</a>
</div>
<div class="col">
<a href="/v_dl/sdk/www/Samples/ShowcaseDemo/ShowcaseDemo.html?v=4" class="btn btn-primary p-5 w-100">Sadness</a>
</div>
<div class="col">
<a href="/v_dl/sdk/www/Samples/ShowcaseDemo/ShowcaseDemo.html?v=5" class="btn btn-primary p-5 w-100">Surprise</a>
</div>
</div>
<div class="row mt-3">
<div class="col">
<a href="/" class="btn btn-secondary p-5 w-100">Go Back</a>
</div>
<div class="col">
<a href="/v_dl/sdk/www/Samples/ShowcaseDemo/ShowcaseDemo.html?v=6" class="btn btn-primary p-5 w-100">Neutral</a>
</div>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>
</body>
</html>

View file

@ -0,0 +1,42 @@
# Visage Technologies AB
#
# License Key File
#
# This license key file is issued by Visage Technologies AB, Linkoping, Sweden
# under the terms of Visage Technologies Licensing Agreement. It is strictly
# prohibited to modify this file in any way.
#
# This license key file can be used only by the Licensee named below
# to distribute the Licensed Application named below. It is strictly
# prohibited to use this license key file for any other purpose,
# and specifically for distributing any application other
# than the Licensed Application named below.
# Furthermore, it is strictly prohibited for any party other
# than the Licensee named below to distribute this license key file.
#
#
#
# Licensed application name: Evaluation - no commercial use permitted
#
# Licensee: Cannon Middle School - 5801 Poplar Tent Road, Concord, NC 28027
#
# This License Key is issued for: visage|SDK FULL V9.1
# Operating system(s): HTML5
# License Type: Evaluation
# Application ID(*): *
# Number of installations/licenses: 10
# Number of concurrent users: -
# Licensed URL (for web license): y2spv2.coredoes.dev
# Date of issuing: 14.11.2023.
# Expiry date of the License Key: 14.12.2023.
# Automatic license registration: Always if online
# License Key: 063-172-163-996-391-498-880-879-796-980-878
#
#
#
#
#(*) Application ID means:
# App's bundle identifier on iOS.
# Application's package name on Android.
# Application's bundle identifier on Mac OS X.
# On Windows, Application ID is freely assigned by the application developer.

View file

@ -0,0 +1,42 @@
# Visage Technologies AB
#
# License Key File
#
# This license key file is issued by Visage Technologies AB, Linkoping, Sweden
# under the terms of Visage Technologies Licensing Agreement. It is strictly
# prohibited to modify this file in any way.
#
# This license key file can be used only by the Licensee named below
# to distribute the Licensed Application named below. It is strictly
# prohibited to use this license key file for any other purpose,
# and specifically for distributing any application other
# than the Licensed Application named below.
# Furthermore, it is strictly prohibited for any party other
# than the Licensee named below to distribute this license key file.
#
#
#
# Licensed application name: Evaluation - no commercial use permitted
#
# Licensee: Cannon Middle School - 5801 Poplar Tent Road, Concord, NC 28027
#
# This License Key is issued for: visage|SDK FULL V9.1
# Operating system(s): HTML5
# License Type: Evaluation
# Application ID(*): *
# Number of installations/licenses: 10
# Number of concurrent users: -
# Licensed URL (for web license): localhost
# Date of issuing: 14.11.2023.
# Expiry date of the License Key: 14.12.2023.
# Automatic license registration: Always if online
# License Key: 289-098-022-858-883-076-746-061-783-146-760
#
#
#
#
#(*) Application ID means:
# App's bundle identifier on iOS.
# Application's package name on Android.
# Application's bundle identifier on Mac OS X.
# On Windows, Application ID is freely assigned by the application developer.

View file

@ -0,0 +1,42 @@
# Visage Technologies AB
#
# License Key File
#
# This license key file is issued by Visage Technologies AB, Linkoping, Sweden
# under the terms of Visage Technologies Licensing Agreement. It is strictly
# prohibited to modify this file in any way.
#
# This license key file can be used only by the Licensee named below
# to distribute the Licensed Application named below. It is strictly
# prohibited to use this license key file for any other purpose,
# and specifically for distributing any application other
# than the Licensed Application named below.
# Furthermore, it is strictly prohibited for any party other
# than the Licensee named below to distribute this license key file.
#
#
#
# Licensed application name: Evaluation - no commercial use permitted
#
# Licensee: Cannon Middle School - 5801 Poplar Tent Road, Concord, NC 28027
#
# This License Key is issued for: visage|SDK FULL V9.1
# Operating system(s): HTML5
# License Type: Evaluation
# Application ID(*): *
# Number of installations/licenses: 10
# Number of concurrent users: -
# Licensed URL (for web license): cdn.coredoes.dev
# Date of issuing: 14.11.2023.
# Expiry date of the License Key: 14.12.2023.
# Automatic license registration: Always if online
# License Key: 383-192-941-979-373-458-660-171-653-160-671
#
#
#
#
#(*) Application ID means:
# App's bundle identifier on iOS.
# Application's package name on Android.
# Application's bundle identifier on Mac OS X.
# On Windows, Application ID is freely assigned by the application developer.

View file

@ -0,0 +1,42 @@
# Visage Technologies AB
#
# License Key File
#
# This license key file is issued by Visage Technologies AB, Linkoping, Sweden
# under the terms of Visage Technologies Licensing Agreement. It is strictly
# prohibited to modify this file in any way.
#
# This license key file can be used only by the Licensee named below
# to distribute the Licensed Application named below. It is strictly
# prohibited to use this license key file for any other purpose,
# and specifically for distributing any application other
# than the Licensed Application named below.
# Furthermore, it is strictly prohibited for any party other
# than the Licensee named below to distribute this license key file.
#
#
#
# Licensed application name: Evaluation - no commercial use permitted
#
# Licensee: Cannon Middle School - 5801 Poplar Tent Road, Concord, NC 28027
#
# This License Key is issued for: visage|SDK FULL V9.1
# Operating system(s): HTML5
# License Type: Evaluation
# Application ID(*): *
# Number of installations/licenses: 10
# Number of concurrent users: -
# Licensed URL (for web license): cdn.e3t.cc
# Date of issuing: 14.11.2023.
# Expiry date of the License Key: 14.12.2023.
# Automatic license registration: Always if online
# License Key: 695-404-032-262-884-678-752-402-455-252-704
#
#
#
#
#(*) Application ID means:
# App's bundle identifier on iOS.
# Application's package name on Android.
# Application's bundle identifier on Mac OS X.
# On Windows, Application ID is freely assigned by the application developer.

View file

@ -0,0 +1,24 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>visage|SDK documentation</title>
</head>
<body onload="redirect()">
<noscript>
visage|SDK has detected that Javascript is disabled in your browser.
Menu functionality will not work correctly if JavaScript is disabled.
It is strongly recommended to enable JavaScript.
In Internet Explorer, you can choose Tools > Internet Options > Advanced, then check
"Allow active contents to run in files on My Computer" in the Security section.
<br><br>To proceed to the documentation main page now, please
go to your visage|SDK installation folder and open the Documentation.html file in the root folder of your visage|SDK HTML5 package.
</noscript>
<script type="text/javascript">
function redirect()
{
window.location = "doc/doc.html";
}
</script>
</body>
</html>

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,643 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: AnalysisData</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: AnalysisData</h1>
<section>
<header>
<h2>
AnalysisData
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="AnalysisData"><span class="type-signature"></span>new AnalysisData<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
AnalysisData structure, used as a container for all face analysis results.
This structure is passed as a parameter to the <a href="VisageFaceAnalyser.html#analyseImage">VisageFaceAnalyser.analyseImage()</a> or <a href="VisageFaceAnalyser.html#analyseStream">VisageFaceAnalyser.analyseStream()</a> method. Both methods store analysis results into the structure.
<br/><br/>
If an operation was not performed (turned off via options) or failed, the respective validity boolean will return false and estimations will contain the default value.
<br/><br/>
</div>
<dl class="details">
</dl>
</dd>
</div>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="getAge"><span class="type-signature"></span>getAge<span class="signature">()</span><span class="type-signature"> &rarr; {number}</span></h4>
</dt>
<dd>
<div class="description">
get the age value from AnalysisData
</div>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
result of age estimation
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">number</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="getAgeValid"><span class="type-signature"></span>getAgeValid<span class="signature">()</span><span class="type-signature"> &rarr; {number}</span></h4>
</dt>
<dd>
<div class="description">
check if age value is valid
</div>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
boolean flag returning whether age estimation has been successful or not
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">number</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="getGender"><span class="type-signature"></span>getGender<span class="signature">()</span><span class="type-signature"> &rarr; {number}</span></h4>
</dt>
<dd>
<div class="description">
get the gender value from AnalysisData
</div>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
1 for MALE gender <br> 0 for FEMALE gender
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">number</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="getGenderValid"><span class="type-signature"></span>getGenderValid<span class="signature">()</span><span class="type-signature"> &rarr; {number}</span></h4>
</dt>
<dd>
<div class="description">
check if gender value is valid
</div>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
boolean flag returning whether gender estimation has been successful or not
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">number</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="getEmotionProbabilities"><span class="type-signature"></span>getEmotionProbabilities<span class="signature">()</span><span class="type-signature"> &rarr; {Array}</span></h4>
</dt>
<dd>
<div class="description">
get an array representing emotions from AnalysisData
</div>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
result of emotion estimation, See: <a href="global.html#VFAEmotionIndices">VFAEmotionIndices</a>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Array</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="getEmotionsValid"><span class="type-signature"></span>getEmotionsValid<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
check if emotion value is valid (if the calculation was valid)
</div>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
boolean flag returning whether emotion estimation has been successful or not
</div>
</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:28 GMT-0000 (GMT)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>

2628
v_dl/sdk/doc/FDP.html Normal file

File diff suppressed because it is too large Load diff

3923
v_dl/sdk/doc/FaceData.html Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,483 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: FaceDataVector</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: FaceDataVector</h1>
<section>
<header>
<h2>
FaceDataVector
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="FaceDataVector"><span class="type-signature"></span>new FaceDataVector<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Custom container class for <a href="FaceData.html">FaceData</a> objects.
<br/><br/>
Used in conjunction with <a href="VisageDetector.html#detectFeatures">VisageDetector.detectFeatures</a> function.
<br/><br/>
Sample usage:
<br/>
<pre class="prettyprint source"><code>
function onDetect()
{
//Instantiate an FaceDataVector instance where detection results will be stored
faceDataArray = new VisageModule.FaceDataVector();
//Specify the maximum number of faces that will be detected in the image
maxFaces = 10;
for (var i = 0; i < maxFaces; ++i)
{
faceData = new VisageModule.FaceData();
faceDataArray.push_back(faceData);
}
//Detect face and facial features in an image
var numberOfFaces = m_Detector.detectFeatures(frameWidth, frameHeight, ppixels, faceDataArray, maxFaces);
//Fetch and draw something on the first returned face
if (numberOfFaces > 0)
{
drawSomething(faceDataArray.get(0));
}
}
</code></pre>
<br/>
</div>
<dl class="details">
</dl>
</dd>
</div>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="push_back"><span class="type-signature"></span>push_back<span class="signature">(faceData)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Add existing <a href="FaceData.html">FaceData</a> object.
<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>faceData</code></td>
<td class="type">
<span class="param-type"><a href="FaceData.html">FaceData</a></span>
</td>
<td class="description last">FaceData object to be added.</td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="get"><span class="type-signature"></span>get<span class="signature">(index)</span><span class="type-signature"> &rarr; {<a href="FaceData.html">FaceData</a>}</span></h4>
</dt>
<dd>
<div class="description">
Get <a href="FaceData.html">FaceData</a> object from the vector specified by index parameter.
<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>index</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">position of the FaceData object to be fetched.</td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
FaceData object located on the location specified by index parameter
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="FaceData.html">FaceData</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="delete"><span class="type-signature"></span>delete<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Release the memory allocated to the FaceDataVector object.
<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:29 GMT-0000 (GMT)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>

View file

@ -0,0 +1,741 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: FeaturePoint</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: FeaturePoint</h1>
<section>
<header>
<h2>
FeaturePoint
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="FeaturePoint"><span class="type-signature"></span>new FeaturePoint<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Feature point.
<br/><br/>
This struct represents a feature point definition. If the feature points are defined on a 3D model, each feature point maps to a vertex of the model.
The following information is specified per each feature point:
- vertex position (an array of 3 floats)
- vertex identifier (mesh identifier and vertex index), if the feature point is defined on a 3D model
- normalization factors (useful for algorithms that normalize the face, such as facial motion cloning)
<br/><br/>
<b>Note</b>: After the end of use FeaturePoint object needs to be deleted to release the allocated memory. Example:
<pre class="prettyprint source"><code>
&lt;script>
FeaturePoint = new VisageModule.FeaturePoint();
...
FeaturePoint.delete();
&lt;/script>
</code></pre>
<br/><br/>
</div>
<dl class="details">
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul>
<li><a href="FDP.html">FDP</a></li>
</ul>
</dd>
</dl>
</dd>
</div>
<h3 class="subsection-title">Members</h3>
<dl>
<dt>
<h4 class="name" id="defined"><span class="type-signature"></span>defined<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
Set with regards to the 3D model used. More information about 3D models used in tracking can be found in <a href="VisageTracker Configuration Manual.pdf">VisageTracker Configuration Manual</a>.
<br/><br/>
Set to 1 if feature point is defined in the corresponding <i>.fdp</i> file. Otherwise, the feature point should not be used.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="detected"><span class="type-signature"></span>detected<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
Set with regards to the tracking algorithm used.
<br/><br/>
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.
<br/><br/>
NOTE: This information is returned exclusively within FaceData::featurePoints2D.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="quality"><span class="type-signature"></span>quality<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
Information about the accuracy of the tracking algorithm for this feature point in the current frame.
<br/><br/>
Quality is returned as a value from 0 to 1, where 0 is the worst and 1 is the best quality. If -1 is returned, quality is not estimated.
<br/><br/>
This information is returned for all feature points' groups except for group 10 (ears) for which the returned value will always be -1.
<br/><br/>
NOTE: This information is returned exclusively within FaceData::featurePoints2D.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="surf"><span class="type-signature"></span>surf<span class="type-signature"> :string</span></h4>
</dt>
<dd>
<div class="description">
Identifier of the polygon mesh (surface) to which the vertex corresponding to the feature point belongs. If
the feature points are not defined on a 3D model (e.g. if they represent points in a 2D image), this is not used.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">string</span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="vert"><span class="type-signature"></span>vert<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
Identifier of the vertex to which the vertex corresponding to the feature point belongs. This is the
vertex index within the polygon mesh (surface) identified by <a href="FeaturePoint.html#surf">surf</a>. If
the feature points are not defined on a 3D model (e.g. if they represent points in a 2D image), this is not used.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
</dl>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="getPos"><span class="type-signature"></span>getPos<span class="signature">(position)</span><span class="type-signature"> &rarr; {number}</span></h4>
</dt>
<dd>
<div class="description">
Get one of the feature point positions (x,y,z).
<br/><br/>
x, y, z coordinates of the feature point. If the feature point is 2-dimensional (e.g. feature points in an image)
the z coordinate is ignored.
</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>position</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">specifies desired position to get of the pos array, 0 for x, 1 fox y or 2 for z coordinate.</td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">number</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="setPos"><span class="type-signature"></span>setPos<span class="signature">(position, value)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Set one of the feature point positions (x,y,z).
<br/><br/>
x, y, z coordinates of the feature point. If the feature point is 2-dimensional (e.g. feature points in an image)
the z coordinate is ignored.
</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>position</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">specifies desired position to set of the pos array, 0 for x, 1 fox y or 2 for z coordinate.</td>
</tr>
<tr>
<td class="name"><code>value</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">coordinate value.</td>
</tr>
</tbody>
</table>
<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:28 GMT-0000 (GMT)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>

View file

@ -0,0 +1,451 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: ScreenSpaceGazeData</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: ScreenSpaceGazeData</h1>
<section>
<header>
<h2>
ScreenSpaceGazeData
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="ScreenSpaceGazeData"><span class="type-signature"></span>new ScreenSpaceGazeData<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
ScreenSpaceGazeData is a container structure used to hold the gaze point location, current state of screen space gaze tracking system and gaze tracking estimation quality parameters for the current frame.
This class is used both to store the calibration points during the calibration phase and the estimation results during the estimation phase.
</div>
<dl class="details">
</dl>
</dd>
</div>
<h3 class="subsection-title">Members</h3>
<dl>
<dt>
<h4 class="name" id="index"><span class="type-signature"></span>index<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
Index of the video frame.
In online mode the frame index corresponds to the sum of the number of calibration frames passed to the tracker and the number of frames processed in the estimation phase.
<br/><br/>
In offline mode the index is the frame number in the processed video sequence.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="x"><span class="type-signature"></span>x<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
X coordinate of screen space gaze normalized to screen width.
<br/><br/>
0 corresponds to the left-most point and 1 to the right-most points of the screen. Defaults to 0.5.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="y"><span class="type-signature"></span>y<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
Y coordinate of screen space gaze normalized to screen height.
<br/><br/>
0 corresponds to the top-most point and 1 to the bottom-most points of the screen. Defaults to 0.5.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="inState"><span class="type-signature"></span>inState<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
Flag indicating the state of the gaze estimator for the current frame.
If inState is 0 the estimator is off and position is default.
<br/><br/>
If inState is 1 the estimator is calibrating and returns calibration data for the current frame.
<br/><br/>
If inState is 2 the estimator is estimating and returns the estimated screen space gaze coordinates.
<br/><br/>
If inState is -1 the estimator is calibrating but the tracking/screen space gaze estimation failed for the current frame (position is default)
<br/><br/>
If inState is -2 the estimator is estimating but the tracking/screen space gaze estimation failed for the current frame (position is default)
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="quality"><span class="type-signature"></span>quality<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
The frame level gaze tracking quality.
<br/><br/>
Quality is returned as a value from 0 to 1, where 0 is the worst and 1 is the best quality. The quality is 0 also when the gaze tracking is off or calibrating.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<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:28 GMT-0000 (GMT)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>

379
v_dl/sdk/doc/VSRect.html Normal file
View file

@ -0,0 +1,379 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: VSRect</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: VSRect</h1>
<section>
<header>
<h2>
VSRect
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="VSRect"><span class="type-signature"></span>new VSRect<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Custom class used for storing bounding box information.
<br/><br/>
Used in conjunction with <a href="VisageDetector.html#detectFaces">VisageDetector.detectFaces</a> function.
<br/><br/>
<br/>
</div>
<dl class="details">
</dl>
</dd>
</div>
<h3 class="subsection-title">Members</h3>
<dl>
<dt>
<h4 class="name" id="x"><span class="type-signature"></span>x<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
X coordinate of the top left corner of the rectangle.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="y"><span class="type-signature"></span>y<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
Y coordinate of the top left corner of the rectangle.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="width"><span class="type-signature"></span>width<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
Rectangle width.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="height"><span class="type-signature"></span>height<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
Rectangle height.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<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:29 GMT-0000 (GMT)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>

View file

@ -0,0 +1,483 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: VSRectVector</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: VSRectVector</h1>
<section>
<header>
<h2>
VSRectVector
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="VSRectVector"><span class="type-signature"></span>new VSRectVector<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Custom container class for <a href="VSRect.html">VSRect</a> objects.
<br/><br/>
Used in conjunction with <a href="VisageDetector.html#detectFaces">VisageDetector.detectFaces</a> function.
<br/><br/>
Sample usage:
<br/>
<pre class="prettyprint source"><code>
function onDetect()
{
//Instantiate an VSRectVector instance where detection results will be stored
boundingBoxArray = new VisageModule.VSRectVector();
//Specify the maximum number of faces that will be detected in the image
maxFaces = 10;
for (var i = 0; i < maxFaces; ++i)
{
boundingBox = new VisageModule.VSRect();
boundingBoxArray.push_back(boundingBox);
}
//Detect face and facial features in an image
var numberOfFaces = m_Detector.detectFaces(frameWidth, frameHeight, ppixels, boundingBoxArray, maxFaces);
//Fetch and draw bounding box on the first returned face
if (numberOfFaces > 0)
{
drawBoundingBox(boundingBoxArray.get(0));
}
}
</code></pre>
<br/>
</div>
<dl class="details">
</dl>
</dd>
</div>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="push_back"><span class="type-signature"></span>push_back<span class="signature">(vsrect)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Add existing <a href="VSRect.html">VSRect</a> object.
<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>vsrect</code></td>
<td class="type">
<span class="param-type"><a href="VSRect.html">VSRect</a></span>
</td>
<td class="description last">VSRect object to be added.</td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="get"><span class="type-signature"></span>get<span class="signature">(index)</span><span class="type-signature"> &rarr; {<a href="VSRect.html">VSRect</a>}</span></h4>
</dt>
<dd>
<div class="description">
Get <a href="VSRect.html">VSRect</a> object from the vector specified by index parameter.
<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>index</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">position of the VSRect object to be fetched.</td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
VSRect object located on the location specified by index parameter
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="VSRect.html">VSRect</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="delete"><span class="type-signature"></span>delete<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Release the memory allocated to the VSRectVector object.
<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:29 GMT-0000 (GMT)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>

View file

@ -0,0 +1,484 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: VectorFloat</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: VectorFloat</h1>
<section>
<header>
<h2>
VectorFloat
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="VectorFloat"><span class="type-signature"></span>new VectorFloat<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Custom container class for numbers.
<br/><br/>
For example, used in conjunction with VisageFaceAnalayser.estimateEmotion() function.
<br/><br/>
Sample usage:
<br/>
<pre class="prettyprint source"><code>
function onEstimateEmotion()
{
//create new empty container object
emotions = new VisageModule.VectorFloat();
//pass the empty container to be filed by the estimateEmotion function
estimatedEmotion = visageFaceAnalyser.estimateEmotion(mWidth, mHeight, ppixels, faceDataArray.get(0), emotions);
if (estimatedEmotion == 1)
{
//fetch values from the container object
var anger = emotions.get(0);
var disgust = emotions.get(1);
var fear = emotions.get(2);
var happiness = emotions.get(3);
var sadness = emotions.get(4);
var surprise = emotions.get(5);
var neutral = emotions.get(6);
}
//Clean-up
emotions.delete();
}
</code></pre>
<br/>
</div>
<dl class="details">
</dl>
</dd>
</div>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="push_back"><span class="type-signature"></span>push_back<span class="signature">(number)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Add number to vector.
<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>number</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">number to be added.</td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="get"><span class="type-signature"></span>get<span class="signature">(index)</span><span class="type-signature"> &rarr; {number}</span></h4>
</dt>
<dd>
<div class="description">
Get number from the vector specified by index parameter.
<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>index</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">position of the number in the vector.</td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
number located on the location specified by index parameter
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">number</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="delete"><span class="type-signature"></span>delete<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Release the memory allocated to the VectorFloat object.
<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:28 GMT-0000 (GMT)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>

View file

@ -0,0 +1,485 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: VectorShort</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: VectorShort</h1>
<section>
<header>
<h2>
VectorShort
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="VectorShort"><span class="type-signature"></span>new VectorShort<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Custom container class for numbers.
<br/><br/>
Sample usage:
<br/>
<pre class="prettyprint source"><code>
function onTrack()
{
//Call track on a frame
trackerReturnState = m_Tracker.track(
mWidth, mHeight, ppixels, faceDataArray,
VisageModule.VisageTrackerImageFormat.VISAGE_FRAMEGRABBER_FMT_RGBA.value,
VisageModule.VisageTrackerOrigin.VISAGE_FRAMEGRABBER_ORIGIN_TL.value);
//Test result
if (trackerReturnState.get(0)===VisageModule.VisageTrackerStatus.TRACK_STAT_OK.value)
{
// construct a VectorShort object to pass to the extractDescriptor method
var descriptor = new VisageModule.VectorShort();
//
// call extractDescriptor and pass the faceData input parameter, image data and information and a short vector to be populated
var success = m_rec.extractDescriptor(faceDataArray.get(0), mWidth, mHeight, ppixels, descriptor);
if (success)
{
var first = descriptor.get(0);
}
// when done using descriptor clear memory
descriptor.delete();
}
}
</code></pre>
<br/>
</div>
<dl class="details">
</dl>
</dd>
</div>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="push_back"><span class="type-signature"></span>push_back<span class="signature">(number)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Add number to vector.
<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>number</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">number to be added.</td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="get"><span class="type-signature"></span>get<span class="signature">(index)</span><span class="type-signature"> &rarr; {number}</span></h4>
</dt>
<dd>
<div class="description">
Get number from the vector specified by index parameter.
<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>index</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">position of the number in the vector.</td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
number located on the location specified by index parameter
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">number</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="delete"><span class="type-signature"></span>delete<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Release the memory allocated to the VectorShort object.
<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:28 GMT-0000 (GMT)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>

View file

@ -0,0 +1,484 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: VectorString</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: VectorString</h1>
<section>
<header>
<h2>
VectorString
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="VectorString"><span class="type-signature"></span>new VectorString<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Custom container class for strings.
<br/><br/>
Sample usage:
<br/>
<pre class="prettyprint source"><code>
function onTrack()
{
//Call track on a frame
trackerReturnState = m_Tracker.track(
mWidth, mHeight, ppixels, faceDataArray,
VisageModule.VisageTrackerImageFormat.VISAGE_FRAMEGRABBER_FMT_RGBA.value,
VisageModule.VisageTrackerOrigin.VISAGE_FRAMEGRABBER_ORIGIN_TL.value);
//Test result
if (trackerReturnState.get(0)===VisageModule.VisageTrackerStatus.TRACK_STAT_OK.value)
{
//Read action unit names
var auNames = [];
var faceData = faceDataArray.get(0);
var actionUnitNames = faceData.getActionUnitsNames();
for (var i = 0; i < faceData.actionUnitCount; ++i)
{
auNames.push(actionUnitNames.get(i));
}
//Clean-up
actionUnitNames.delete();
}
}
</code></pre>
<br/>
</div>
<dl class="details">
</dl>
</dd>
</div>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="push_back"><span class="type-signature"></span>push_back<span class="signature">(string)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Add string to vector.
<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>string</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last">string to be added.</td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="get"><span class="type-signature"></span>get<span class="signature">(index)</span><span class="type-signature"> &rarr; {string}</span></h4>
</dt>
<dd>
<div class="description">
Get string from the vector specified by index parameter.
<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>index</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">position of the number in the vector.</td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
string located on the location specified by index parameter
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">string</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="delete"><span class="type-signature"></span>delete<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Release the memory allocated to the VectorString object.
<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:28 GMT-0000 (GMT)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>

525
v_dl/sdk/doc/VisageAR.html Normal file
View file

@ -0,0 +1,525 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: VisageAR</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: VisageAR</h1>
<section>
<header>
<h2>
VisageAR
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="VisageAR"><span class="type-signature"></span>new VisageAR<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
VisageAR <br/><br/>
</div>
<dl class="details">
</dl>
</dd>
</div>
<h3 class="subsection-title">Members</h3>
<dl>
<dt>
<h4 class="name" id="initialize"><span class="type-signature"></span>initialize<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Initializes Visage AR and sets up rendering and tracking. The video resolution is used for the canvas resolution.
</div>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="loadOccluder"><span class="type-signature"></span>loadOccluder<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Loads the occlusion mask in OBJ format and its material in MTL format. <br><br
</div>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="loadObject"><span class="type-signature"></span>loadObject<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Loads the 3D object and adds it to the main scene to be rendered from the given URL and makes it active. The object should be in OBJ format and the material should be in MTL format. The MTL file should have the same name as the OBJ file. See the <a href="eyewear_model_guide.html">modeling guide</a> on how to prepare models for use with VisageAR.
</div>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="clear"><span class="type-signature"></span>clear<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Clears the scene, 3D objects, pixels buffer and canvas for displaying the frame
</div>
<dl class="details">
</dl>
</dd>
</dl>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="clearOccluder"><span class="type-signature"></span>clearOccluder<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Clears the current active occlusion mask and removes it from the occlusion scene.
</div>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="startTracking"><span class="type-signature"></span>startTracking<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Starts tracking the face and displaying (rendering) any 3D objects loaded using loadObject() function. Object is overlayed on the face.
</div>
<dl class="details">
</dl>
</dd>
<dt>
<h4 class="name" id="stopTracking"><span class="type-signature"></span>stopTracking<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Stops tracking.
</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>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,914 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: VisageFaceAnalyser</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: VisageFaceAnalyser</h1>
<section>
<header>
<h2>
VisageFaceAnalyser
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="VisageFaceAnalyser"><span class="type-signature"></span>new VisageFaceAnalyser<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
VisageFaceAnalyser contains face analysis algorithms capable of estimating age, gender, and emotion from facial images.
<br/><br/>
Following types of analysis can be used:
<br/><br/>
<table>
<tr><td width="250"><b>ANALYSIS TYPE</b></td><td width="200"><b>FUNCTION</b></td></tr>
<tr><td>image analysis</td><td><a href="VisageFaceAnalyser.html#analyseImage">analyseImage()</a></td></tr>
<tr><td>image stream (video) analysis</td><td><a href="VisageFaceAnalyser.html#analyseStream">analyseStream()</a></td></tr>
</table>
<br/><br/>
Age, gender and emotion analysis is based on the <a href="FaceData.html">FaceData</a> obtained from the
<a href="VisageTracker.html">VisageTracker</a> or <a href="VisageDetector.html">VisageDetector</a> API.
<br/><br/>
<b>Note</b>: After the end of use VisageFaceAnalyser object needs to be deleted to release the allocated memory. Example:
<pre class="prettyprint source"><code>
&lt;script>
m_FaceAnalyser = new VisageModule.VisageFaceAnalyser();
...
m_FaceAnalyser.delete();
&lt;/script>
</code></pre>
<br/><br/>
<h5>Dependencies</h5>
<br/>
VisageFaceAnalyser requires algorithm data file, neural network configuration file and license key file
to be preloaded to virtual file system. Data and neural network configuration file can be found in the <i>www/lib</i> folder.
<br/><br/>
<h6>Data files</h6>
An external loader script <b>visageAnalysisData.js</b> is provided for preloading the <b>visageAnalysisData.data</b> file.
<br/><br/>
<u id="changeLocation"><i>Changing the location of data files</u></i>
<br/>
By default, loader scripts expect the <b>.data</b> files to be in the same location as <b>the application's main html file</b>,
while <b>visageSDK.wasm</b> is expected to be in the same location as <b>visageSDK.js</b> library file.
However, location of the <i>.data</i> and <i>.wasm</i> files can be changed.
<br/>
The code example below shows how to implement <i>locateFile</i> function and how to set it as an attribute to the VisageModule object.
<br/><br/>
<h6>Configuration file and license key files</h6>
Configuration file and the license key files are preloaded using VisageModule's API function assigned to the <i>preRun</i> attribute:
<pre><code>
VisageModule.FS_createPreloadedFile(parent, name, url, canRead, canWrite)
</code></pre>
where <i>parent</i> and <i>name</i> are the path on the virtual file system and the name of the file, respectively.
</br></br>
</br></br>
<h5>visage|SDK initialization order</h5>
<br/>
The order in which the VisageModule is declared and library and data scripts are included is important.
<br/>
<ul>
<li> First, <b>VisageModule</b> object is declared
<ul>
<li> including preloading of the configuration files, license files and possibly, changing the location of data files
</ul>
<li> then <b>visageSDK.js</b> library script is included and
<li> last, <b>visageAnalysisData.js</b> external data loader script is included
</ul>
<br/><br/>
Sample usage - changing data files location and script including order:
<br/>
<pre class="prettyprint source"><code>
&lt;script>
licenseName = "lic_web.vlc"
licenseURL = "lic_web.vlc"
var locateFile = function(dataFileName) {var relativePath = "../../lib/" + dataFileName; return relativePath};
VisageModule = {
locateFile: locateFile,
preRun: [function() {
VisageModule.FS_createPreloadedFile('/', 'NeuralNet.cfg', "../../lib/NeuralNet.cfg", true, false);
VisageModule.FS_createPreloadedFile('/', 'Head Tracker.cfg', "../../lib/Head Tracker.cfg", true, false);
VisageModule.FS_createPreloadedFile('/', licenseName, licenseURL, true, false, function(){ }, function(){ alert("Loading License Failed!") });
}],
onRuntimeInitialized: onModuleInitialized
}
&lt;/script>
&lt;script src="../../lib/visageSDK.js"> &lt;/script>
&lt;script src="../../lib/visageAnalysisData.js"> &lt;/script>
</code></pre>
<br/>
<br/><br/>
</div>
<dl class="details">
</dl>
</dd>
</div>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="analyseImage"><span class="type-signature"></span>analyseImage<span class="signature">(frameWidth, frameHeight, p_imageData, faceData, options, results)</span><span class="type-signature"> &rarr; {<a href="global.html#VFAReturnCode">VFAReturnCode</a>}</span></h4>
</dt>
<dd>
<div class="description">
Performs face analysis on a given image.
<br/><br/>
This function is primarily intended for performing face analysis on a single image, or consecutive unrelated images.
As such, it outputs raw, unfiltered estimation data without smoothing or averaging.
<br/><br/>
<b>Note:</b> Prior to using this function, it is necessary to
process the facial image or video frame using <a href="VisageTracker.html">VisageTracker</a>
or <a href="VisageDetector.html">VisageDetector</a> and pass the frame and obtained data to this function.
This function estimates gender, age, and/or emotions for the last image processed by <a href="VisageTracker.html#track">VisageTracker.track()</a> or <a href="VisageDetector.html#detectFeatures">VisageDetector.detectFeatures()</a> function.
</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">FaceData 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>
<tr>
<td class="name"><code>options</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">Bitwise combination of <a href="global.html#VFAFlags">VFAFlags</a> which determines the analysis operations to be performed.</td>
</tr>
<tr>
<td class="name"><code>results</code></td>
<td class="type">
<span class="param-type"><a href="AnalysisData.html">AnalysisData</a></span>
</td>
<td class="description last">AnalysisData struct containing success flags for individual operations and their assorted results</td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Value indicating the status of the performed analysis.
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="global.html#VFAReturnCode">VFAReturnCode</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="analyseStream"><span class="type-signature"></span>analyseStream<span class="signature">(frameWidth, frameHeight, p_imageData, faceData, options, results, faceIndex)</span><span class="type-signature"> &rarr; {<a href="global.html#VFAReturnCode">VFAReturnCode</a>}</span></h4>
</dt>
<dd>
<div class="description">
Performs face analysis on a given image stream (video).
<br/><br/>
This function is primarily intended for performing face analysis on a continuous stream of related frames, such as a video or camera feed.
Sampling face analysis data from multiple frames can increase estimation accuracy by averaging the result over multiple frames.
Internally, the suitability of frames chosen for analysis is continually evaluted based on head pose and overall tracking quality.
This guarantees that the analysis buffer is always working with the best available frames, ensuring highest possible estimation accuracy.
<br/><br/>
<b>Important note:</b><br>
If <i>options</i> parameter is changed between subsequent calls to analyseStream(),
the internal state will be reset and previously collected analysis data will be lost.
For optimal results <i>options</i> parameter should remain constant during single stream analysis session.
<br/><br/>
<b>Note:</b> Prior to using this function, it is necessary to process the facial image or video frame using
<a href="VisageTracker.html">VisageTracker</a> and pass the frame and obtained data to this function.
This function estimates gender, age, and/or emotions for the last image processed by <a href="VisageTracker.html#track">VisageTracker.track()</a>
function.
</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">FaceData object filled with tracking results from a previous call of the <a href="VisageTracker.html#track">VisageTracker.track()</a> function.</td>
</tr>
<tr>
<td class="name"><code>options</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">Bitwise combination of <a href="global.html#VFAFlags">VFAFlags</a> which determines the analysis operations to be performed.</td>
</tr>
<tr>
<td class="name"><code>results</code></td>
<td class="type">
<span class="param-type"><a href="AnalysisData.html">AnalysisData</a></span>
</td>
<td class="description last">AnalysisData struct containing success flags for individual operations and their assorted results</td>
</tr>
<tr>
<td class="name"><code>faceIndex</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last">Index of the face for which analysis should be performed.</td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Value indicating the status of the performed analysis.
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="global.html#VFAReturnCode">VFAReturnCode</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="resetStreamAnalysis"><span class="type-signature"></span>resetStreamAnalysis<span class="signature">(<span class="optional">faceIndex</span>)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Resets collected face analysis data.
Erases age, gender and emotion data collected up to this point.
If an index parameter is specified, only data for that specific face is erased.
If no parameter is specified, data for all faces is erased.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>faceIndex</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">Index of the face for which analysis data should be reset</td>
</tr>
</tbody>
</table>
<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:28 GMT-0000 (GMT)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,753 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: VisageLivenessBlink</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: VisageLivenessBlink</h1>
<section>
<header>
<h2>
VisageLivenessBlink
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="VisageLivenessBlink"><span class="type-signature"></span>new VisageLivenessBlink<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
VisageLivenessBlink is a class that detects whether the person on the live video stream has blinked.
<br/><br/>
In order for action to be detected accurately, it is required that the face is frontal for 30 frames before performing blink.
During blink verification, face data from latest 30 frames ("face data sequence"), i.e. last 30 calls of
<a href="VisageLivenessBlink.html#update">update()</a> is used to verify head stability
(<a href="VisageLivenessBlink.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="VisageLivenessBlink.html#STATE_ACTION_INITIALIZING">STATE_ACTION_INITIALIZING</a>) to store initial face data sequence.
<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="VisageLivenessBlink.html#update">update()</a>):
<br/>
<ul>
<li><a href="VisageLivenessBlink.html#STATE_WAIT_FOR_FRONTAL">STATE_WAIT_FOR_FRONTAL</a> Face is not frontal. Action is reset.</li>
<li><a href="VisageLivenessBlink.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="VisageLivenessBlink.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="VisageLivenessBlink.html#STATE_WAIT_FOR_ACTION">STATE_WAIT_FOR_ACTION</a> Data is processed in order to verify blink.</li>
<li><a href="VisageLivenessBlink.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 blink).
<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="VisageLivenessBlink.html#STATE_WAIT_FOR_FRONTAL">STATE_WAIT_FOR_FRONTAL</a> , <a href="VisageLivenessBlink.html#STATE_ACTION_INITIALIZING">STATE_ACTION_INITIALIZING</a>, <a href="VisageLivenessBlink.html#STATE_WAIT_FOR_STABLE">STATE_WAIT_FOR_STABLE</a>, <a href="VisageLivenessBlink.html#STATE_WAIT_FOR_ACTION">STATE_WAIT_FOR_ACTION</a>, <a href="VisageLivenessBlink.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>

View file

@ -0,0 +1,757 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: VisageLivenessBrowRaise</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: VisageLivenessBrowRaise</h1>
<section>
<header>
<h2>
VisageLivenessBrowRaise
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="VisageLivenessBrowRaise"><span class="type-signature"></span>new VisageLivenessBrowRaise<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
VisageLivenessBrowRaise is a class that detects whether the person on the live video stream has raised his/hers eyebrows.
<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 eyebrows raise.
During eyebrows raise verification, face data from latest 30 frames ("face data sequence"), i.e. last 30 calls of
<a href="VisageLivenessBrowRaise.html#update">update()</a> is used to verify head
stability (<a href="VisageLivenessBrowRaise.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="VisageLivenessBrowRaise.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 expression when detecting if eyebrows raise was performed. Algorithm presumes that the face will be neutral before performing
eyebrows raise.
<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="VisageLivenessBrowRaise.html#update">update()</a>):
<br/>
<ul>
<li><a href="VisageLivenessBrowRaise.html#STATE_WAIT_FOR_FRONTAL">STATE_WAIT_FOR_FRONTAL</a> Face is not frontal. Action is reset.</li>
<li><a href="VisageLivenessBrowRaise.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="VisageLivenessBrowRaise.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="VisageLivenessBrowRaise.html#STATE_WAIT_FOR_ACTION">STATE_WAIT_FOR_ACTION</a> Data is processed in order to verify blink.</li>
<li><a href="VisageLivenessBrowRaise.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 blink).
<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="VisageLivenessBrowRaise.html#STATE_WAIT_FOR_FRONTAL">STATE_WAIT_FOR_FRONTAL</a> , <a href="VisageLivenessBrowRaise.html#STATE_ACTION_INITIALIZING">STATE_ACTION_INITIALIZING</a>, <a href="VisageLivenessBrowRaise.html#STATE_WAIT_FOR_STABLE">STATE_WAIT_FOR_STABLE</a>, <a href="VisageLivenessBrowRaise.html#STATE_WAIT_FOR_ACTION">STATE_WAIT_FOR_ACTION</a>, <a href="VisageLivenessBrowRaise.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>

View file

@ -0,0 +1,757 @@
<!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>