Permalink
757a29d Feb 6, 2017
@prabindh @pjreddie
63 lines (36 sloc) 2.69 KB

Darknet Logo

Darknet-cpp

Darknet-cpp project is a bug-fixed and C++ compilable version of darknet, an open source neural network framework written in C and CUDA.

Features

Usage

  • make darknet - only darknet (original code), with OPENCV=0
  • make darknet-cpp - only the CPP version, with OPENCV=1
  • make darknet-cpp-shared - build the shared-lib version (without darknet.c calling wrapper), OPENCV=1

    darknet-cpp version supports OpenCV3. Tested on Ubuntu 16.04 anad CUDA 8.x

Steps to train (Yolov2)

Download latest tag of darknet-cpp, ex

https://github.com/prabindh/darknet/tree/v3.76

  1. Create Yolo compatible training data-set. I use this to create Yolo compatible bounding box format file, and training list file.

https://github.com/prabindh/euclid

This creates a training list file that will be needed in next step.

  1. Change 3 files per below:

    • yolo-voc.cfg - change line classes=20 to suit desired number of classes
    • yolo-voc.cfg - change the number of filters in the CONV layer above the region layer - #classes + #coords(4) + 1)*(NUM)
    • voc.data - change line classes=20, and paths to training image list file
    • voc.names - number of lines must be equal the number of classes
  2. Place label-images corresponding to name of classes in data/labels, ex - data/labels/myclassname1.png

  3. Download http://pjreddie.com/media/files/darknet19_448.conv.23

  4. Train as below

    ./darknet-cpp detector train ./cfg/voc-myclasses.data ./cfg/yolo-myconfig.cfg darknet19_448.conv.23

Atleast for the few initial iterations, observe the log output, and ensure all images are found and being used. After convergence, detection can be performed using standard steps.

Darknet

Darknet is an open source neural network framework written in C and CUDA. It is fast, easy to install, and supports CPU and GPU computation.

For more information see the Darknet project website.

For questions or issues please use the Google Group.