human/TODO.md

100 lines
3.7 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
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
2022-09-27 17:51:55 +02:00
- **Optical flow** for intelligent temporal interpolation
2022-06-02 16:39:53 +02:00
<https://docs.opencv.org/3.3.1/db/d7f/tutorial_js_lucas_kanade.html>
2022-09-27 17:51:55 +02:00
- **CLAHE** advanced histogram equalization for optimization of badly lit scenes
- **TFLite** models
2022-06-02 16:39:53 +02:00
<https://js.tensorflow.org/api_tflite/0.0.1-alpha.4/>
2022-09-27 17:51:55 +02:00
- **Principal Components Analysis** for reduction of descriptor complexity
<https://github.com/vladmandic/human-match/blob/main/src/pca.js>
- **Temporal guidance** for face/body segmentation
2022-06-02 16:39:53 +02:00
<https://github.com/PeterL1n/RobustVideoMatting>
<hr><br>
2021-07-31 13:43:50 +02:00
2022-10-02 21:09:00 +02:00
## Known Issues & Limitations
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-09-30 16:20:08 +02:00
`FaceMesh-Attention` is not supported when using `WASM` backend due to missing kernel op in **TFJS**
2022-10-02 21:09:00 +02:00
No issues with default model `FaceMesh`
2022-08-30 16:28:33 +02:00
### Object Detection
2022-09-30 16:20:08 +02:00
`NanoDet` model is not supported when using `WASM` backend due to missing kernel op in **TFJS**
2022-10-02 21:09:00 +02:00
No issues with default model `MB3-CenterNet`
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
2022-10-02 21:09:00 +02:00
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**
2022-10-02 21:09:00 +02:00
Enable via `about:config` -> `gfx.offscreencanvas.enabled`
[Details](https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas#browser_compatibility)
### Safari
No support for running in **web workers** as Safari still does not support `OffscreenCanvas`
[Details](https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas#browser_compatibility)
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-11-11 02:16:40 +01:00
Optimizations:
- Enabled high-resolution optimizations
Internal limits are increased from **2k** to **4k**
- Enhanced device capabilities detection
See `human.env.[agent, wasm, webgl, webgpu]` for details
- If `config.backend` is not set, Human will auto-select best backend
based on device capabilities
- Enhanced support for `webgpu`
2022-11-17 20:53:48 +01:00
- Reduce build dependencies
`Human` is now 30% smaller :)
As usual, `Human` has **zero** runtime dependencies,
all *devDependencies* are only to rebuild `Human` itself
2022-11-11 02:16:40 +01:00
Features:
- Add [draw label templates](https://github.com/vladmandic/human/wiki/Draw)
- Add `config.filter.autoBrightness` (*enabled by default*)
Per-frame video on-the-fly brightness adjustments
Which significantly increases performance and precision in poorly lit scenes
- Improved `config.filter.equalization` (*disabled by default*)
Image and video on-demand histogram equalization
2022-11-16 17:27:59 +01:00
- Support selecting specific video source when multiple cameras are present
See `human.webcam.enumerate()`
2022-11-16 23:47:28 +01:00
- Updated algorithm to determine distance from camera based on iris size
2022-11-17 16:18:26 +01:00
See `human.result.face[n].distance`
2022-11-11 02:16:40 +01:00
Architecture:
2022-11-16 17:27:59 +01:00
- Upgrade to **TFJS 4.0** with **strong typing**
2022-11-12 18:54:58 +01:00
see [notes](https://github.com/vladmandic/human#typedefs) on how to use
- `TypeDef` refactoring
2022-11-17 20:39:02 +01:00
- Re-architect `human.models` namespace for better dynamic model handling
Added additional methods `load`, `list`, `loaded`, `reset`
2022-11-17 20:53:48 +01:00
- Repack external typedefs
Removes all external typedef dependencies
- Refactor namespace exports
Better [TypeDoc specs](https://vladmandic.github.io/human/typedoc/index.html)
2022-11-04 18:20:56 +01:00
- Add named export for improved bundler support when using non-default imports
2022-11-18 18:20:14 +01:00
- Cleanup Git history for `dist`/`typedef`/`types`
2022-11-17 20:39:02 +01:00
- Support for **NodeJS v19**
2022-11-16 17:27:59 +01:00
- Upgrade to **TypeScript 4.9**
2022-11-17 20:39:02 +01:00
Breaking changes:
- Replaced `result.face[n].iris` with `result.face[n].distance`
- Replaced `human.getModelStats()` with `human.models.stats()`
- Moved `human.similarity`, `human.distance` and `human.match` to namespace `human.match.*`
- Obsolete `human.enhance()`
- Obsolete `human.gl`