import cv2 as cv | |
from .base_metric import BaseMetric | |
from ..factory import METRICS | |
class Detection(BaseMetric): | |
def __init__(self, **kwargs): | |
super().__init__(**kwargs) | |
def forward(self, model, *args, **kwargs): | |
img = args[0] | |
size = [img.shape[1], img.shape[0]] | |
try: | |
model.setInputSize(size) | |
except: | |
pass | |
# warmup | |
for _ in range(self._warmup): | |
model.infer(img) | |
# repeat | |
self._timer.reset() | |
for _ in range(self._repeat): | |
self._timer.start() | |
model.infer(img) | |
self._timer.stop() | |
return self._timer.getRecords() | |