Add Dataclass

This commit is contained in:
kremnik 2024-08-22 23:09:22 +03:00
parent 47e0bf18d1
commit 8bf60a8d5e

View File

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