30 lines
729 B
Python
30 lines
729 B
Python
from fastapi import APIRouter, UploadFile
|
|
import cv2
|
|
import numpy as np
|
|
from app.core.embedder import get_embedding
|
|
from app.storage import save_known_face, load_embeddings, save_embeddings
|
|
|
|
router = APIRouter()
|
|
|
|
@router.post("/add")
|
|
async def add_face(name: str, file: UploadFile):
|
|
img_bytes = await file.read()
|
|
img = np.frombuffer(img_bytes, np.uint8)
|
|
img = cv2.imdecode(img, cv2.IMREAD_COLOR)
|
|
|
|
# Salva foto del volto noto
|
|
save_known_face(name, img)
|
|
|
|
# Genera embedding
|
|
emb = get_embedding(img)
|
|
|
|
# Aggiorna database
|
|
db = load_embeddings()
|
|
db[name] = emb.tolist()
|
|
save_embeddings(db)
|
|
|
|
return {
|
|
"status": "ok",
|
|
"name": name,
|
|
"embedding_len": len(emb)
|
|
}
|