New
Human Release v2.10
Human v2.10 is flagged as major release purely due to number of changes and fixes, but there are no breaking changes
- Update TFJS to 3.20.0
- Update TypeScript to 4.8
- Switch default backend from custom
humangltowebgl
Stability and availability of features in standard TFJS allows to switch back - Add InsightFace model as alternative for face embedding/descriptor detection
Compatible with multiple variations of InsightFace models
Configurable usingconfig.face.insightfaceconfig section
Seedemo/faceid/index.tsfor usage
Models can be downloaded from https://github.com/vladmandic/insightface - Add
human.check()which validates all kernel ops for currently loaded models with currently selected backend
Example:console.error(human.check()); - Add
config.softwareKernelsconfig option which uses CPU implementation for missing ops
Disabled by default
If enabled, it is used by face and hand rotation correction (config.face.rotationandconfig.hand.rotation) - Add underlying tensorflow library version detection when running in NodeJS to
human.envand check if GPU is used for acceleration
Example:console.log(human.env.tensorflow) - Treat models that cannot be found & loaded as non-critical error
Instead of creating runtime exception,humanwill now report that model could not be loaded - Improve
human.reset()method to reset all config values to defaults - Host models in https://github.com/vladmandic/human-models
Models can be directly used without downloading to local storage
Example:modelBasePath: 'https://vladmandic.github.io/human-models/models/' - Allow hosting models in Google Cloud Bucket
Hosted models can be directly used without downloading to local storage
Example:modelBasePath: 'https://storage.googleapis.com/human-models/' - Stricter linting rules for both TypeScript and JavaScript
See./eslintrc.jsonfor details - Enhanced type safety across entire library
- Fix MobileFaceNet model as alternative for face embedding/descriptor detection
Configurable usingconfig.face.mobilefacenetconfig section - Fix EfficientPose module as alternative body detection
- Fix NanoDet module as alternative object detection
- Fix
demo/multithread/node-multiprocess.jsdemo - Fix
human.matchwhen using mixed descriptor lengths - Fix WASM feature detection issue in TFJS with Edge/Chromium
Example:console.log(human.env.wasm) - Reorganized init & load order for faster library startup
- Increased NodeJS test coverage
Run using:npm run test
Runs tests fortfjs-node,tfjs-node-gpuandwasm - Increased Browser test coverage
Run using:demo/browser.html
Runs tests forwebgl,humangl,webgpuandwasm
Runs tests for ESM and IIFE versions of library - Add
config.flagssettings to allow setting of custom TFJS flags during backend configuration - Increase availability of alternative models
Seemodels/model.jsonfor full list - Update profiling methods in
human.profile() - Update project dependencies to latest versions