Skip to content

Commit

Permalink
Merge pull request #1201 from mikel-brostrom/yolo-abc
Browse files Browse the repository at this point in the history
yolo interface inherits abc
  • Loading branch information
mikel-brostrom authored Nov 24, 2023
2 parents f964fe4 + 9e90fdf commit 03b82a5
Showing 1 changed file with 7 additions and 22 deletions.
29 changes: 7 additions & 22 deletions examples/detectors/yolo_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,33 +5,18 @@
import numpy as np
import torch
from ultralytics.engine.results import Results
from abc import ABC, abstractmethod


class YoloInterface:
class YoloInterface(ABC):

def inference(self, im):
raise NotImplementedError('Subclasses must implement this method.')
@abstractmethod
def __call__(self, im):
pass

@abstractmethod
def postprocess(self, preds):
raise NotImplementedError('Subclasses must implement this method.')

def filter_results(self, i, predictor):
if predictor.tracker_outputs[i].size != 0:
# filter boxes masks and pose results by tracking results
sorted_confs = predictor.tracker_outputs[i][:, 5].argsort()[::-1]
predictor.tracker_outputs[i] = predictor.tracker_outputs[i][sorted_confs]
yolo_confs = predictor.results[i].boxes.conf.cpu().numpy()
tracker_confs = predictor.tracker_outputs[i][:, 5]
mask = np.in1d(yolo_confs, tracker_confs)

if predictor.results[i].masks is not None:
predictor.results[i].masks = predictor.results[i].masks[mask]
predictor.results[i].boxes = predictor.results[i].boxes[mask]
elif predictor.results[i].keypoints is not None:
predictor.results[i].boxes = predictor.results[i].boxes[mask]
predictor.results[i].keypoints = predictor.results[i].keypoints[mask]
else:
pass
pass

def get_scaling_factors(self, im, im0):

Expand Down

0 comments on commit 03b82a5

Please sign in to comment.