Install

pip install opencv-python
pip install numpy
git clone https://github.com/hank-ai/darknet
cd darknet
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..  
make -j4 package
sudo dpkg -i darknet-<INSERT-VERSION-YOU-BUILT-HERE>.deb

Inference

import os
import cv2
import darknet

cfg_file = "yolov2-tiny.cfg"
names_file = "coco.names"
weights_file = "yolov2-tiny.weights"

darknet.set_verbose(True)
darknet.show_version_info()

# First thing we do is load the neural network.
network = darknet.load_net_custom(cfg_file.encode("ascii"), weights_file.encode("ascii"), 0, 1)
class_names = open(names_file).read().splitlines()

# Generate some random colours to use for each class.  If you don't want the colours to be random,
# then set the seed to a hard-coded value.
colours = darknet.class_colors(class_names)

prediction_threshold = 0.5
width = darknet.network_width(network)
height = darknet.network_height(network)

# Iterate over several sample images in the repo's "artwork" directory.
for filename in ["dog.jpg"]:
    print(filename)

    # use OpenCV to load the image and swap OpenCV's usual BGR for the RGB that Darknet requires
    image_bgr = cv2.imread(filename)
    image_rgb = cv2.cvtColor(image_bgr, cv2.COLOR_BGR2RGB)
    image_resized = cv2.resize(image_rgb, (width, height), interpolation=cv2.INTER_LINEAR)

    # create a Darknet-specific image structure with the resized image
    darknet_image = darknet.make_image(width, height, 3)
    darknet.copy_image_from_bytes(darknet_image, image_resized.tobytes())

    # this is where darknet is called to do the magic!
    detections = darknet.detect_image(network, class_names, darknet_image, thresh=prediction_threshold)
    darknet.free_image(darknet_image)

    # display the results on the console
    darknet.print_detections(detections, True)
    
    # draw some boxes and labels over what was detected
    image_with_boxes = darknet.draw_boxes(detections, image_resized, colours)
    
    #cv2.imshow("annotated image", cv2.cvtColor(image_with_boxes, cv2.COLOR_RGB2BGR))
    
    if cv2.waitKey() & 0xFF == ord('q'):
        break;

darknet.free_network_ptr(network)
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model is not currently available via any of the supported Inference Providers.
The model cannot be deployed to the HF Inference API: The model has no library tag.