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

@app.post("/predict/")
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