GithubHelp home page GithubHelp logo

single9 / darknet.js Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bennetthardwick/darknet.js

0.0 2.0 2.0 107 KB

A NodeJS wrapper of pjreddie's darknet / yolo.

JavaScript 69.94% Shell 2.68% TypeScript 27.37%

darknet.js's Introduction

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.

import { Darknet } from 'darknet';

// Init
let darknet = new Darknet({
    weights: './cats.weights',
    config: './cats.cfg',
    names: [ 'dog', 'cat' ]
});

// Detect
console.log(darknet.detect('/image/of/a/dog.jpg'));

In conjuction with opencv4nodejs, Darknet.js can also be used to detect objects inside videos.

const fs = require('fs');
const cv = require('opencv4nodejs');
const { Darknet } = require('darknet');

const darknet = new Darknet({
  weights: 'yolov3.weights',
  config: 'cfg/yolov3.cfg',
  namefile: 'data/coco.names'
});

const cap = new cv.VideoCapture('video.mp4');

let frame;
let index = 0;
do {
  frame = cap.read().cvtColor(cv.COLOR_BGR2RGB);
  console.log('frame', index++); 
  console.log(darknet.detect({
    b: frame.getData(),
    w: frame.cols,
    h: frame.rows,
    c: frame.channels
  }));
} while(!frame.empty);

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

darknet.js's People

Contributors

bennetthardwick avatar single9 avatar legraphista avatar alexnodex avatar kossolax avatar teisd avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.