"""Perception layer: YOLO person/vehicle detection + HSV road masking. This package owns everything that turns a raw BGR camera frame into a :class:`gowelcome.types.PerceptionResult`. Heavy/optional dependencies (``ultralytics``, ``cv2``) are imported lazily inside the classes below so this package stays importable on machines without them (e.g. off-robot unit tests). """ from __future__ import annotations from gowelcome.perception.detector import YoloDetector from gowelcome.perception.road_mask import RoadDetector from gowelcome.perception.vision_thread import PerceptionThread __all__ = ["YoloDetector", "RoadDetector", "PerceptionThread"]