adhisetiawan's picture
Deploy CXR report generation demo
16d6749
Raw
History Blame Contribute Delete
764 Bytes
from __future__ import annotations
from abc import ABC, abstractmethod
from collections.abc import Sequence
from PIL import Image
from src.schemas.detection import DetectionResult
class Detector(ABC):
"""Discovers and localizes radiographic findings (Stage 1)."""
@abstractmethod
def detect(
self,
images: Sequence[Image.Image],
input_images: list[str],
case_id: str | None = None,
) -> tuple[DetectionResult, list[Image.Image]]:
"""Return (DetectionResult, processed_images).
processed_images are the padded versions of the input images used
internally during detection; they are forwarded to Stage 2 and
visualization so that coordinate spaces remain consistent.
"""