moeiscool / node-yolo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

node-yolo

This Node.js C++ Addon came out from a computer engineering project, VAPi. It allow you to use a state-of-the-art, real-time object detection system called Yolo.

Pre-requirements

  • C/C++ Compiler
  • Nvidia graphic card with CUDA support and required files installed (Only if you want to use GPU acceleration)
  • Node.js >= 9
  • node-gyp
  • ImageMagick

Installation

npm i @vapi/node-yolo --save

How To Use

const yolo = require('@vapi/node-yolo');
const detector = new yolo("darknet-configs", "cfg/coco.data", "cfg/yolov3.cfg", "yolov3.weights");
try{
	detector.detect(path)
         .then(detections => {
            // here you receive the detections
         })
         .catch(error => {
           // here you can handle the errors. Ex: Out of memory
        });
}
catch(error){
    console.log('Catch: ' + error);
}

darknet-configs is a folder where you should put the Yolo weights, cfg and data files. You need to create two folder, cfg and data and put the files for each one. Like this:

.
├── darknet-configs         # The folder for the Yolo weight, cfg and data files
│   ├── cfg                 # cfg folder
|          |── coco.data
|          |── yolov3.cfg
│   ├── data                # data folder
|   |      |── coco.names
│   └── yolov3.weights      # YoloV3 weights file
└── ...

detections object

Field Description
className name of the class of the object detected
probability the higher probability that this className is correct
box object that contains box info of the object

box object

Field Description
x x coordinate in pixels of the picture
y y coordinate in pixels of the picture
w width from x point in pixels
h height from y point in pixels

About

License:MIT License


Languages

Language:C++ 34.7%Language:C 33.9%Language:JavaScript 14.1%Language:Makefile 12.2%Language:Python 3.5%Language:CMake 1.6%