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

Yolo_ED2_Demo-1.0.1.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

Yolo_ED2_Demo-1.0.1-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file Yolo_ED2_Demo-1.0.1.tar.gz.

File metadata

  • Download URL: Yolo_ED2_Demo-1.0.1.tar.gz
  • Upload date:
  • Size: 14.0 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_ED2_Demo-1.0.1.tar.gz
Algorithm Hash digest
SHA256 12b262a90acb11d632114469d3347ad14ee15417560aeb7f1fa9e44fa9ea902c
MD5 8cf58f3b0ca34de528137b809c671081
BLAKE2b-256 e36a35ed22c866033bd2455a39b4926bf1316de1b6dd2f5cfff46e19abccae9a

See more details on using hashes here.

File details

Details for the file Yolo_ED2_Demo-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: Yolo_ED2_Demo-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 14.7 kB
  • Tags: Python 3
  • 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_ED2_Demo-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b3de56bf7e325537331bae72304bb62894ef549af9664a63be2daba74c45fa8c
MD5 f76d0a5531717cd95c7a8850f97f8113
BLAKE2b-256 71cddc64026cee1ee2f236230cde2fb1608371c0aa4e688faccafcbaf963112d

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