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 def predict(self, frame: np.ndarray, queries: Sequence[str]) -> DetectionResult: raise NotImplementedError