Skip to main content

Run inference on Yolo Distribution Distillation model.

Project description

Yolo Ensemble Distribution Distillation

This repository contains code for running a model trained by distilling the distribution of an ensemble of Yolo teacher models into a single student models. This method improves the models performance and uncertainty estimation by leveraging the combined knowledge of multiple teacher models to distill a student model to predict a similar output distribution. The distilled model is fast with inference speed suitable for real-time apllications.

Example Usage

import torch
import cv2
import numpy as np
from yolo_ens_dist.utilz.utils import plot_boxes_cv2, plot_boxes_cv2_uncertainty, load_class_names
from yolo_ens_dist.utilz.torch_utils import do_detect
from yolo_ens_dist.model.models import Yolo_Ensemble_Distillation


conf_thresh = 0.4
nms_thresh = 0.4
height = 416
width = 416
num_classes = 10
imgfile = 'data/images/kitti/kitti_example_2.png'
weightsfile = 'weights/clean/bdd/dist/Yolo_bdd_teachers_only_1.pth'
class_names_path = 'data/bdd.names'
box_uncertainties = True


device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
class_names = load_class_names(class_names_path)
model = Yolo_Ensemble_Distillation(yolov3conv137weight=None, n_classes=num_classes, inference=True, temp=1, vis=True)

pretrained_dict = torch.load(weightsfile, map_location=device)
model.load_state_dict(pretrained_dict)
if device.type == 'cuda':
    model.cuda()

img = cv2.imread(imgfile)
sized = cv2.resize(img, (width, height))
sized = cv2.cvtColor(sized, cv2.COLOR_BGR2RGB)
boxes = do_detect(model, sized, conf_thresh, nms_thresh, uncertainties=True)

if box_uncertainties:
    output_image = plot_boxes_cv2_uncertainty(img, boxes[0][0], class_names=class_names)
else:
    output_image = plot_boxes_cv2(img, boxes[0][0], class_names=class_names)

cv2.imshow("frame", output_image)
cv2.waitKey(0)

alt text

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

File details

Details for the file Yolo Distribution Distillation Demo-1.0.0.tar.gz.

File metadata

  • Download URL: Yolo Distribution Distillation Demo-1.0.0.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.6.13

File hashes

Hashes for Yolo Distribution Distillation Demo-1.0.0.tar.gz
Algorithm Hash digest
SHA256 37f35571be99c5bb1090c5a078faeaec5aec9b9ef5a9644e5028a1f525279b95
MD5 9349215100b4a399ced93fa4634cba14
BLAKE2b-256 8489ae4a7dab2678dead7b39cba7279b7d5306917f9cce5e6b0bd785e1f75a13

See more details on using hashes here.

File details

Details for the file Yolo_Distribution_Distillation_Demo-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for Yolo_Distribution_Distillation_Demo-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ae478b3a416713225b110cdab6bd38cb1356dc7848833c8e8e77672cbf95d6f7
MD5 d2f18e77e9c985db2cd0af7c65d9d301
BLAKE2b-256 1507016562385bc35a9cce98c4c9ef4674cc88b191591eb916a5cc1001ccf968

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page