Handle case where face recognition does not respond

This commit is contained in:
Nicolas Mowen 2025-03-26 09:36:16 -06:00
parent 900f148aa0
commit 3429fe442f
2 changed files with 22 additions and 0 deletions

View File

@ -198,6 +198,16 @@ async def register_face(request: Request, name: str, file: UploadFile):
context: EmbeddingsContext = request.app.embeddings
result = context.register_face(name, await file.read())
if not isinstance(result, dict):
return JSONResponse(
status_code=500,
content={
"success": False,
"message": "Could not process request. Try restarting Frigate.",
},
)
return JSONResponse(
status_code=200 if result.get("success", True) else 400,
content=result,
@ -214,6 +224,16 @@ async def recognize_face(request: Request, file: UploadFile):
context: EmbeddingsContext = request.app.embeddings
result = context.recognize_face(await file.read())
if not isinstance(result, dict):
return JSONResponse(
status_code=500,
content={
"success": False,
"message": "Could not process request. Try restarting Frigate.",
},
)
return JSONResponse(
status_code=200 if result.get("success", True) else 400,
content=result,

View File

@ -186,6 +186,7 @@ class FaceRealTimeProcessor(RealTimeProcessorApi):
if not face_box:
logger.debug("Detected no faces for person object.")
cv2.imwrite(f"/media/frigate/face_detect/{datetime.datetime.now().timestamp()}_miss.jpg", person)
return
face_frame = person[
@ -195,6 +196,7 @@ class FaceRealTimeProcessor(RealTimeProcessorApi):
try:
face_frame = cv2.cvtColor(face_frame, cv2.COLOR_RGB2BGR)
cv2.imwrite(f"/media/frigate/face_detect/{datetime.datetime.now().timestamp()}_hit.jpg", person)
except Exception:
return
else: