import cv2 as cv | |
from .base_metric import BaseMetric | |
from ..factory import METRICS | |
class Recognition(BaseMetric): | |
def __init__(self, **kwargs): | |
super().__init__(**kwargs) | |
def forward(self, model, *args, **kwargs): | |
img, bboxes = args | |
self._timer.reset() | |
if bboxes is not None: | |
for idx, bbox in enumerate(bboxes): | |
for _ in range(self._warmup): | |
model.infer(img, bbox) | |
for _ in range(self._repeat): | |
self._timer.start() | |
model.infer(img, bbox) | |
self._timer.stop() | |
else: | |
for _ in range(self._warmup): | |
model.infer(img, None) | |
for _ in range(self._repeat): | |
self._timer.start() | |
model.infer(img, None) | |
self._timer.stop() | |
return self._timer.getRecords() | |