LdDl / go-darknet

Go bindings for Darknet (YOLO v4 / v7-tiny / v3)
Apache License 2.0
82 stars 19 forks source link
computer-vision darknet darknet-bindings hacktoberfest neural-network object-detection yolo yolov2 yolov2-tiny yolov3 yolov3-tiny yolov4 yolov7 yolov7-tiny

GoDoc Sourcegraph Go Report Card GitHub tag

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

go-darknet is a Go package, which uses Cgo to enable Go applications to use V4/V7-tiny/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 v7: https://arxiv.org/abs/2207.02696 (WARNING: Only 'tiny' variation works currently)

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.

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:

Documentation

See go-darknet's API documentation at GoDoc.

License

go-darknet follows Darknet's license.