diff --git a/Usage.md b/Usage.md index 663a062..bae8601 100644 --- a/Usage.md +++ b/Usage.md @@ -8,6 +8,8 @@ All configuration is done in a single JSON object and all model weights are dyna
+## Detect + There is only *ONE* method you need: ```js @@ -25,12 +27,32 @@ or if you want to use promises }) ``` +## Results Smoothing + +If you're processing video input, you may want to interpolate results for smoother output +After calling `detect` method, simply call `next` method when you need a new interpolated frame + +`Result` Parameter to `next` method is optional and if not provided, it will use last known result + +Example that performs single detection and then draws new interpolated result at 50 frames per second: + +```js + const result = await human.detect(image, config?) + setInterval(() => { + const interpolated = human.next(result); + human.draw.all(canvas, result); + }, 1000 / 50); +``` + +## Extra Properties and Methods + `Human` library exposes several additional objects and methods: ```js human.version // string containing version of human library - human.tf // instance of tfjs used by human human.config // access to configuration object, normally set as parameter to detect() + human.result // access to last known result object, normally returned via call to detect() + human.performance // access to last known performance counters human.state // describing current operation in progress // progresses through: 'config', 'check', 'backend', 'load', 'run:', 'idle' human.sysinfo // object containing current client platform and agent @@ -39,8 +61,11 @@ or if you want to use promises human.image(image, config?) // runs image processing without detection and returns canvas human.warmup(config, image? // warms up human library for faster initial execution after loading // if image is not provided, it will generate internal sample + human.tf // instance of tfjs used by human ``` +## Face Recognition + Additional functions used for face recognition: For details, see [embedding documentation](https://github.com/vladmandic/human/wiki/Embedding) @@ -59,6 +84,8 @@ Internal list of modules and objects used by current instance of `Human`: human.classes // dynamically maintained list of classes that perform detection on each model ``` +## Draw Functions + Additional helper functions inside `human.draw`: ```js @@ -89,14 +116,16 @@ Style of drawing is configurable via `human.draw.options` object: drawBoxes: true, // draw boxes around detected faces roundRect: 8, // should boxes have round corners and rounding value drawPolygons: true, // draw polygons such as body and face mesh - fillPolygons: true, // fill polygons in face mesh + fillPolygons: false, // fill polygons in face mesh useDepth: true, // use z-axis value when available to determine color shade - useCurves: true, // draw polygons and boxes using smooth curves instead of lines - bufferedOutput: false, // experimental: buffer and interpolate results between frames + useCurves: false, // draw polygons and boxes using smooth curves instead of lines + bufferedOutput: true, // experimental: buffer and interpolate results between frames ```
+## Example Video Processing + Example simple app that uses Human to process video input and draw output on screen using internal draw helper functions @@ -132,6 +161,8 @@ detectVideo();
+## Example for NodeJS + Note that when using `Human` library in `NodeJS`, you must load and parse the image *before* you pass it for detection and dispose it afterwards Input format is `Tensor4D[1, width, height, 3]` of type `float32`