2022-09-25 14:28:29 +02:00
[](https://github.com/sponsors/vladmandic)
2021-04-03 16:49:14 +02:00






2021-03-08 20:12:12 +01:00
2021-03-08 21:06:56 +01:00
# Human Library
2021-04-11 05:37:44 +02:00
**AI-powered 3D Face Detection & Rotation Tracking, Face Description & Recognition,**
**Body Pose Tracking, 3D Hand & Finger Tracking, Iris Analysis,**
2021-06-07 02:49:48 +02:00
**Age & Gender & Emotion Prediction, Gaze Tracking, Gesture Recognition, Body Segmentation**
2021-02-19 14:35:41 +01:00
2022-10-17 02:28:57 +02:00
< br >
2022-09-14 17:39:12 +02:00
## Highlights
- Compatible with most server-side and client-side environments and frameworks
- Combines multiple machine learning models which can be switched on-demand depending on the use-case
- Related models are executed in an attention pipeline to provide details when needed
- Optimized input pre-processing that can enhance image quality of any type of inputs
- Detection of frame changes to trigger only required models for improved performance
- Intelligent temporal interpolation to provide smooth results regardless of processing performance
- Simple unified API
2022-09-30 03:28:13 +02:00
- Built-in Image, Video and WebCam handling
2022-09-14 17:39:12 +02:00
2021-02-19 14:35:41 +01:00
< br >
2022-09-14 17:39:12 +02:00
## Compatibility
2021-03-04 16:33:08 +01:00
2021-03-13 18:13:45 +01:00
- **Browser**:
Compatible with both desktop and mobile platforms
2021-03-30 15:03:18 +02:00
Compatible with *CPU* , *WebGL* , *WASM* backends
2022-07-13 14:53:37 +02:00
Compatible with *WebWorker* execution
Compatible with *WebView*
2021-03-13 18:13:45 +01:00
- **NodeJS**:
2022-09-13 22:31:23 +02:00
Compatibile with *WASM* backend for executions on architectures where *tensorflow* binaries are not available
Compatible with *tfjs-node* using software execution via *tensorflow* shared libraries
Compatible with *tfjs-node* using GPU-accelerated execution via *tensorflow* shared libraries and nVidia CUDA
2020-11-08 16:06:23 +01:00
2021-06-02 18:43:43 +02:00
< br >
2022-09-14 17:39:12 +02:00
## Releases
- [Release Notes ](https://github.com/vladmandic/human/releases )
- [NPM Link ](https://www.npmjs.com/package/@vladmandic/human )
## Demos
2021-11-05 18:36:53 +01:00
*Check out [**Simple Live Demo** ](https://vladmandic.github.io/human/demo/typescript/index.html ) fully annotated app as a good start starting point ([html](https://github.com/vladmandic/human/blob/main/demo/typescript/index.html))([code](https://github.com/vladmandic/human/blob/main/demo/typescript/index.ts))*
*Check out [**Main Live Demo** ](https://vladmandic.github.io/human/demo/index.html ) app for advanced processing of of webcam, video stream or images static images with all possible tunable options*
2021-06-02 18:43:43 +02:00
- To start video detection, simply press *Play*
- To process images, simply drag & drop in your Browser window
- Note: For optimal performance, select only models you'd like to use
2022-09-13 22:31:23 +02:00
- Note: If you have modern GPU, *WebGL* (default) backend is preferred, otherwise select *WASM* backend
2021-03-04 16:33:08 +01:00
2020-11-08 16:06:23 +01:00
< br >
2020-10-12 01:22:43 +02:00
2021-03-30 15:03:18 +02:00
2021-09-16 16:15:20 +02:00
- [**List of all Demo applications** ](https://github.com/vladmandic/human/wiki/Demos )
2021-12-28 15:40:32 +01:00
- [**Live Examples galery** ](https://vladmandic.github.io/human/samples/index.html )
2021-11-10 18:21:45 +01:00
### Browser Demos
2022-08-20 15:38:08 +02:00
*All browser demos are self-contained without any external dependencies*
2021-11-10 18:21:45 +01:00
- **Full** [[*Live*]](https://vladmandic.github.io/human/demo/index.html) [[*Details*]](https://github.com/vladmandic/human/tree/main/demo): Main browser demo app that showcases all Human capabilities
- **Simple** [[*Live*]](https://vladmandic.github.io/human/demo/typescript/index.html) [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/typescript): Simple demo in WebCam processing demo in TypeScript
2022-09-17 23:19:51 +02:00
- **Embedded** [[*Live*]](https://vladmandic.github.io/human/demo/video/index.html) [[*Details*]](https://github.com/vladmandic/human/tree/main/video/index.html): Even simpler demo with tiny code embedded in HTML file
2021-11-10 18:21:45 +01:00
- **Face Match** [[*Live*]](https://vladmandic.github.io/human/demo/facematch/index.html) [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/facematch): Extract faces from images, calculates face descriptors and simmilarities and matches them to known database
2021-11-11 17:30:55 +01:00
- **Face ID** [[*Live*]](https://vladmandic.github.io/human/demo/faceid/index.html) [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/faceid): Runs multiple checks to validate webcam input before performing face match to faces in IndexDB
2021-12-22 16:04:41 +01:00
- **Multi-thread** [[*Live*]](https://vladmandic.github.io/human/demo/multithread/index.html) [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/multithread): Runs each Human module in a separate web worker for highest possible performance
- **NextJS** [[*Live*]](https://vladmandic.github.io/human-next/out/index.html) [[*Details*]](https://github.com/vladmandic/human-next): Use Human with TypeScript, NextJS and ReactJS
2022-04-10 17:00:41 +02:00
- **ElectronJS** [[*Details*]](https://github.com/vladmandic/human-electron): Use Human with TypeScript and ElectonJS to create standalone cross-platform apps
2022-09-21 21:31:17 +02:00
- **3D Analysis with BabylonJS** [[*Live*]](https://vladmandic.github.io/human-motion/src/index.html) [[*Details*]](https://github.com/vladmandic/human-motion): 3D tracking and visualization of heead, face, eye, body and hand
- **VRM Virtual Model Tracking with Three.JS** [[*Live*]](https://vladmandic.github.io/human-three-vrm/src/human-vrm.html) [[*Details*]](https://github.com/vladmandic/human-three-vrm): VR model with head, face, eye, body and hand tracking
- **VRM Virtual Model Tracking with BabylonJS** [[*Live*]](https://vladmandic.github.io/human-bjs-vrm/src/index.html) [[*Details*]](https://github.com/vladmandic/human-bjs-vrm): VR model with head, face, eye, body and hand tracking
2021-11-10 18:21:45 +01:00
### NodeJS Demos
2022-08-20 15:38:08 +02:00
*NodeJS demos may require extra dependencies which are used to decode inputs*
*See header of each demo to see its dependencies as they are not automatically installed with `Human` *
2021-11-10 18:21:45 +01:00
- **Main** [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/nodejs): Process images from files, folders or URLs using native methods
- **Canvas** [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/nodejs): Process image from file or URL and draw results to a new image file using `node-canvas`
- **Video** [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/nodejs): Processing of video input using `ffmpeg`
- **WebCam** [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/nodejs): Processing of webcam screenshots using `fswebcam`
- **Events** [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/nodejs): Showcases usage of `Human` eventing to get notifications on processing
- **Similarity** [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/nodejs): Compares two input images for similarity of detected faces
- **Face Match** [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/facematch): Parallel processing of face **match** in multiple child worker threads
- **Multiple Workers** [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/nodejs): Runs multiple parallel `human` by dispaching them to pool of pre-created worker processes
2021-03-04 16:33:08 +01:00
## Project pages
2020-11-07 15:39:54 +01:00
2020-10-14 17:43:33 +02:00
- [**Code Repository** ](https://github.com/vladmandic/human )
2020-10-15 14:16:34 +02:00
- [**NPM Package** ](https://www.npmjs.com/package/@vladmandic/human )
2020-10-14 17:43:33 +02:00
- [**Issues Tracker** ](https://github.com/vladmandic/human/issues )
2022-09-30 03:28:13 +02:00
- [**TypeDoc API Specification - Main class** ](https://vladmandic.github.io/human/typedoc/classes/Human.html )
- [**TypeDoc API Specification - Full** ](https://vladmandic.github.io/human/typedoc/ )
2021-03-12 04:11:49 +01:00
- [**Change Log** ](https://github.com/vladmandic/human/blob/main/CHANGELOG.md )
2021-05-30 15:41:24 +02:00
- [**Current To-do List** ](https://github.com/vladmandic/human/blob/main/TODO.md )
2020-11-07 15:39:54 +01:00
2021-03-04 16:33:08 +01:00
## Wiki pages
2020-11-07 15:39:54 +01:00
2020-11-07 15:47:26 +01:00
- [**Home** ](https://github.com/vladmandic/human/wiki )
- [**Installation** ](https://github.com/vladmandic/human/wiki/Install )
2020-11-13 22:42:00 +01:00
- [**Usage & Functions** ](https://github.com/vladmandic/human/wiki/Usage )
2021-10-29 21:55:20 +02:00
- [**Configuration Details** ](https://github.com/vladmandic/human/wiki/Config )
- [**Result Details** ](https://github.com/vladmandic/human/wiki/Result )
2022-10-18 16:18:40 +02:00
- [**Customizing Draw Methods** ](https://github.com/vladmandic/human/wiki/Draw )
2021-10-23 15:38:52 +02:00
- [**Caching & Smoothing** ](https://github.com/vladmandic/human/wiki/Caching )
2021-11-05 20:35:53 +01:00
- [**Input Processing** ](https://github.com/vladmandic/human/wiki/Image )
2021-03-24 16:08:49 +01:00
- [**Face Recognition & Face Description** ](https://github.com/vladmandic/human/wiki/Embedding )
2020-11-09 14:57:24 +01:00
- [**Gesture Recognition** ](https://github.com/vladmandic/human/wiki/Gesture )
2021-03-24 16:08:49 +01:00
- [**Common Issues** ](https://github.com/vladmandic/human/wiki/Issues )
2021-04-16 15:31:58 +02:00
- [**Background and Benchmarks** ](https://github.com/vladmandic/human/wiki/Background )
2020-11-13 22:42:00 +01:00
2021-03-04 16:33:08 +01:00
## Additional notes
2020-11-13 22:42:00 +01:00
2021-09-15 02:07:08 +02:00
- [**Comparing Backends** ](https://github.com/vladmandic/human/wiki/Backends )
2020-11-07 15:47:26 +01:00
- [**Development Server** ](https://github.com/vladmandic/human/wiki/Development-Server )
- [**Build Process** ](https://github.com/vladmandic/human/wiki/Build-Process )
2021-08-01 02:42:28 +02:00
- [**Adding Custom Modules** ](https://github.com/vladmandic/human/wiki/Module )
2020-11-07 15:47:26 +01:00
- [**Performance Notes** ](https://github.com/vladmandic/human/wiki/Performance )
2020-11-10 16:23:11 +01:00
- [**Performance Profiling** ](https://github.com/vladmandic/human/wiki/Profiling )
2020-11-23 13:44:10 +01:00
- [**Platform Support** ](https://github.com/vladmandic/human/wiki/Platforms )
2021-09-12 18:42:17 +02:00
- [**Diagnostic and Performance trace information** ](https://github.com/vladmandic/human/wiki/Diag )
2021-10-02 17:41:51 +02:00
- [**Dockerize Human applications** ](https://github.com/vladmandic/human/wiki/Docker )
2020-11-14 13:05:20 +01:00
- [**List of Models & Credits** ](https://github.com/vladmandic/human/wiki/Models )
2021-09-25 17:51:15 +02:00
- [**Models Download Repository** ](https://github.com/vladmandic/human-models )
2021-05-30 15:41:24 +02:00
- [**Security & Privacy Policy** ](https://github.com/vladmandic/human/blob/main/SECURITY.md )
2021-05-30 18:03:34 +02:00
- [**License & Usage Restrictions** ](https://github.com/vladmandic/human/blob/main/LICENSE )
2020-10-12 01:22:43 +02:00
2020-11-08 18:44:08 +01:00
< br >
2021-03-04 16:33:08 +01:00
*See [**issues** ](https://github.com/vladmandic/human/issues?q= ) and [**discussions** ](https://github.com/vladmandic/human/discussions ) for list of known limitations and planned enhancements*
2020-10-14 02:52:30 +02:00
2020-11-07 15:39:54 +01:00
*Suggestions are welcome!*
2020-11-06 22:21:20 +01:00
2021-04-10 03:53:48 +02:00
< hr > < br >
2020-11-06 22:21:20 +01:00
2022-09-24 17:43:29 +02:00
## App Examples
2020-10-13 16:06:49 +02:00
2022-09-13 22:31:23 +02:00
Visit [Examples gallery ](https://vladmandic.github.io/human/samples/index.html ) for more examples
< https: / / vladmandic . github . io / human / samples / index . html >
2021-06-02 18:43:43 +02:00
2021-09-25 17:51:15 +02:00

2021-06-02 18:43:43 +02:00
< br >
2021-09-25 17:51:15 +02:00
## Options
2021-03-04 16:33:08 +01:00
2021-09-25 17:51:15 +02:00
All options as presented in the demo application...
> [demo/index.html](demo/index.html)
2020-11-21 13:19:20 +01:00
2021-09-25 17:51:15 +02:00

2021-09-16 16:15:20 +02:00
< br >
2021-09-15 17:15:38 +02:00
**Results Browser:**
[ *Demo -> Display -> Show Results* ]< br >

< br >
2021-09-25 17:51:15 +02:00
## Advanced Examples
1. **Face Similarity Matching:**
2021-05-30 18:03:34 +02:00
Extracts all faces from provided input images,
sorts them by similarity to selected face
and optionally matches detected face with database of known people to guess their names
2021-06-14 14:16:10 +02:00
> [demo/facematch](demo/facematch/index.html)
2021-03-23 20:35:54 +01:00

2022-09-25 16:15:47 +02:00
2. **Face ID:**
Performs validation check on a webcam input to detect a real face and matches it to known faces stored in database
> [demo/faceid](demo/faceid/index.html)

2021-06-02 18:43:43 +02:00
< br >
2022-09-25 16:15:47 +02:00
3. **3D Rendering:**
2021-11-26 18:12:46 +01:00
> [human-motion](https://github.com/vladmandic/human-motion)
2021-03-30 15:03:18 +02:00
2021-11-26 18:12:46 +01:00



2021-03-30 15:03:18 +02:00
2021-06-02 18:43:43 +02:00
< br >
2022-09-25 16:15:47 +02:00
4. **VR Model Tracking:**
2022-09-24 17:43:29 +02:00
> [human-three-vrm](https://github.com/vladmandic/human-three-vrm)
> [human-bjs-vrm](https://github.com/vladmandic/human-bjs-vrm)
2022-01-08 18:43:44 +01:00
2022-09-21 21:31:17 +02:00

2022-01-08 18:43:44 +01:00
2021-11-26 18:12:46 +01:00
2022-09-25 16:15:47 +02:00
5. **Human as OS native application:**
2022-09-21 21:31:17 +02:00
> [human-electron](https://github.com/vladmandic/human-electron)
2021-09-25 17:51:15 +02:00
< br >
2021-03-10 16:02:52 +01:00
**468-Point Face Mesh Defails:**
2021-05-17 05:55:08 +02:00
(view in full resolution to see keypoints)
2021-03-10 16:02:52 +01:00

2021-03-05 17:43:50 +01:00
< br > < hr > < br >
2021-04-09 00:37:58 +02:00
## Quick Start
2021-04-11 05:16:06 +02:00
Simply load `Human` (*IIFE version*) directly from a cloud CDN in your HTML file:
(pick one: `jsdelirv` , `unpkg` or `cdnjs` )
2021-04-09 00:37:58 +02:00
```html
< script src = "https://cdn.jsdelivr.net/npm/@vladmandic/human/dist/human.js" > < / script >
< script src = "https://unpkg.dev/@vladmandic/human/dist/human.js" > < / script >
2021-09-12 14:49:56 +02:00
< script src = "https://cdnjs.cloudflare.com/ajax/libs/human/2.1.5/human.js" > < / script >
2021-04-09 00:37:58 +02:00
```
For details, including how to use `Browser ESM` version or `NodeJS` version of `Human` , see [**Installation** ](https://github.com/vladmandic/human/wiki/Install )
< br >
2021-04-12 23:48:59 +02:00
## Inputs
`Human` library can process all known input types:
- `Image` , `ImageData` , `ImageBitmap` , `Canvas` , `OffscreenCanvas` , `Tensor` ,
- `HTMLImageElement` , `HTMLCanvasElement` , `HTMLVideoElement` , `HTMLMediaElement`
Additionally, `HTMLVideoElement` , `HTMLMediaElement` can be a standard `<video>` tag that links to:
- WebCam on user's system
- Any supported video type
2022-09-24 17:43:29 +02:00
e.g. `.mp4` , `.avi` , etc.
2021-04-12 23:48:59 +02:00
- Additional video types supported via *HTML5 Media Source Extensions*
2022-09-24 17:43:29 +02:00
e.g.: **HLS** (*HTTP Live Streaming*) using `hls.js` or **DASH** (*Dynamic Adaptive Streaming over HTTP*) using `dash.js`
2021-05-31 16:40:07 +02:00
- **WebRTC** media track using built-in support
2021-04-12 23:48:59 +02:00
2022-10-17 02:28:57 +02:00
< br > < hr > < br >
2021-04-12 23:48:59 +02:00
2022-09-24 17:43:29 +02:00
## Code Examples
2021-04-09 00:37:58 +02:00
2022-09-24 17:43:29 +02:00
Simple app that uses Human to process video input and
2021-03-05 17:43:50 +01:00
draw output on screen using internal draw helper functions
```js
// create instance of human with simple configuration using default values
2021-03-05 20:40:44 +01:00
const config = { backend: 'webgl' };
2021-03-05 17:43:50 +01:00
const human = new Human(config);
2021-09-11 22:00:16 +02:00
// select input HTMLVideoElement and output HTMLCanvasElement from page
const inputVideo = document.getElementById('video-id');
const outputCanvas = document.getElementById('canvas-id');
2021-03-05 17:43:50 +01:00
function detectVideo() {
// perform processing using default configuration
human.detect(inputVideo).then((result) => {
2021-03-05 20:40:44 +01:00
// result object will contain detected details
// as well as the processed canvas itself
// so lets first draw processed frame on canvas
2021-03-05 17:43:50 +01:00
human.draw.canvas(result.canvas, outputCanvas);
// then draw results on the same canvas
human.draw.face(outputCanvas, result.face);
human.draw.body(outputCanvas, result.body);
human.draw.hand(outputCanvas, result.hand);
human.draw.gesture(outputCanvas, result.gesture);
2021-04-11 05:16:06 +02:00
// and loop immediate to the next frame
2021-03-05 17:43:50 +01:00
requestAnimationFrame(detectVideo);
});
}
detectVideo();
```
2020-11-21 13:19:20 +01:00
2021-04-11 05:16:06 +02:00
or using `async/await` :
```js
// create instance of human with simple configuration using default values
const config = { backend: 'webgl' };
2021-05-31 16:40:07 +02:00
const human = new Human(config); // create instance of Human
2021-09-11 22:00:16 +02:00
const inputVideo = document.getElementById('video-id');
const outputCanvas = document.getElementById('canvas-id');
2021-04-11 05:16:06 +02:00
async function detectVideo() {
2021-05-31 16:40:07 +02:00
const result = await human.detect(inputVideo); // run detection
human.draw.all(outputCanvas, result); // draw all results
requestAnimationFrame(detectVideo); // run loop
2021-04-11 05:16:06 +02:00
}
2021-05-31 16:40:07 +02:00
detectVideo(); // start loop
2021-04-11 05:16:06 +02:00
```
2021-09-11 22:00:16 +02:00
or using `Events` :
```js
// create instance of human with simple configuration using default values
const config = { backend: 'webgl' };
const human = new Human(config); // create instance of Human
const inputVideo = document.getElementById('video-id');
const outputCanvas = document.getElementById('canvas-id');
human.events.addEventListener('detect', () => { // event gets triggered when detect is complete
human.draw.all(outputCanvas, human.result); // draw all results
});
function detectVideo() {
human.detect(inputVideo) // run detection
.then(() => requestAnimationFrame(detectVideo)); // upon detect complete start processing of the next frame
}
detectVideo(); // start loop
```
2021-05-31 16:40:07 +02:00
or using interpolated results for smooth video processing by separating detection and drawing loops:
```js
const human = new Human(); // create instance of Human
const inputVideo = document.getElementById('video-id');
const outputCanvas = document.getElementById('canvas-id');
let result;
async function detectVideo() {
result = await human.detect(inputVideo); // run detection
requestAnimationFrame(detectVideo); // run detect loop
}
async function drawVideo() {
if (result) { // check if result is available
2022-09-17 23:19:51 +02:00
const interpolated = human.next(result); // get smoothened result using last-known results
2021-05-31 16:40:07 +02:00
human.draw.all(outputCanvas, interpolated); // draw the frame
}
requestAnimationFrame(drawVideo); // run draw loop
}
detectVideo(); // start detection loop
drawVideo(); // start draw loop
```
2022-09-17 23:19:51 +02:00
or same, but using built-in full video processing instead of running manual frame-by-frame loop:
```js
const human = new Human(); // create instance of Human
const inputVideo = document.getElementById('video-id');
const outputCanvas = document.getElementById('canvas-id');
async function drawResults() {
const interpolated = human.next(); // get smoothened result using last-known results
human.draw.all(outputCanvas, interpolated); // draw the frame
2022-09-30 03:28:13 +02:00
requestAnimationFrame(drawResults); // run draw loop
2022-09-17 23:19:51 +02:00
}
human.video(inputVideo); // start detection loop which continously updates results
drawResults(); // start draw loop
```
2022-09-30 03:28:13 +02:00
or using built-in webcam helper methods that take care of video handling completely:
```js
const human = new Human(); // create instance of Human
const outputCanvas = document.getElementById('canvas-id');
async function drawResults() {
const interpolated = human.next(); // get smoothened result using last-known results
human.draw.canvas(outputCanvas, human.webcam.element); // draw current webcam frame
human.draw.all(outputCanvas, interpolated); // draw the frame detectgion results
requestAnimationFrame(drawResults); // run draw loop
}
await human.webcam.start({ crop: true });
human.video(human.webcam.element); // start detection loop which continously updates results
drawResults(); // start draw loop
```
2021-05-31 16:40:07 +02:00
And for even better results, you can run detection in a separate web worker thread
2022-10-17 02:28:57 +02:00
< br > < hr > < br >
## TypeDefs
`Human` is written using TypeScript strong typing and ships with full **TypeDefs** for all classes defined by the library bundled in `types/human.d.ts` and enabled by default
*Note*: This does not include embedded `tfjs`
If you want to use embedded `tfjs` inside `Human` (`human.tf` namespace) and still full **typedefs** , add this code:
```js
import type * as tfjs from '@vladmandic/human/dist/tfjs.esm';
...
const tf = human.tf as typeof tfjs;
```
This is not enabled by default as `Human` does not ship with full **TFJS TypeDefs** due to size considerations
Enabling `tfjs` TypeDefs as above creates additional project (dev-only as only types are required) dependencies as defined in `@vladmandic/human/dist/tfjs.esm.d.ts` :
@tensorflow/tfjs -core, @tensorflow/tfjs -converter, @tensorflow/tfjs -backend-wasm, @tensorflow/tfjs -backend-webgl
2021-03-13 18:13:45 +01:00
< br > < hr > < br >
2021-03-18 21:55:00 +01:00
## Default models
Default models in Human library are:
2022-09-25 14:28:29 +02:00
- **Face Detection**: *MediaPipe BlazeFace Back variation*
- **Face Mesh**: *MediaPipe FaceMesh*
- **Face Iris Analysis**: *MediaPipe Iris*
- **Face Description**: *HSE FaceRes*
- **Emotion Detection**: *Oarriaga Emotion*
- **Body Analysis**: *MoveNet Lightning variation*
- **Hand Analysis**: *HandTrack & MediaPipe HandLandmarks*
- **Body Segmentation**: *Google Selfie*
- **Object Detection**: *CenterNet with MobileNet v3*
2021-03-18 21:55:00 +01:00
Note that alternative models are provided and can be enabled via configuration
2022-09-25 14:28:29 +02:00
For example, body pose detection by default uses *MoveNet Lightning* , but can be switched to *MultiNet Thunder* for higher precision or *Multinet MultiPose* for multi-person detection or even *PoseNet* , *BlazePose* or *EfficientPose* depending on the use case
2021-03-18 21:55:00 +01:00
For more info, see [**Configuration Details** ](https://github.com/vladmandic/human/wiki/Configuration ) and [**List of Models** ](https://github.com/vladmandic/human/wiki/Models )
< br > < hr > < br >
2021-09-12 18:42:17 +02:00
## Diagnostics
- [How to get diagnostic information or performance trace information ](https://github.com/vladmandic/human/wiki/Diag )
< br > < hr > < br >
2022-11-16 17:27:59 +01:00
`Human` library is written in [TypeScript ](https://www.typescriptlang.org/docs/handbook/intro.html ) **4.9** using [TensorFlow/JS ](https://www.tensorflow.org/js/ ) **4.0** and conforming to latest `JavaScript` [ECMAScript version 2022 ](https://262.ecma-international.org/ ) standard
2022-10-17 02:28:57 +02:00
Build target for distributables is `JavaScript` [EMCAScript version 2018 ](https://262.ecma-international.org/9.0/ )
2021-03-13 18:13:45 +01:00
2021-03-14 04:38:35 +01:00
< br >
For details see [**Wiki Pages** ](https://github.com/vladmandic/human/wiki )
2021-07-31 13:29:37 +02:00
and [**API Specification** ](https://vladmandic.github.io/human/typedoc/classes/Human.html )
2021-03-14 04:38:35 +01:00
2021-03-04 16:33:08 +01:00
< br >
2021-03-08 20:12:12 +01:00
2022-09-25 14:28:29 +02:00
[](https://github.com/sponsors/vladmandic)
2021-04-03 16:49:14 +02:00

2021-04-09 01:16:17 +02:00

2021-04-03 16:49:14 +02:00

2021-04-09 01:16:17 +02:00
< br >
2021-04-03 16:49:14 +02:00


