File size: 710 Bytes
eb720c2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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