All Projects → LdDl → go-darknet

LdDl / go-darknet

Licence: Apache-2.0 license
Go bindings for Darknet (YOLO v4 / v3)

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
c
50402 projects - #5 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to go-darknet

darknet
php ffi darknet
Stars: ✭ 21 (-62.5%)
Mutual labels:  yolo, darknet, yolov2, yolov3, yolov4
object-tracking
Multiple Object Tracking System in Keras + (Detection Network - YOLO)
Stars: ✭ 89 (+58.93%)
Mutual labels:  yolo, darknet, yolov2, yolov3
odam
ODAM - Object detection and Monitoring
Stars: ✭ 16 (-71.43%)
Mutual labels:  darknet, yolov3, darknet-bindings, yolov4
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 (-64.29%)
Mutual labels:  yolo, darknet, yolov2, yolov3
ScaledYOLOv4
Scaled-YOLOv4: Scaling Cross Stage Partial Network
Stars: ✭ 1,944 (+3371.43%)
Mutual labels:  yolo, yolov3, yolov4
darknet.js
A NodeJS wrapper of pjreddie's darknet / yolo.
Stars: ✭ 61 (+8.93%)
Mutual labels:  yolo, darknet, yolov3-tiny
simpleAICV-pytorch-ImageNet-COCO-training
SimpleAICV:pytorch training example on ImageNet(ILSVRC2012)/COCO2017/VOC2007+2012 datasets.Include ResNet/DarkNet/RetinaNet/FCOS/CenterNet/TTFNet/YOLOv3/YOLOv4/YOLOv5/YOLOX.
Stars: ✭ 276 (+392.86%)
Mutual labels:  darknet, yolov3, yolov4
yolor
implementation of paper - You Only Learn One Representation: Unified Network for Multiple Tasks (https://arxiv.org/abs/2105.04206)
Stars: ✭ 1,867 (+3233.93%)
Mutual labels:  yolo, darknet, yolov4
Yolo annotation tool
Annotation tool for YOLO in opencv
Stars: ✭ 17 (-69.64%)
Mutual labels:  yolo, darknet, yolov3
Pine
🌲 Aimbot powered by real-time object detection with neural networks, GPU accelerated with Nvidia. Optimized for use with CS:GO.
Stars: ✭ 202 (+260.71%)
Mutual labels:  yolo, darknet, yolov3
JSON2YOLO
Convert JSON annotations into YOLO format.
Stars: ✭ 222 (+296.43%)
Mutual labels:  yolo, darknet, yolov3
Mobilenet Yolo
MobileNetV2-YoloV3-Nano: 0.5BFlops 3MB HUAWEI P40: 6ms/img, YoloFace-500k:0.1Bflops 420KB🔥🔥🔥
Stars: ✭ 1,566 (+2696.43%)
Mutual labels:  yolo, darknet, yolov3
Yolov5
YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
Stars: ✭ 19,914 (+35460.71%)
Mutual labels:  yolo, yolov3, yolov4
ffcnn
ffcnn is a cnn neural network inference framework, written in 600 lines C language.
Stars: ✭ 50 (-10.71%)
Mutual labels:  yolo, darknet, yolov3
Yolov3
YOLOv3 in PyTorch > ONNX > CoreML > TFLite
Stars: ✭ 8,159 (+14469.64%)
Mutual labels:  yolo, yolov3, yolov4
Yolo person detect
person detect based on yolov3 with several Python scripts
Stars: ✭ 212 (+278.57%)
Mutual labels:  yolo, darknet, yolov3
object-detection-indonesian-traffic-signs-using-yolo-algorithm
Pendeteksian rambu lalu lintas khas Indonesia menggunakan dataset custom dan menggunakan algoritma Deep Learning You Only Look Once v4
Stars: ✭ 26 (-53.57%)
Mutual labels:  darknet, yolov3, yolov4
Alturos.ImageAnnotation
A collaborative tool for labeling image data for yolo
Stars: ✭ 47 (-16.07%)
Mutual labels:  yolo, yolov2, yolov3
tfjs-yolo
YOLO v3 and Tiny YOLO v1, v2, v3 with Tensorflow.js
Stars: ✭ 108 (+92.86%)
Mutual labels:  yolo, yolov2, yolov3
Bmw Yolov4 Training Automation
This repository allows you to get started with training a state-of-the-art Deep Learning model with little to no configuration needed! You provide your labeled dataset or label your dataset using our BMW-LabelTool-Lite and you can start the training right away and monitor it in many different ways like TensorBoard or a custom REST API and GUI. NoCode training with YOLOv4 and YOLOV3 has never been so easy.
Stars: ✭ 533 (+851.79%)
Mutual labels:  yolo, darknet, yolov3

GoDoc Sourcegraph Go Report Card GitHub tag

go-darknet: Go bindings for Darknet (Yolo V4, Yolo V3)

go-darknet is a Go package, which uses Cgo to enable Go applications to use YOLO V4/V3 in Darknet.

Since this repository https://github.com/gyonluks/go-darknet is no longer maintained I decided to move on and make little different bindings for Darknet.

This bindings aren't for official implementation but for AlexeyAB's fork.

Paper Yolo v4: https://arxiv.org/abs/2004.10934

Paper Yolo v3: https://arxiv.org/abs/1804.02767

Table of Contents

Why

Why does this repository exist?

Because this repository https://github.com/gyonluks/go-darknet is no longer maintained.

What is purpose of this bindings when you can have GoCV (bindings to OpenCV) and it handle Darknet YOLO perfectly?

Well, you don't need bunch of OpenCV dependencies and OpenCV itself sometimes.

Example of such project here: https://github.com/LdDl/license_plate_recognition#license-plate-recognition-with-go-darknet---- .

Requirements

You need to install fork of darknet. Latest commit I've tested is here. It corresponds last official YOLOv4 release

Use provided Makefile.

  • For CPU-based instalattion:

    make install_darknet
  • For both CPU and GPU-based instalattion if you HAVE CUDA installed:

    make install_darknet_gpu

    Note: I've tested CUDA 10.2 and cuDNN is 7.6.5)

  • For both CPU and GPU-based instalattion if you HAVE NOT CUDA installed:

    make install_darknet_gpu_cuda

    Note: There is some struggle in Makefile for cuDNN, but I hope it works in Ubuntu atleast. Do not forget provide proper CUDA and cuDNN versions.

Installation

go get github.com/LdDl/go-darknet

Usage

Example Go program is provided in the examples directory. Please refer to the code on how to use this Go package.

Building and running program:

  • Navigate to examples folder

    cd ${YOUR PATH}/github.com/LdDl/go-darknet/cmd/examples
  • Download dataset (sample of image, coco.names, yolov4.cfg (or v3), yolov4.weights(or v3)).

    #for yolo v4
    ./download_data.sh
    #for yolo v3
    ./download_data_v3.sh
  • Note: you don't need coco.data file anymore, because sh-script above does insert coco.names into 'names' field in yolov4.cfg file (so AlexeyAB's fork can deal with it properly) So last rows in yolov4.cfg file will look like:

    ......
    [yolo]
    .....
    iou_loss=ciou
    nms_kind=greedynms
    beta_nms=0.6
    
    names = coco.names # this is path to coco.names file
  • Also do not forget change batch and subdivisions sizes from:

    batch=64
    subdivisions=8

    to

    batch=1
    subdivisions=1

    It will reduce amount of VRAM used for detector test.

  • Build and run example program Yolo V4:

    go build -o base_example/main base_example/main.go && ./base_example/main --configFile=yolov4.cfg --weightsFile=yolov4.weights --imageFile=sample.jpg

    Output should be something like this:

    traffic light (9): 73.5040% | start point: (238,73) | end point: (251, 106)
    truck (7): 96.6401% | start point: (95,79) | end point: (233, 287)
    truck (7): 96.4774% | start point: (662,158) | end point: (800, 321)
    truck (7): 96.1841% | start point: (0,77) | end point: (86, 333)
    truck (7): 46.8694% | start point: (434,173) | end point: (559, 216)
    car (2): 99.7370% | start point: (512,188) | end point: (741, 329)
    car (2): 99.2532% | start point: (260,191) | end point: (422, 322)
    car (2): 99.0333% | start point: (425,201) | end point: (547, 309)
    car (2): 83.3920% | start point: (386,210) | end point: (437, 287)
    car (2): 75.8621% | start point: (73,199) | end point: (102, 274)
    car (2): 39.1925% | start point: (386,206) | end point: (442, 240)
    bicycle (1): 76.3121% | start point: (189,298) | end point: (253, 402)
    person (0): 97.7213% | start point: (141,129) | end point: (283, 362)

    Yolo V3:

    go build main.go && ./main --configFile=yolov3.cfg --weightsFile=yolov3.weights --imageFile=sample.jpg
    

    Output should be something like this:

    truck (7): 49.5123% | start point: (0,136) | end point: (85, 311)
    car (2): 36.3694% | start point: (95,152) | end point: (186, 283)
    truck (7): 48.4177% | start point: (95,152) | end point: (186, 283)
    truck (7): 45.6520% | start point: (694,178) | end point: (798, 310)
    car (2): 76.8402% | start point: (1,145) | end point: (84, 324)
    truck (7): 25.5920% | start point: (107,89) | end point: (215, 263)
    car (2): 99.8782% | start point: (511,185) | end point: (748, 328)
    car (2): 99.8193% | start point: (261,189) | end point: (427, 322)
    car (2): 99.6405% | start point: (426,197) | end point: (539, 311)
    car (2): 74.5627% | start point: (692,186) | end point: (796, 316)
    car (2): 72.7975% | start point: (388,206) | end point: (437, 276)
    bicycle (1): 72.2760% | start point: (178,270) | end point: (268, 406)
    person (0): 97.3007% | start point: (143,135) | end point: (268, 343)

Documentation

See go-darknet's API documentation at GoDoc.

License

go-darknet follows Darknet's license.

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].