3.0.1

usememos/memos3.0.1Nov 22, 2022by vladmandic

AI Summary

This significant version update focuses on performance optimizations for high-resolution processing, architecture refactoring, and new features like auto-brightness.

Key Highlights

  • Enabled high-resolution optimizations (internal limits increased to 4k)
  • Enhanced device capabilities detection and auto-selection of backend
  • Add `draw label templates` for easy customization
  • Add `config.filter.autoBrightness` for performance in poorly lit scenes
  • Support for selecting specific video sources

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`

New Features

  • High-resolution optimizations
  • Enhanced device capabilities detection
  • Auto-selection of backend
  • Draw label templates
  • AutoBrightness filter
  • Specific video source selection
  • Updated iris distance algorithm

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`