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.
- 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
npm i @vapi/node-yolo --save
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
└── ...
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 |
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 |