DeepSight / main.py
ShadowGard3n's picture
First commit
36e7618
from fastapi import FastAPI, UploadFile, File
from fastapi.middleware.cors import CORSMiddleware
import numpy as np
import cv2
import shutil
import os
import uuid
from utils import process_image, process_video_stream
app = FastAPI(title="DeepSight Lite API")
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"],
)
@app.post("/predict-image")
async def predict_image(file: UploadFile = File(...)):
contents = await file.read()
nparr = np.frombuffer(contents, np.uint8)
img = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
results = process_image(img)
return {"status": "success", "data": results}
@app.post("/predict-video")
async def predict_video(file: UploadFile = File(...)):
temp_path = f"temp_{uuid.uuid4()}.mp4"
with open(temp_path, "wb") as buffer:
shutil.copyfileobj(file.file, buffer)
try:
detected_plates = process_video_stream(temp_path)
return {"status": "success", "plates": detected_plates}
finally:
if os.path.exists(temp_path):
os.remove(temp_path)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=7860)