-
-
Notifications
You must be signed in to change notification settings - Fork 403
Install
Important
The packaged version of Human includes TensorFlow/JS (TFJS) 3.6.1 library which can be accessed via human.tf
You should NOT manually load another instance of tfjs unless you're using specific .nobudle edition of `Human,
but if you do, be aware of possible version conflicts
Simply load Human (IIFE version) directly from a cloud CDN in your HTML file:
(pick one: jsdelirv, unpkg or cdnjs)
<!DOCTYPE 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>
<script src="https://cdnjs.cloudflare.com/ajax/libs/human/1.4.1/human.js"></script>There are multiple ways to use Human library, pick one that suits you:
-
dist/human.js: IIFE format bundle with TFJS for Browsers -
dist/human.esm.js: ESM format bundle with TFJS for Browsers -
dist/human.esm-nobundle.js: ESM format bundle without TFJS for Browsers, must be run through bundler to resolve dependencies -
dist/human.node.js: CommonJS format for NodeJS, optimized for usage withtfjs-node -
dist/human.node-gpu.js: CommonJS format for NodeJS, optimized for usage withtfjs-node-gpu
All versions include sourcemap (.map)
Defaults:
{
"node": {
"require": "./dist/human.node.js",
"import": "./dist/human.node.js",
"module": "./dist/human.node.js"
},
"require": "./dist/human.node.js",
"import": "./dist/human.esm.js",
"script": "./dist/human.js",
"module": "./dist/human.esm.js",
"types": "./types/human.d.ts"
}1. IIFE script
Simplest way for usage within Browser
Simply download dist/human.js, include it in your HTML file & it's ready to use.
<!DOCTYPE HTML>
<script src="dist/human.js"><script>IIFE script auto-registers global namespace Human within global Window object
Which you can use to create instance of human library:
const human = new Human();This way you can also use Human library within embbedded <script> tag within your html page for all-in-one approach
2. ESM module
Recommended for usage within Browser
You could use same syntax within your main JS file if it's imported with <script type="module">
<!DOCTYPE HTML>
<script src="./index.js" type="module">and then in your index.js
import Human from 'dist/human.esm.js'; // for direct import must use path to module, not package name
const human = new Human();If you're using bundler (such as rollup, webpack, parcel, browserify, esbuild) to package your client application,
you can import ESM version of Human library which supports full tree shaking
Install with:
npm install @vladmandic/humanimport Human from '@vladmandic/human'; // points to @vladmandic/human/dist/human.esm.js
// you can also force-load specific version
// for example: `@vladmandic/human/dist/human.esm-nobundle.js`
const human = new Human();Or if you prefer to package your version of tfjs, you can use nobundle version
Install with:
npm install @vladmandic/human @tensorflow/tfjsimport tf from '@tensorflow/tfjs'; // eslint-disable-line node/no-extraneous-import
import Human from '@vladmandic/human/dist/human.esm-nobundle.js'; // same functionality as default import, but without tfjs bundled
const human = new Human();Note: When using a named import in a TypeScript project, it is advisable to instruct TypeScript where to look for type definitions using explict path to types
/// <reference path='./node_modules/@vladmandic/human/src/human.d.ts' />3. NPM module
Recommended for NodeJS projects that will execute in the backend
Human library for NodeJS does not include TFJS due to platform-specific binary dependencies - you need to install and include tfjs-node or tfjs-node-gpu in your project so it can register an optimized backend before loading Human
Entry point are bundles in CommonJS format dist/human.node.js and dist/human.node-gpu.js
Install with:
npm install @vladmandic/human @tensorflow/tfjs-nodeAnd then use with:
const tf = require('@tensorflow/tfjs-node'); // can also use '@tensorflow/tfjs-node-gpu' if you have environment with CUDA extensions
const Human = require('@vladmandic/human').default; // points to @vladmandic/human/dist/human.node.js
const human = new Human();Or for CUDA accelerated NodeJS backend:
npm install @vladmandic/human @tensorflow/tfjs-node-gpuAnd then use with:
const tf = require('@tensorflow/tfjs-node-gpu'); // can also use '@tensorflow/tfjs-node-gpu' if you have environment with CUDA extensions
const Human = require('@vladmandic/human/dist/human.node-gpu.js').default; // points to @vladmandic/human/dist/human.node.js
const human = new Human();Since NodeJS projects load weights from local filesystem instead of using http calls, you must modify default configuration to include correct paths with file:// prefix
For example:
const config = {
body: { enabled: true, modelPath: 'file://models.json' },
};Pretrained model weights are includes in ./models
Default configuration uses relative paths to you entry script pointing to ../models
If your application resides in a different folder, modify modelPath property in configuration of each module
Human Library Wiki Pages
3D Face Detection, Body Pose, Hand & Finger Tracking, Iris Tracking, Age & Gender Prediction, Emotion Prediction & Gesture Recognition