3.0.1
juliangarnier/anime3.0.1Nov 22, 2022by vladmandic
AI Summary
A major architectural refresh focusing on performance optimizations, expanded WebGPU support, and improved device detection. It introduces new features like brightness adjustment and label templates, but includes significant breaking changes to the API and model names.
Key Highlights
- Enabled high-resolution optimizations (up to 4k).
- Enhanced device capabilities detection and auto-selection of backends.
- Refactored architecture with strong typing and TFJS 4.1.
- Added `config.filter.autoBrightness` and label templates.
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()` and `human.gl`
- Renamed model `mb3-centernet` to `centernet`
New Features
- Draw label templates
- AutoBrightness filter
- WebGPU support
- Device capability detection
- 4k resolution support
Full Release Notes
## 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` - Reduce build dependencies `Human` is now 30% smaller :) As usual, `Human` has **zero** runtime dependencies, all *devDependencies* are only to rebuild `Human` itself - Default hand skeleton model changed from `handlandmark-full` to `handlandmark-lite` Both models are still supported, this reduces default size and increases performance ## Features: - Add [draw label templates](https://github.com/vladmandic/human/wiki/Draw) Allows easy customization of results labels drawn on canvas - 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 - Add new demo [face detect]((https://vladmandic.github.io/human/demo/facedetect/index.html)) - Improved `config.filter.equalization` (*disabled by default*) Image and video on-demand histogram equalization - Support selecting specific video source when multiple cameras are present See `human.webcam.enumerate()` - Updated algorithm to determine distance from camera based on iris size See `human.result.face[n].distance` ## Architecture: - Upgrade to **TFJS 4.1** with **strong typing** see [notes](https://github.com/vladmandic/human#typedefs) on how to use - `TypeDef` refactoring - Re-architect `human.models` namespace for better dynamic model handling Added additional methods `load`, `list`, `loaded`, `reset` - Repack external typedefs Removes all external typedef dependencies - Refactor namespace exports Better [TypeDoc specs](https://vladmandic.github.io/human/typedoc/index.html) - Add named export for improved bundler support when using non-default imports - Cleanup Git history for `dist`/`typedef`/`types` - Cleanup `@vladmandic/human-models` - Support for **NodeJS v19** - Upgrade to **TypeScript 4.9** - Support for dynamic module load in **NodeJS** See <https://vladmandic.github.io/human/demo/nodejs/node-bench> ## 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` - Renamed model `mb3-centernet` to `centernet`