From e1f19c081d18b66c897340f233102d7537c8c511 Mon Sep 17 00:00:00 2001 From: maya-ots Date: Mon, 23 Mar 2026 15:43:44 +0100 Subject: [PATCH 1/2] feat : add compute_event_embedding to FaceEmbeddingService --- app/service/face_embedding.py | 33 +++++++++++++++++++ ...MultiAImultAI-back.venvScriptsActivate.ps1 | 7 ++++ 2 files changed, 40 insertions(+) create mode 100644 ersLenovoOneDriveDesktopMultiAImultAI-back.venvScriptsActivate.ps1 diff --git a/app/service/face_embedding.py b/app/service/face_embedding.py index 7d4f6d4..0c40c04 100644 --- a/app/service/face_embedding.py +++ b/app/service/face_embedding.py @@ -151,6 +151,39 @@ async def compute_average_embedding( return averaged.astype(float).tolist() + async def compute_event_embedding( + self, + payloads: Sequence[FaceImagePayload], + ) -> dict[str, list[list[float]]]: + + if not payloads: + raise AppException.bad_request( + "At least one image is required" + ) + + results: dict[str, list[list[float]]] = {} + + for payload in payloads: + try: + image = self._decode_image(payload) + image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) + + faces: list[FaceStub] = await asyncio.to_thread( + self.face_embedding.model.get, image_rgb # type: ignore + ) + + results[payload["filename"]] = [ + face.embedding.flatten().tolist() + for face in faces + if face.embedding is not None + ] + + except Exception as e: + print(f"[FaceEmbeddingService] Skipping {payload['filename']}: {e}") + results[payload["filename"]] = [] + + return results + def _decode_image(self, payload: FaceImagePayload) -> np.ndarray: buffer = np.frombuffer(payload["bytes"], dtype=np.uint8) diff --git a/ersLenovoOneDriveDesktopMultiAImultAI-back.venvScriptsActivate.ps1 b/ersLenovoOneDriveDesktopMultiAImultAI-back.venvScriptsActivate.ps1 new file mode 100644 index 0000000..d27c36e --- /dev/null +++ b/ersLenovoOneDriveDesktopMultiAImultAI-back.venvScriptsActivate.ps1 @@ -0,0 +1,7 @@ + Maya/2-ai-face-detection + Maya/3-ai-face-embedding + feat/ai_pipline +* feat/event-face-embeddings + fix/optimize-face-detection + fix/remove-redundant-face-detection + main From 1b5d3754f6c5a4aaf35e98e1b045c255b8000854 Mon Sep 17 00:00:00 2001 From: maya-ots Date: Mon, 23 Mar 2026 22:19:43 +0100 Subject: [PATCH 2/2] chore: add .venv to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index d87d619..1a2f765 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ db/schema.sql db.txt +.venv