Module facetorch.analyzer.predictor.pre

Classes

class BasePredPreProcessor (transform: torchvision.transforms.transforms.Compose, device: torch.device, optimize_transform: bool)

Base class for predictor pre processors.

All predictor pre processors should subclass it. All subclass should overwrite:

  • Methods:run, used for running the processing

Args

device : torch.device
Torch device cpu or cuda.
transform : transforms.Compose
Transform compose object to be applied to the image.
optimize_transform : bool
Whether to optimize the transform.
Expand source code
class BasePredPreProcessor(BaseProcessor):
    @Timer(
        "BasePredPreProcessor.__init__",
        "{name}: {milliseconds:.2f} ms",
        logger=logger.debug,
    )
    def __init__(
        self,
        transform: transforms.Compose,
        device: torch.device,
        optimize_transform: bool,
    ):
        """Base class for predictor pre processors.

        All predictor pre processors should subclass it.
        All subclass should overwrite:

        - Methods:``run``, used for running the processing

        Args:
            device (torch.device): Torch device cpu or cuda.
            transform (transforms.Compose): Transform compose object to be applied to the  image.
            optimize_transform (bool): Whether to optimize the transform.

        """
        super().__init__(transform, device, optimize_transform)

    @abstractmethod
    def run(self, faces: torch.Tensor) -> torch.Tensor:
        """Abstract method that runs the predictor pre processing functionality and returns a batch of preprocessed face tensors.

        Args:
            faces (torch.Tensor): Batch of face tensors with shape (batch, channels, height, width).

        Returns:
            torch.Tensor: Batch of preprocessed face tensors with shape (batch, channels, height, width).

        """

Ancestors

Subclasses

Methods

def run(self, faces: torch.Tensor) ‑> torch.Tensor

Abstract method that runs the predictor pre processing functionality and returns a batch of preprocessed face tensors.

Args

faces : torch.Tensor
Batch of face tensors with shape (batch, channels, height, width).

Returns

torch.Tensor
Batch of preprocessed face tensors with shape (batch, channels, height, width).

Inherited members

class PredictorPreProcessor (transform: torchvision.transforms.transforms.Compose, device: torch.device, optimize_transform: bool, reverse_colors: bool = False)

Torch transform based pre-processor that is applied to face tensors before they are passed to the predictor model.

Args

transform : transforms.Compose
Composed Torch transform object.
device : torch.device
Torch device cpu or cuda.
optimize_transform : bool
Whether to optimize the transform.
reverse_colors : bool
Whether to reverse the colors of the image tensor
Expand source code
class PredictorPreProcessor(BasePredPreProcessor):
    def __init__(
        self,
        transform: transforms.Compose,
        device: torch.device,
        optimize_transform: bool,
        reverse_colors: bool = False,
    ):
        """Torch transform based pre-processor that is applied to face tensors before they are passed to the predictor model.

        Args:
            transform (transforms.Compose): Composed Torch transform object.
            device (torch.device): Torch device cpu or cuda.
            optimize_transform (bool): Whether to optimize the transform.
            reverse_colors (bool): Whether to reverse the colors of the image tensor
        """
        super().__init__(transform, device, optimize_transform)
        self.reverse_colors = reverse_colors

    @Timer(
        "PredictorPreProcessor.run",
        "{name}: {milliseconds:.2f} ms",
        logger=logger.debug,
    )
    def run(self, faces: torch.Tensor) -> torch.Tensor:
        """Runs the trasform on a batch of face tensors.

        Args:
            faces (torch.Tensor): Batch of face tensors.

        Returns:
            torch.Tensor: Batch of preprocessed face tensors.
        """
        if faces.device != self.device:
            faces = faces.to(self.device)

        faces = self.transform(faces)
        if self.reverse_colors:
            faces = rgb2bgr(faces)
        return faces

Ancestors

Methods

def run(self, faces: torch.Tensor) ‑> torch.Tensor

Runs the trasform on a batch of face tensors.

Args

faces : torch.Tensor
Batch of face tensors.

Returns

torch.Tensor
Batch of preprocessed face tensors.

Inherited members