diff --git a/.build.json b/.build.json index cffdaffb..2c667798 100644 --- a/.build.json +++ b/.build.json @@ -152,11 +152,11 @@ "external": ["*/human.esm.js"] }, { - "name": "demo/facerecognition", + "name": "demo/faceid", "platform": "browser", "format": "esm", - "input": "demo/facerecognition/index.ts", - "output": "demo/facerecognition/index.js", + "input": "demo/faceid/index.ts", + "output": "demo/faceid/index.js", "sourcemap": true, "external": ["*/human.esm.js"] } diff --git a/.eslintrc.json b/.eslintrc.json index e125a983..56d41d9e 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -29,7 +29,7 @@ "assets", "demo/helpers/*.js", "demo/typescript/*.js", - "demo/facerecognition/*.js", + "demo/faceid/*.js", "dist", "media", "models", @@ -49,6 +49,7 @@ "func-names": "off", "guard-for-in": "off", "import/extensions": "off", + "import/named": "off", "import/no-extraneous-dependencies": "off", "import/no-named-as-default": "off", "import/no-unresolved": "off", diff --git a/CHANGELOG.md b/CHANGELOG.md index 5dd820d8..5abe371d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,8 +9,9 @@ ## Changelog -### **HEAD -> main** 2021/11/09 mandic00@live.com +### **HEAD -> main** 2021/11/10 mandic00@live.com +- auto tensor shape and channels handling - disable use of path2d in node - add liveness module and facerecognition demo - initial version of facerecognition demo diff --git a/README.md b/README.md index 9f55ac4c..61249172 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ JavaScript module using TensorFlow/JS Machine Learning library - **Full** [[*Live*]](https://vladmandic.github.io/human/demo/index.html) [[*Details*]](https://github.com/vladmandic/human/tree/main/demo): Main browser demo app that showcases all Human capabilities - **Simple** [[*Live*]](https://vladmandic.github.io/human/demo/typescript/index.html) [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/typescript): Simple demo in WebCam processing demo in TypeScript - **Face Match** [[*Live*]](https://vladmandic.github.io/human/demo/facematch/index.html) [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/facematch): Extract faces from images, calculates face descriptors and simmilarities and matches them to known database -- **Face Recognition** [[*Live*]](https://vladmandic.github.io/human/demo/facerecognition/index.html) [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/facerecognition): Runs multiple checks to validate webcam input before performing face match, similar to *FaceID* +- **Face ID** [[*Live*]](https://vladmandic.github.io/human/demo/faceid/index.html) [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/faceid): Runs multiple checks to validate webcam input before performing face match to faces in IndexDB - **Multi-thread** [[*Live*]](https://vladmandic.github.io/human/demo/multithread/index.html) [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/multithread): Runs each `human` module in a separate web worker for highest possible performance - **Face 3D** [[*Live*]](https://vladmandic.github.io/human/demo/face3d/index.html) [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/face3d): Uses WebCam as input and draws 3D render of face mesh using `Three.js` - **Virtual Avatar** [[*Live*]](https://vladmandic.github.io/human-vrm/src/human-vrm.html) [[*Details*]](https://github.com/vladmandic/human-vrm): VR model with head, face, eye, body and hand tracking diff --git a/TODO.md b/TODO.md index 794c77eb..6b036d1e 100644 --- a/TODO.md +++ b/TODO.md @@ -47,3 +47,7 @@ New: - new optional model `liveness` checks if input appears to be a real-world live image or a recording best used together with `antispoofing` that checks if input appears to have a realistic face + +Other: +- Improved **Safari** compatibility +- Documentation overhaul diff --git a/demo/facerecognition/README.md b/demo/faceid/README.md similarity index 76% rename from demo/facerecognition/README.md rename to demo/faceid/README.md index 6d2dd9ab..bbaee95a 100644 --- a/demo/facerecognition/README.md +++ b/demo/faceid/README.md @@ -1,6 +1,7 @@ -# Human Face Recognition +# Human Face Recognition: FaceID -`facerecognition` runs multiple checks to validate webcam input before performing face match, similar to *FaceID* +`faceid` runs multiple checks to validate webcam input before performing face match +Detected face image and descriptor are stored in client-side IndexDB ## Workflow - Starts webcam @@ -10,8 +11,8 @@ - Face and gaze direction - Detection scores - Blink detection (including temporal check for blink speed) to verify live input - - Runs antispoofing optional module - - Runs liveness optional module + - Runs `antispoofing` optional module + - Runs `liveness` optional module - Runs match against database of registered faces and presents best match with scores ## Notes @@ -30,4 +31,4 @@ designed to serve as a quick check when used together with other indicators: ### Liveness Module - Checks if input has obvious artifacts due to recording (e.g. playing back phone recording of a face) - Configuration: `human.config.face.liveness`.enabled -- Result: `human.result.face[0].live` as score \ No newline at end of file +- Result: `human.result.face[0].live` as score diff --git a/demo/facerecognition/index.html b/demo/faceid/index.html similarity index 67% rename from demo/facerecognition/index.html rename to demo/faceid/index.html index 907fa811..8409ab7c 100644 --- a/demo/facerecognition/index.html +++ b/demo/faceid/index.html @@ -16,15 +16,24 @@
- + + + +