mediapipe pseudo bathcing

This commit is contained in:
galthran-wq 2025-02-18 09:49:25 +00:00
parent 26e537d2a5
commit 7f04e6b298

View File

@ -1,6 +1,6 @@
# built-in dependencies # built-in dependencies
import os import os
from typing import Any, List from typing import Any, List, Union
# 3rd party dependencies # 3rd party dependencies
import numpy as np import numpy as np
@ -43,10 +43,27 @@ class MediaPipeClient(Detector):
) )
return face_detection return face_detection
def detect_faces(self, img: np.ndarray) -> List[FacialAreaRegion]: def detect_faces(self, img: Union[np.ndarray, List[np.ndarray]]) -> Union[List[FacialAreaRegion], List[List[FacialAreaRegion]]]:
""" """
Detect and align face with mediapipe Detect and align face with mediapipe
Args:
img (Union[np.ndarray, List[np.ndarray]]): pre-loaded image as numpy array or a list of those
Returns:
results (Union[List[FacialAreaRegion], List[List[FacialAreaRegion]]]): A list or a list of lists of FacialAreaRegion objects
"""
if isinstance(img, np.ndarray):
return self._process_single_image(img)
elif isinstance(img, list):
return [self._process_single_image(single_img) for single_img in img]
else:
raise ValueError("Input must be a numpy array or a list of numpy arrays.")
def _process_single_image(self, img: np.ndarray) -> List[FacialAreaRegion]:
"""
Helper function to detect faces in a single image.
Args: Args:
img (np.ndarray): pre-loaded image as numpy array img (np.ndarray): pre-loaded image as numpy array