0

I have created a class in which am loading my custom weights for yolo v5, v7, and v8 to get detection out of this class I am getting xyxy values and class name. now I want to deploy deep SORT on it by using this specific class with no extra files. in my detection class I am simply using torch.hub.load() and access to my basic functions in yolo v5, v7, and v8. now I am looking for specific and straightforward techniques to apply deep sort by using my detection class. is it possible? if it is possible please tell me how can I do it. if it is not possible, what is the simplest method to implement deep sort?

import torch
import cv2


class YoloDetector:
    def __init__(self, conf_thold, device, weights_path, expected_objs):
        # taking the image file path, confidence level and GPU or CPU selection
        self._model = torch.hub.load("WongKinYiu/yolov7", "custom", f"{weights_path}", trust_repo=True)
        self._model.conf = conf_thold  # NMS confidence threshold
        self._model.classes = expected_objs  # (optional list) filter by class
        self._model.to(device)  # specifying device type

    def process_image(self, image):
        results = self._model(image)
        predictions = []    # final list to return all detections

        detection = results.pandas().xyxy[0]
        for i in range(len(detection)):
            # getting bbox and class name one by one
            class_name = detection["name"]
            xmin = detection["xmin"][i]
            ymin = detection["ymin"][i]
            xmax = detection["xmax"][i]
            ymax = detection["ymax"][i]
            # parallely appending the values in list using dictionary
            predictions.append({'class': class_name[i], 'bbox': [int(xmin), int(ymin), int(xmax), int(ymax)]})

        return predictions

that is the code I am using for getting detections now please tell me how can I implement deep sort by using this.

Christoph Rackwitz
  • 11,317
  • 4
  • 27
  • 36

0 Answers0