Spaces:
Runtime error
Runtime error
File size: 1,355 Bytes
eabc9cd aabae8d eabc9cd aabae8d eabc9cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
from fastapi import APIRouter, Depends, HTTPException
from fastapi.responses import JSONResponse
from apps.services.foward.fw_middleware import forward_request, forward_middleware
from .models.fd_model import FaceDetectionModel
from .controllers.fd_controller import faces_detection_controller
router = APIRouter(prefix='/fd')
router_base_configs = {
"tags": ["fd"],
"response_class": JSONResponse
}
# Face detection
@router.post("/", **router_base_configs)
async def faces_detection(
image: FaceDetectionModel.image = FaceDetectionModel.image_default,
fw_index: FaceDetectionModel.fw_index = Depends(forward_middleware)
):
# Forward request
fw_data = {
"files": {"image": image.file}
}
fw_response = forward_request(fw_index, fw_data, '/api/fd/')
if fw_response is not None:
return JSONResponse({
"faces": fw_response["data"]["faces"]
})
# Check if image is None
if image is None:
raise HTTPException(status_code=400, detail="Image is required")
# Check if image is empty
if image.filename == '':
raise HTTPException(status_code=400, detail="Image is empty")
# Read image
image_bytes = await image.read()
# Process image
detected_faces = faces_detection_controller(image_bytes)
return JSONResponse({"faces": detected_faces})
|