from ultralytics import YOLO from PIL import Image CONF_THRESHOLD = 0.5 class BillDetector: def __init__(self, model_path: str): self.model = YOLO(model_path) def detect(self, image: Image.Image): """ Run YOLOv8 inference and return detected bill classes. Returns a list of class names (e.g., ['100', '50']). """ results = self.model(image, conf=CONF_THRESHOLD) detected_classes = [] for r in results: for box in r.boxes: cls_id = int(box.cls[0]) cls_name = self.model.names[cls_id] detected_classes.append(cls_name) return detected_classes