Darknet YOLO
Detect multiple objects in scenes using the Darknet YOLO deep neural network.
By Laurent Ittiitti@usc.eduhttp://jevois.orgGPL v3
 Language:   C++            Supports mappings with USB output:   Yes            Supports mappings with NO USB output:   Yes
 Video Mapping:   NONE 0 0 0.0 YUYV 640 480 0.4 JeVois DarknetYOLO
 Video Mapping:   YUYV 1280 480 15.0 YUYV 640 480 15.0 JeVois DarknetYOLO

Module Documentation

Darknet is a popular neural network framework, and YOLO is a very interesting network that detects all objects in a scene in one pass. This component detects all instances of any of the objects it knows about (determined by the network structure, labels, dataset used for training, and weights obtained) in the image that is given to is.

See https://pjreddie.com/darknet/yolo/

This module runs a YOLO network and shows all detections obtained. The YOLO network is currently quite slow, hence it is only run once in a while. Point your camera towards some interesting scene, keep it stable, and wait for YOLO to tell you what it found.

Note that by default this module runs the Pascal-VOC version of tiny-YOLO, with these object categories:

  • aeroplane
  • bicycle
  • bird
  • boat
  • bottle
  • bus
  • car
  • cat
  • chair
  • cow
  • diningtable
  • dog
  • horse
  • motorbike
  • person
  • pottedplant
  • sheep
  • sofa
  • train
  • tvmonitor

Sometimes it will make mistakes! The performance of tiny-yolo-voc is about 57.1% correct (mean average precision) on the test set.

Serial messages

  • On every frame where detection results were obtained, this module sends a message
      DKY framenum
    where framenum is the frame number (starts at 0).
  • In addition, when detections are found which are avove threhsold, one message will be sent for each detected object (i.e., for each box that gets drawn when USB outputs are used), using a standardized 2D message:
    • Serial message type: 2D
    • id: the category name of the recognized object
    • x, y, or vertices: standardized 2D coordinates of object center or corners
    • w, h: standardized object size
    • extra: recognition score (in percent confidence)
ParameterTypeDescriptionDefaultValid Values
(Yolo) datarootstd::stringRoot path for data, config, and weight files. If empty, use the module's path.JEVOIS_SHARE_PATH /darknet/yolo-
(Yolo) datacfgstd::stringData configuration file (if relative, relative to dataroot)cfg/voc.data-
(Yolo) cfgfilestd::stringNetwork configuration file (if relative, relative to dataroot)cfg/tiny-yolo-voc.cfg-
(Yolo) weightfilestd::stringNetwork weights file (if relative, relative to dataroot)weights/tiny-yolo-voc.weights-
(Yolo) namefilestd::stringCategory names file, or empty to fetch it from the network config file (if relative, relative to dataroot)-
(Yolo) nmsfloatNon-maximum suppression in percent confidence40.0Fjevois::Range<float>(0.0F, 100.0F)
(Yolo) threshfloatDetection threshold in percent confidence24.0Fjevois::Range<float>(0.0F, 100.0F)
(Yolo) hierthreshfloatHierarchical detection threshold in percent confidence50.0Fjevois::Range<float>(0.0F, 100.0F)
Detailed docs:DarknetYOLO
Copyright:Copyright (C) 2017 by Laurent Itti, iLab and the University of Southern California
License:GPL v3
Distribution:Unrestricted
Restrictions:None
Support URL:http://jevois.org/doc
Other URL:http://iLab.usc.edu
Address:University of Southern California, HNB-07A, 3641 Watt Way, Los Angeles, CA 90089-2520, USA