DarkHelp  v1.8.8-2
C++ API for the neural network framework Darknet
Looking for a C++ dev who knows OpenCV?
I'm looking for work. Hire me!

DarkHelp has several required and many optional parameters.

Required parameters are the files that together are the neural network: the .cfg, .weights, and .names files. Also required is 1 or more image against which the neural network will run.

Assuming we are working with a neural network named "cars", at a minimum you'd call DarkHelp on the CLI like this:

DarkHelp cars.cfg cars.weights cars.names *.jpg

DarkHelp can also be used with video files instead of static images. You call it exactly the same way. For example:

DarkHelp cars.cfg cars.weights cars.names *.mp4

Any video file or image type that can be opened using OpenCV is valid.

The filename or directory name at the end of the command is optional when -l is used. See the table below for details.
Short Name Long Name Description
-a <WxH> –resize2 ... After the image has been annotated, resize it as specified. For example, "--resize2 800x600" or "-a 640x480".
-b <WxH> –resize1 ... Before calling DarkHelp::NN::predict(), resize the image. For example, "-b 1024x768".
-D <darknet,opencv,opencvcpu> –driver ... Select if Darknet or OpenCV will be used. See DarkHelp::EDriver for details.
-d <true,false,on,off,1,0> –duration ... Determines if the duration is added to top left of the annotated image. See DarkHelp::Config::annotation_include_duration for dtails.
-f <float> –fontscale ... Determines how the font in OpenCV2 is scaled when drawing the annotated image. See DarkHelp::Config::annotation_font_scale for details.
-g –greyscale Forces all input images to be loaded in greyscale.
-e <float> –shade ... Amount of alpha-blending to use when shading in rectangles.
-h –help Display short or extended help information on each parameter.
-i <true,false,on,off,1,0> –timestamp ... Determines if a timestamp is added to the bottom of the annotated image.See DarkHelp::Config::annotation_include_timestamp for details.
-j –json Enable the JSON-format output once DarkHelp has finished processing all images. See Shell Scripting for details.
-k –keep Annotated images will be kept (written to disk). The location of each image is logged at the time the image is saved. For example:
-> annotated image saved to "/tmp/darkhelp_14111/darkhelp_14111_output_0.png".
Especially useful when combined with the -j flag, or when preparing a large number of images for a presentation.
-l <filename> –list ... Read the list of image files to load from the given text file. One image per line. Blank lines and lines that start with # are ignored.
-n <float> –nms ... The non-maximal suppression threshold to use when predicting. See DarkHelp::Config::non_maximal_suppression_threshold for details.
-o <true,false,on,off,1,0> –autohide ... Auto-hide labels.
-p <true,false,on,off,1,0> –percentage ... Determines if percentages are added to annotation labels. See DarkHelp::Config::names_include_percentage for details.
-r –random Randomizes the order in which images are loaded.
-s –slideshow Starts DarkHelp in "slideshow" mode, where a new image is shown regularly.
-T <true,false,on,off,1,0> –tiles ... Determines if large images are processed by breaking into tiles.
-t <float> –threshold ... The threshold to use when predicting with the neural net. See DarkHelp::Config::threshold for details.
-Y <jpg,png> –type ... The file type DarkHelp should use when saving image files. PNG files are larger and slower to write. JPG files are faster but use lossy compreesion.
-y <float> –hierarchy ... The hierarchy threshold to use when predicting. See DarkHelp::Config::hierarchy_threshold for details.
  –outdir ... Output directory to use when saving files. Default is /tmp/.
  –pixelate ... Determines if predictions are pixelated in the output annotation image. See DarkHelp::Config::annotation_pixelate_size for details.
  –redirection ... Determines if STDOUT and STDERR output from Darknet is redirected to /dev/null. See DarkHelp::Config::redirect_darknet_output for details.
  –tile-edge ... When tiling is enabled, this determines how close objects must be to the tile's edge to be re-combined. Range is 0.01-1.0+. Default is 0.25. See DarkHelp::Config::tile_edge_factor for details.
  –tile-rect ... When tiling is enabled, this determines how similarly objects must line up across tiles to be re-combined. Range is 1.0-2.0+. Default is 1.20. See DarkHelp::Config::tile_rect_factor for details.
  –version Display the version string.