Flipfly alarm tuning example
DEPLOYED
by morphcast
HTML
<head>
<title>MorphCast AI HTML5 SDK - Flipfly - FACE_COMPARE video mode - demo example</title>
</head>
<body>
<script src="https://ai-sdk.morphcast.com/dev/ai-sdk.js"></script>
<video id="video1" muted playsinline></video>
<div>
<button id="toggle">Pause</button>
</div><br />
<div><b>DEMO.<br /><br />
results: <div id="results">-</div>
</b>
</div>
</body>
JavaScript 1.7
/*
Creates a pre-built camera source
*/
const cameraSource = CY.createSource.fromCamera({
constraints: {
audio: false,
video: {
width: {
min: 600,
max: 800
}
}
},
video: document.getElementById("video1")
});
let getSDKModule;
CY.loader()
.licenseKey('f2fddf1df7c30cac7908d10246256efd264ce7aa32ec') // key for flipfly
.source(cameraSource)
.addModule(CY.modules().FACE_DETECTOR.name)
.addModule(CY.modules().FACE_COMPARE.name, {
region: 'eu-central-1',
identityPoolId: 'eu-central-1:8c27ebbc-a5ac-4e48-bd65-d18e1bc7c55c' // FaceCompareModule Unauth Identity
})
.maxInputFrameSize(640)
.load().then(({
start,
stop,
terminate,
getModule
}) => {
getSDKModule = getModule;
const toggle = document.querySelector('#toggle');
var playing = false;
toggle.textContent = 'START SDK';
toggle.onclick = function() {
if (playing) {
stop();
playing = false;
toggle.textContent = 'Resume';
} else {
start();
playing = true;
toggle.textContent = 'Pause';
}
};
setTimeout(() => {
stop();
terminate();
console.log('terminated');
alert('TERMINATED');
}, 200000);
}).catch((err) => {
console.error(err);
});
let lastFrame;
let framesWithFace = [];
window.addEventListener(CY.modules().FACE_DETECTOR.eventName, (evt) => {
//console.log('Face detector result', evt.detail);
if(evt.detail.rects.length === 1 && framesWithFace.length < 5) {
framesWithFace.push(lastFrame);
if (framesWithFace.length === 5) {
console.log(framesWithFace);
getSDKModule(CY.modules().FACE_COMPARE.name)
.compare(framesWithFace[0], framesWithFace[4], true)
.then((resp)=>{
if(resp.success) {
console.log('SUCCESS', resp.details.similarity);
downloadURI(toDataURL(framesWithFace[0]), "userFace.png");
} else {
...