from typing import Dict | |
from ultralytics import YOLO | |
import requests | |
from io import BytesIO | |
from PIL import Image | |
import time | |
import logging | |
import os | |
class EndpointHandler(): | |
def __init__(self, path=""): | |
# load the model | |
logging.info(f'value of path is : {path}') | |
current_directory = os.getcwd() | |
logging.info(f'current dir: {current_directory}') | |
logging.info(f'all files: {os.listdir(current_directory)}') | |
# model_path = "yolov8m_detect_usdl.pt" | |
# self.model = YOLO(model_path) | |
# print('Yolo model loaded successfully') | |
def __call__(self, data: Dict) -> Dict: | |
logging.info(f'Value of data is : {data}') | |
# 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 -> results[0].boxes.data.tolist() | |
return {"bbox": data} |