Skip to content

shaqian/tfjs-yolo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tfjs-yolo

YOLO object detection with Tensorflow.js. Supports YOLO v3 and Tiny YOLO v1, v2, v3.

Demo

Install

npm install tfjs-yolo

Usage

Import module

import yolo from 'tfjs-yolo';

Initialize and load model

// Use default models (stored in my GitHub demo repo)
let myYolo = await yolo.v1tiny();
let myYolo = await yolo.v2tiny();
let myYolo = await yolo.v3tiny();
let myYolo = await yolo.v3();

// or specify path or handler, see https://js.tensorflow.org/api/0.13.3/#loadModel
let myYolo = await yolo.v3tiny("https://.../model.json");

// or use frozen model, see https://js.tensorflow.org/api/0.13.3/#loadFrozenModel
let myYolo = await yolo.v3tiny(
  "https://.../weights_manifest.json",
  "https://.../tensorflowjs_model.pb"
);

Run model

Supported input html element:

  • img
  • canvas
  • video
const boxes = await myYolo.predict(canvas);

// Optional settings
const boxes = await myYolo.predict(
  canvas,
  {
    maxBoxes: 5,          // defaults to 20
    scoreThreshold: .2,   // defaults to .5
    iouThreshold: .5,     // defaults to .3
    numClasses: 80,       // defaults to 80 for yolo v3, tiny yolo v2, v3 and 20 for tiny yolo v1
    anchors: [...],       // See ./src/config.js for examples
    classNames: [...],    // defaults to coco classes for yolo v3, tiny yolo v2, v3 and voc classes for tiny yolo v1
    inputSize: 416,       // defaults to 416
  }
);

Output box format

{
  top,    // Float
  left,   // Float
  bottom, // Float
  right,  // Float
  height, // Float
  width,  // Float
  score,  // Float
  class   // String, e.g. person
}

Dispose model

myYolo.dispose();

Credits

Releases

No releases published

Packages

No packages published