Spaces:
Running
Running
from fastapi import FastAPI, UploadFile, File | |
from transformers import YolosForObjectDetection, YolosImageProcessor | |
from PIL import Image | |
import torch | |
import io | |
app = FastAPI() | |
# Load the YOLOv5 model and processor from Hugging Face | |
model = YolosForObjectDetection.from_pretrained('ultralytics/yolov5') | |
processor = YolosImageProcessor.from_pretrained('ultralytics/yolov5') | |
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') | |
model.to(device) | |
model.eval() | |
async def predict(file: UploadFile = File(...)): | |
contents = await file.read() | |
image = Image.open(io.BytesIO(contents)) | |
inputs = processor(images=image, return_tensors="pt").to(device) | |
outputs = model(**inputs) | |
return outputs | |