Darknet.JS
A Node wrapper of pjreddie's open source neural network framework Darknet, using the Foreign Function Interface Library. Read: YOLOv3 in JavaScript.
Prerequisites
- Linux, Mac, Windows (Linux sub-system),
- Node (most versions will work, darknet.js <=1.1.5 only works on node <=8.11.2)
- Build tools (make, gcc, etc.)
Examples
To run the examples, run the following commands:
git clone https://github.com/bennetthardwick/darknet.js.git darknet && cd darknet
npm install
./examples/example
Note: The example weights are quite large, the download might take some time
Installation
Super easy, just install it with npm:
npm install darknet
If you'd like to enable CUDA and/or CUDANN, export the flags DARKNET_BUILD_WITH_GPU=1
for CUDA, and DARKNET_BUILD_WITH_CUDNN=1
for CUDANN, and rebuild:
export DARKNET_BUILD_WITH_GPU=1
export DARKNET_BUILD_WITH_CUDNN=1
npm rebuild darknet
Usage
To create an instance of darknet.js, you need a three things. The trained weights, the configuration file they were trained with and a list of the names of all the classes.
; // Init; // Detectconsole.logdarknet.detect'/image/of/a/dog.jpg';
In conjuction with opencv4nodejs, Darknet.js can also be used to detect objects inside videos.
const fs = ;const cv = ;const Darknet = ; const darknet = weights: 'yolov3.weights' config: 'cfg/yolov3.cfg' namefile: 'data/coco.names'; const cap = 'video.mp4'; let frame;let index = 0;do frame = cap; console; console; while!frameempty;
Example Configuration
You can download pre-trained weights and configuration from pjreddie's website. The latest version (yolov3-tiny) is linked below:
If you don't want to download that stuff manually, navigate to the examples
directory and issue the ./example
command. This will download the necessary files and run some detections.
## Built-With
- [Node FFI](https://github.com/node-ffi/node-ffi)
- [Ref](https://github.com/TooTallNate/ref)
- [Darknet](https://github.com/pjreddie/darknet)