darknet-rust: A Rust bindings for AlexeyAB's Darknet
The crate is a Rust wrapper for AlexeyAB's Darknet.
It provides the following features:
- Provide both training and inference capabilities.
- Load config files and model weights from upstream without modifications.
- Safe type wrappers for C API. It includes network, detection and layer types.
Minimal rustc version: 1.43.0
Version 0.3 changes:
- Error handling with anyhow
Examples
The tiny_yolov3_inference example automatically downloads the YOLOv3 tiny weights, and produces inference results in output
directory.
The run_inference example is an utility program that you can test a combination of model configs and weights on image files. For example, you can test the YOLOv4 mode.
Read the example code in examples/
to understand the actual usage. More model configs and weights can be found here: (https://pjreddie.com/darknet/yolo/).
Usage
Add our crate to your Cargo.toml
. You may take a look at the API documentation.
darknet = "^0.3.0"
We suggest earlier users update to newer version from 0.1. There are several memory leakage and several bugs fixed.
Cargo Features
enable-cuda
: Enable CUDA (expects CUDA 10.x and cuDNN 7.x).enable-opencv
: Enable OpenCV.runtime
: Link to darknet dynamic library. For example,libdark.so
on Linux.buildtime-bindgen
: Generate bindings from darknet headers.
License
The crate is licensed under MIT.
Credits
Huge thanks to jerry73204