Merge pull request #1317 from kremnik/dataclass

Dataclass
This commit is contained in:
Sefik Ilkin Serengil 2024-08-23 08:57:12 +01:00 committed by GitHub
commit 0022131bf6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,5 +1,6 @@
from typing import List, Tuple, Optional from typing import List, Tuple, Optional
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from dataclasses import dataclass
import numpy as np import numpy as np
# Notice that all facial detector models must be inherited from this class # Notice that all facial detector models must be inherited from this class
@ -27,25 +28,8 @@ class Detector(ABC):
pass pass
@dataclass
class FacialAreaRegion: class FacialAreaRegion:
x: int
y: int
w: int
h: int
left_eye: Tuple[int, int]
right_eye: Tuple[int, int]
confidence: float
def __init__(
self,
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,
):
""" """
Initialize a Face object. Initialize a Face object.
@ -61,21 +45,17 @@ class FacialAreaRegion:
confidence (float, optional): Confidence score associated with the face detection. confidence (float, optional): Confidence score associated with the face detection.
Default is None. Default is None.
""" """
self.x = x x: int
self.y = y y: int
self.w = w w: int
self.h = h h: int
self.left_eye = left_eye left_eye: Optional[Tuple[int, int]] = None
self.right_eye = right_eye right_eye: Optional[Tuple[int, int]] = None
self.confidence = confidence confidence: Optional[float] = None
@dataclass
class DetectedFace: class DetectedFace:
img: np.ndarray
facial_area: FacialAreaRegion
confidence: float
def __init__(self, img: np.ndarray, facial_area: FacialAreaRegion, confidence: float):
""" """
Initialize detected face object. Initialize detected face object.
@ -84,6 +64,6 @@ class DetectedFace:
facial_area (FacialAreaRegion): detected face's metadata (e.g. bounding box) facial_area (FacialAreaRegion): detected face's metadata (e.g. bounding box)
confidence (float): confidence score for face detection confidence (float): confidence score for face detection
""" """
self.img = img img: np.ndarray
self.facial_area = facial_area facial_area: FacialAreaRegion
self.confidence = confidence confidence: float