# To-Do list for Human library ## Work-in-Progress N/A

## Exploring - Optical flow for intelligent temporal interpolation - Advanced histogram equalization for optimization of badly lit scenes **Adaptive**, **Contrast Limited**, **CLAHE** - TFLite models - Body segmentation with temporal analysis

## Known Issues ### Face with Attention `FaceMesh-Attention` is not supported in browser using `WASM` backend due to missing kernel op in **TFJS** ### Object Detection `NanoDet` model is not supported in in browser using `WASM` backend due to missing kernel op in **TFJS** ### WebGPU Experimental support only until support is officially added in Chromium Enable via ### Firefox Running in **web workers** requires `OffscreenCanvas` which is still disabled by default in **Firefox** Enable via `about:config` -> `gfx.offscreencanvas.enabled`

## Pending Release Changes - Update **TFJS** to **3.20.0** - Update **TypeScript** to **4.8** - Switch default backend from custom `humangl` to `webgl` 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 using `config.face.insightface` config section See `demo/faceid/index.ts` for usage Models can be downloaded from - Add `human.check()` which validates all kernel ops for currently loaded models with currently selected backend Example: `console.error(human.check());` - Add `config.softwareKernels` config option which uses **CPU** implementation for missing ops Disabled by default If enabled, it is used by face and hand rotation correction (`config.face.rotation` and `config.hand.rotation`) - Add underlying **tensorflow** library version detection when running in NodeJS to `human.env` and 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, `human` will now report that model could not be loaded - Improve `human.reset()` method to reset all config values to defaults - Host models in 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.json` for details - Enhanced type safety across entire library - Fix **MobileFaceNet** model as alternative for face embedding/descriptor detection Configurable using `config.face.mobilefacenet` config section - Fix **EfficientPose** module as alternative body detection - Fix **NanoDet** module as alternative object detection - Fix `demo/multithread/node-multiprocess.js` demo - Fix `human.match` when 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 for `tfjs-node`, `tfjs-node-gpu` and `wasm` - Increased **Browser** test coverage Run using: `demo/browser.html` Runs tests for `webgl`, `humangl`, `webgpu` and `wasm` Runs tests for ESM and IIFE versions of library - Increase availability of alternative models See `models/model.json` for full list - Update profiling methods in `human.profile()` - Update project dependencies to latest versions