Spaces:
Running
Running
| from typing import NamedTuple, Optional, Sequence | |
| import numpy as np | |
| class DetectionResult(NamedTuple): | |
| boxes: np.ndarray | |
| scores: Sequence[float] | |
| labels: Sequence[int] | |
| label_names: Optional[Sequence[str]] = None | |
| class ObjectDetector: | |
| """Detector interface to keep inference agnostic to model details.""" | |
| name: str | |
| supports_batch: bool = False | |
| max_batch_size: int = 1 | |
| def predict(self, frame: np.ndarray, queries: Sequence[str]) -> DetectionResult: | |
| raise NotImplementedError | |
| def predict_batch(self, frames: Sequence[np.ndarray], queries: Sequence[str]) -> Sequence[DetectionResult]: | |
| """Default: sequential fallback""" | |
| return [self.predict(f, queries) for f in frames] | |