File size: 758 Bytes
f9e010d
83382ca
94fd512
f9e010d
 
 
340ad0f
 
 
 
 
 
 
 
 
f9e010d
 
 
 
94fd512
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from ultralytics import YOLO
import cv2
import torch

class LBWDetector:
    def __init__(self, model_path='best.pt'):
        # Temporarily override torch.load to use weights_only=False
        original_load = torch.load
        def custom_load(*args, **kwargs):
            kwargs['weights_only'] = False
            return original_load(*args, **kwargs)
        torch.load = custom_load
        self.model = YOLO(model_path)
        # Restore original torch.load
        torch.load = original_load

    def detect_objects(self, frame):
        results = self.model.predict(source=frame, conf=0.3, save=False, verbose=False)
        detections = results[0].boxes.data.cpu().numpy()  # x1, y1, x2, y2, conf, class
        return detections, results[0].names