All Projects → mobimeo → Node Yolo

mobimeo / Node Yolo

Licence: mit
Node bindings for YOLO/Darknet image recognition library

Projects that are alternatives of or similar to Node Yolo

VideoRecognition-realtime-autotrainer-alerts
State of the art object detection in real-time using YOLOV3 algorithm. Augmented with a process that allows easy training of the classifier as a plug & play solution . Provides alert if an item in an alert list is detected.
Stars: ✭ 36 (-90.11%)
Mutual labels:  yolo, image-recognition, darknet
Tracking-with-darkflow
Real-time people Multitracker using YOLO v2 and deep_sort with tensorflow
Stars: ✭ 522 (+43.41%)
Mutual labels:  yolo, darknet
Tensorflow 2.x Yolov3
YOLOv3 implementation in TensorFlow 2.3.1
Stars: ✭ 300 (-17.58%)
Mutual labels:  yolo, darknet
lightDenseYOLO
A real-time object detection app based on lightDenseYOLO Our lightDenseYOLO is the combination of two components: lightDenseNet as the CNN feature extractor and YOLO v2 as the detection module
Stars: ✭ 20 (-94.51%)
Mutual labels:  yolo, darknet
pnn
pnn is Darknet compatible neural nets inference engine implemented in Rust.
Stars: ✭ 17 (-95.33%)
Mutual labels:  yolo, darknet
darknet.js
A NodeJS wrapper of pjreddie's darknet / yolo.
Stars: ✭ 61 (-83.24%)
Mutual labels:  yolo, darknet
ffcnn
ffcnn is a cnn neural network inference framework, written in 600 lines C language.
Stars: ✭ 50 (-86.26%)
Mutual labels:  yolo, darknet
darknet
php ffi darknet
Stars: ✭ 21 (-94.23%)
Mutual labels:  yolo, darknet
object-tracking
Multiple Object Tracking System in Keras + (Detection Network - YOLO)
Stars: ✭ 89 (-75.55%)
Mutual labels:  yolo, darknet
darknet ros
Robotics Operating System Package for Yolo v3 based on darknet with optimized tracking using Kalman Filter and Optical Flow.
Stars: ✭ 51 (-85.99%)
Mutual labels:  yolo, darknet
darknet2caffe
Conversion of yolo from DarkNet to Caffe
Stars: ✭ 25 (-93.13%)
Mutual labels:  yolo, darknet
DroNet
DroNet: Efficient convolutional neural network detector for Real-Time UAV applications
Stars: ✭ 54 (-85.16%)
Mutual labels:  yolo, darknet
darknet-vis
Visualize YOLO feature map in prediction for easily checking your model performance
Stars: ✭ 68 (-81.32%)
Mutual labels:  yolo, darknet
JSON2YOLO
Convert JSON annotations into YOLO format.
Stars: ✭ 222 (-39.01%)
Mutual labels:  yolo, darknet
OpenCV-Flask
🐛 🐛 Opencv视频流传输到网页浏览器并做目标检测 🐛 🐛
Stars: ✭ 35 (-90.38%)
Mutual labels:  yolo, darknet
DarkMark
Marking up images for use with Darknet.
Stars: ✭ 62 (-82.97%)
Mutual labels:  yolo, darknet
DarkPlate
License plate parsing using Darknet and YOLO
Stars: ✭ 36 (-90.11%)
Mutual labels:  yolo, darknet
vehicle-rear
Vehicle-Rear: A New Dataset to Explore Feature Fusion For Vehicle Identification Using Convolutional Neural Networks
Stars: ✭ 99 (-72.8%)
Mutual labels:  yolo, darknet
go-darknet
Go bindings for Darknet (YOLO v4 / v3)
Stars: ✭ 56 (-84.62%)
Mutual labels:  yolo, darknet
live-cctv
To detect any reasonable change in a live cctv to avoid large storage of data. Once, we notice a change, our goal would be track that object or person causing it. We would be using Computer vision concepts. Our major focus will be on Deep Learning and will try to add as many features in the process.
Stars: ✭ 23 (-93.68%)
Mutual labels:  yolo, darknet

Node.js Wrapper for YOLO/Darknet recognition framework

Darknet is an open source neural network framework written in C and CUDA. This project wraps this framework in a Node.js native addon.

Status

Currently, the wrapper implements a demo method to run a recognition from the webcam/video or an image file. Equivalent to

./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights
./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg

Prerequisites

Requires:

  • Modern Node and NPM versions (tested with latest LTS release Node v6.., npm 3.., supposed to work with the newer versions as well)

  • OpenCV (version 2, for example, 2.4.9.1) to be installed on your system.

    Installing with Brew on MacOS:

    brew install [email protected]
    sudo chown -R $(whoami):admin /usr/local
    brew link --force [email protected]
    
  • If you are on a mac: macOS 10.12 Sierra or newer, Apple LLVM version 8.0.0 (xcode 8.2, check version with clang -v). For GPU support, Nvidia CUDA Toolkit (you need to have Nvidia CUDA GPU graphic card)

First, you need to compile this fork of darknet with OpenCV support (optionally, with CUDA support):

git clone https://github.com/OrKoN/darknet
cd darknet
make OPENCV=1 # optionally GPU=1
make install # by default installed to /usr/local

After that you can process with the installation via NPM.

The fork is required because it contains a few important changes to the origin source code which allow using darknet with NodeJS:

  • Makefile is extended to build a static library (darknet.a).
  • Makefile is extended with install and uninstall commands which install the library globally so that this module can easily find and link it.
  • All darknet functions in header files are marked with extern "C" if they are included in a C++ program (such as a NodeJS module).

Installation

npm install @moovel/yolo --save

Usage

Either download your own cfg, data folders and .weight files from the darknet project or use the ones included in test folder (see also test/readme.md). You also can find there the examples from below.

Detect a video from camera or a file:

const darknet = require('@moovel/yolo');

darknet.detect({
  cfg: './cfg/yolo.cfg',
  weights: './yolo.weights',
  data: './cfg/coco.data',
  cameraIndex: 0, // optional, default: 0,
  video: './test.mp4', // optional, forces to use the video file instead of a camera
  thresh: 0.24, // optional, default: 0.24
  hierThresh: 0.5, // optional, default: 0.5
}, function(modified, original, detections, dimensions) {
  /**

  modified - raw frame with detections drawn, rgb24 format
  original - raw frame, as captured by the webcam/video, rgb24 format,
  detections - array of detections
  dimenstions - image width and height

  Example detections:

  [ { x: 0.8602103590965271,
      y: 0.20008485019207,
      w: 0.13895535469055176,
      h: 0.39782464504241943,
      prob: 0.2408987432718277,
      name: 'tvmonitor' },
    { x: 0.26072466373443604,
      y: 0.4977818727493286,
      w: 0.10842404514551163,
      h: 0.22796104848384857,
      prob: 0.3290732204914093,
      name: 'person' },
    { x: 0.2568981349468231,
      y: 0.5765896439552307,
      w: 0.12322483211755753,
      h: 0.2544059157371521,
      prob: 0.2738085687160492,
      name: 'chair' },
    { x: 0.6593853235244751,
      y: 0.8188746571540833,
      w: 0.06210440397262573,
      h: 0.100614033639431,
      prob: 0.3225017189979553,
      name: 'clock' } ]
  */
});

Detect on a single image:

const darknet = require('@moovel/yolo');

darknet.detectImage({
  cfg: './cfg/yolo.cfg',
  weights: './yolo.weights',
  data: './cfg/coco.data',
  image: './data/dog.jpg',
  thresh: 0.24, // optional, default: 0.24
  hierThresh: 0.5, // optional, default: 0.5,
}, function(modified, original, detections, dimensions) {
  /**

  modified - raw frame with detections drawn, rgb24 format
  original - raw frame, as captured by the webcam/video, rgb24 format,
  detections - array of detections
  dimenstions - image width and height

  Example detections:

  [ { x: 0.8602103590965271,
      y: 0.20008485019207,
      w: 0.13895535469055176,
      h: 0.39782464504241943,
      prob: 0.2408987432718277,
      name: 'tvmonitor' },
    { x: 0.26072466373443604,
      y: 0.4977818727493286,
      w: 0.10842404514551163,
      h: 0.22796104848384857,
      prob: 0.3290732204914093,
      name: 'person' },
    { x: 0.2568981349468231,
      y: 0.5765896439552307,
      w: 0.12322483211755753,
      h: 0.2544059157371521,
      prob: 0.2738085687160492,
      name: 'chair' },
    { x: 0.6593853235244751,
      y: 0.8188746571540833,
      w: 0.06210440397262573,
      h: 0.100614033639431,
      prob: 0.3225017189979553,
      name: 'clock' } ]
  */
});

After that you can convert the original frames with ffmpeg to an image. Play with the parameter bgr24/rgb24 if the color channels are swapped e.g. blueish image:

ffmpeg -f rawvideo -s 768x576 -pix_fmt bgr24 -i data.raw data.png
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].