@biopassid/face-sdk
Version:
<h1 align="center"> <br> <a href="http://www.biopassid.com"><img src="https://uploads-ssl.webflow.com/5ec3d6d0293839cf102a656a/63a0d4cec83bbddea006d27a_biopassamarelo.svg" alt="BioPass ID" width="200"></a> <br>
2 lines (1 loc) • 1.08 kB
JavaScript
import{detectAllFaces as h,loadTinyFaceDetectorModel as g,TinyFaceDetectorOptions as f,env as p}from"face-api.js";async function x(n="/models"){await g(n)}function u(){let n=typeof process<"u"&&process.versions&&process.versions.electron,s=typeof navigator=="object"&&navigator.userAgent.includes("Electron");return n||s}u()&&(console.log("Running in Electron"),p.monkeyPatch({createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img")}));async function D(n,s){let e={detections:0,position:{x:0,y:0,z:0},dimensions:{width:0,height:0},rect:{x:0,y:0,width:0,height:0}},o=await h(n,new f({scoreThreshold:s}));if(e.detections=o.length,o.length>0){let t=o[0].relativeBox,i={x:t.x+t.width/2,y:t.y+t.height/2},c=o[0].imageWidth<o[0].imageHeight,a=c?.4:.45,r=c?.6:.55,l=.5,m=.6,d=.4;e.rect=t,t.height>d?e.dimensions.height=0:e.dimensions.height=1,i.x<a?e.position.x=1:i.x>r?e.position.x=-1:e.position.x=0,i.y<l?e.position.y=1:i.y>m?e.position.y=-1:e.position.y=0}return e}export{D as faceDetectionAdapter,x as loadFaceDetectorModels};