human/TODO.md

88 lines
3.5 KiB
Markdown
Raw Normal View History

2021-03-03 18:04:59 +01:00
# To-Do list for Human library
2022-06-02 16:39:53 +02:00
## Work-in-Progress
2021-04-25 19:16:04 +02:00
2022-06-02 16:39:53 +02:00
N/A
2021-09-26 16:09:30 +02:00
2022-06-02 16:39:53 +02:00
<hr><br>
2022-06-02 16:39:53 +02:00
## Exploring
- Optical flow for intelligent temporal interpolation
<https://docs.opencv.org/3.3.1/db/d7f/tutorial_js_lucas_kanade.html>
- Advanced histogram equalization for optimization of badly lit scenes
**Adaptive**, **Contrast Limited**, **CLAHE**
- TFLite models
<https://js.tensorflow.org/api_tflite/0.0.1-alpha.4/>
- Body segmentation with temporal analysis
<https://github.com/PeterL1n/RobustVideoMatting>
<hr><br>
2021-07-31 13:43:50 +02:00
2021-08-12 15:31:16 +02:00
## Known Issues
2022-07-25 14:33:07 +02:00
2022-06-02 16:39:53 +02:00
### Face with Attention
2021-07-31 13:43:50 +02:00
2022-08-12 15:51:45 +02:00
`FaceMesh-Attention` is not supported in `Node` or in browser using `WASM` backend due to missing kernel op in **TFJS**
Model is supported using `WebGL` backend in browser
2021-11-16 19:07:44 +01:00
2022-06-02 16:39:53 +02:00
### WebGPU
Experimental support only until support is officially added in Chromium
Enable via <chrome://flags/#enable-unsafe-webgpu>
2021-07-31 13:43:50 +02:00
2022-06-02 16:39:53 +02:00
### Firefox
Running in **web workers** requires `OffscreenCanvas` which is still disabled by default in **Firefox**
Enable via `about:config` -> `gfx.offscreencanvas.enabled`
2022-08-12 15:51:45 +02:00
### Face Detection & Hand Detection
2021-07-31 13:43:50 +02:00
2022-08-12 15:51:45 +02:00
Enhanced rotation correction for face detection and hand detection is not working in **NodeJS** due to missing kernel op in **TFJS**
2022-06-02 16:39:53 +02:00
Feature is automatically disabled in **NodeJS** without user impact
2021-07-31 13:43:50 +02:00
2022-08-12 15:51:45 +02:00
### Object Detection
`NanoDet` model is not supported in `Node` or in browser using `WASM` backend due to missing kernel op in **TFJS**
Model is supported using `WebGL` backend in browser
2022-06-02 16:39:53 +02:00
<hr><br>
2022-06-02 16:39:53 +02:00
## Pending Release Changes
2022-07-18 14:22:19 +02:00
2022-08-24 14:18:34 +02:00
- Update TFJS to **3.20.0**
2022-08-08 21:09:26 +02:00
- Add **InsightFace** model as alternative for face embedding/descriptor detection
2022-08-12 15:51:45 +02:00
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 <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());`
2022-08-15 17:40:15 +02:00
- Add underlying **tensorflow** library version detection when running in NodeJS to
`human.env` and check if **GPU** is used for acceleration
2022-08-15 17:29:56 +02:00
Example: `console.log(human.env.tensorflow)`
2022-08-12 15:51:45 +02:00
- Host models in <human-models>
Models can be directly used without downloading to local storage
Example: `modelPath: 'https://vladmandic.github.io/human-models/models/facemesh.json'`
2022-08-19 15:15:29 +02:00
- Allow hosting models in **Google Cloud Bucket**
Hosted models can be directly used without downloading to local storage
2022-08-12 15:51:45 +02:00
Example: `modelPath: 'https://storage.googleapis.com/human-models/facemesh.json'`
2022-08-21 21:24:19 +02:00
- Stricter linting rules for both **TypeScript** and **JavaScript**
See `./eslintrc.json` for details
- Enhanced type safety across entire library
2022-08-08 21:09:26 +02:00
- Fix **MobileFaceNet** model as alternative for face embedding/descriptor detection
2022-08-12 15:51:45 +02:00
Configurable using `config.face.mobilefacenet` config section
2022-08-08 21:15:57 +02:00
- Fix **EfficientPose** module as alternative body detection
- Fix **NanoDet** module as alternative object detection
2022-08-10 19:44:38 +02:00
- Fix `demo/multithread/node-multiprocess.js` demo
2022-08-08 21:15:57 +02:00
- Fix `human.match` when using mixed descriptor lengths
2022-08-15 17:29:56 +02:00
- Fix WASM feature detection issue in TFJS with Edge/Chromium
2022-08-15 17:40:15 +02:00
Example: `console.log(human.env.wasm)`
2022-08-15 17:29:56 +02:00
- Increased test coverage
2022-08-15 17:40:15 +02:00
**NodeJS**: Run using: `npm run test`
**Browser**: Run using: `demo/browser.html`
2022-08-12 15:51:45 +02:00
- Increase availability of alternative models
2022-08-15 17:29:56 +02:00
See `models/model.json` for full list
2022-08-08 21:09:26 +02:00
- Update profiling methods in `human.profile()`
2022-08-15 17:40:15 +02:00
- Update project dependencies to latest versions