Node.js interface for Yolo/Darknet
npm install node-yolo-shinobiNote: Now is in progress some work to improve the module, to enhance the current functionalities:
- First we begin to improve more robustness to the lib
- Second give the possibility to process videos files and later on video streams
- Split the libyolo and node-yolo projects, for those that like an easy lib to continue on C or C++ instead node.js.
Who fork and/or use this repo please stay sharp because alot of changes happening and not backwards compatibility between 1.. version and 2.. version.
sh
npm i @vapi/node-yolo --save
`How To Use
`javascript
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