File size: 889 Bytes
f851167 | 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 26 27 28 29 30 | from typing import Dict
from ultralytics import YOLO
import requests
from io import BytesIO
from PIL import Image
import time
class EndpointHandler():
def __init__(self, path=""):
# load the model
print('Loading the yolo model')
model_path = "yolov8m_detect_usdl.pt"
self.model = YOLO(model_path)
print('Yolo model loaded successfully')
def __call__(self, data: Dict) -> Dict:
image_url = data.get('image_url')
print(f'Image url is : {image_url}')
response = requests.get(image_url)
pil_image = Image.open(BytesIO(response.content))
print('Model inference started....')
t1 = time.time()
results = self.model(pil_image)
print(f'TIME Model inference: {time.time() - t1}')
# postprocess the prediction
return {"bbox": results[0].boxes.data.tolist()} |