Spaces:
Sleeping
Sleeping
| # built-in imports | |
| from typing import List, Tuple, Optional, Any | |
| from abc import ABC, abstractmethod | |
| from dataclasses import dataclass | |
| # Third party imports | |
| from numpy.typing import NDArray | |
| # Notice that all facial detector models must be inherited from this class | |
| # pylint: disable=unnecessary-pass, too-few-public-methods, too-many-instance-attributes | |
| class Detector(ABC): | |
| def detect_faces(self, img: NDArray[Any]) -> List["FacialAreaRegion"]: | |
| """ | |
| Interface for detect and align face | |
| Args: | |
| img (np.ndarray): pre-loaded image as numpy array | |
| Returns: | |
| results (List[FacialAreaRegion]): A list of FacialAreaRegion objects | |
| where each object contains: | |
| - facial_area (FacialAreaRegion): The facial area region represented | |
| as x, y, w, h, left_eye and right_eye. left eye and right eye are | |
| eyes on the left and right respectively with respect to the person | |
| instead of observer. | |
| """ | |
| pass | |
| class FacialAreaRegion: | |
| """ | |
| Initialize a Face object. | |
| Args: | |
| x (int): The x-coordinate of the top-left corner of the bounding box. | |
| y (int): The y-coordinate of the top-left corner of the bounding box. | |
| w (int): The width of the bounding box. | |
| h (int): The height of the bounding box. | |
| left_eye (tuple): The coordinates (x, y) of the left eye with respect to | |
| the person instead of observer. Default is None. | |
| right_eye (tuple): The coordinates (x, y) of the right eye with respect to | |
| the person instead of observer. Default is None. | |
| confidence (float, optional): Confidence score associated with the face detection. | |
| Default is None. | |
| """ | |
| x: int | |
| y: int | |
| w: int | |
| h: int | |
| left_eye: Optional[Tuple[int, int]] = None | |
| right_eye: Optional[Tuple[int, int]] = None | |
| confidence: Optional[float] = None | |
| nose: Optional[Tuple[int, int]] = None | |
| mouth_right: Optional[Tuple[int, int]] = None | |
| mouth_left: Optional[Tuple[int, int]] = None | |
| class DetectedFace: | |
| """ | |
| Initialize detected face object. | |
| Args: | |
| img (np.ndarray): detected face image as numpy array | |
| facial_area (FacialAreaRegion): detected face's metadata (e.g. bounding box) | |
| confidence (float): confidence score for face detection | |
| """ | |
| img: NDArray[Any] | |
| facial_area: FacialAreaRegion | |
| confidence: float | |