poi_Engineering / api /detector.py
Juartaurus's picture
Upload folder using huggingface_hub
1865436
import sys
sys.path.append("./")
import uvicorn
import shutil
from fastapi import FastAPI, File, UploadFile, Request
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
from fastapi.staticfiles import StaticFiles
from src.ss.signboard_detect import SignBoardDetector
signboardDetector = SignBoardDetector(checkpoint="./checkpoints/ss/ss.ckpt")
app = FastAPI()
app.mount("/static", StaticFiles(directory="static"), name="static")
templates = Jinja2Templates(directory="templates")
@app.get("/upload", response_class=HTMLResponse)
async def upload(request: Request):
return templates.TemplateResponse("detector.html", {"request": request})
@app.post("/uploadfile")
async def create_upload_file(file: UploadFile = File(...)):
if file.content_type.split("/")[0] != "image":
return {"file_name": file.filename,
"file_type": file.content_type,
"warning": "Need a image file instead."}
else:
with open(f"./static/images/{file.filename}", "wb") as buffer:
shutil.copyfileobj(file.file, buffer)
results = signboardDetector.inference_signboard(image=[f"./static/images/{file.filename}"], score=0.7)
file.file.close()
return {"results": results}
if __name__ == "__main__":
# main()
uvicorn.run("api.detector:app", reload=True, port=8001)