          logger.trace("image_shape: %s, Padded shape: %s, box: %s, offsets: %s",
                       image.shape, padded_image.shape, box, offsets)
          return padded_image, offsets
  
      def predict(self, batch):
          """ Predict the 68 point landmarks """
          logger.trace("Predicting Landmarks")
          self.model.setInput(batch)
          retval = self.model.forward()
          return retval
  
      def process_output(self, batch):
 
</s> remove         logger.trace("image_shape: %s, Padded shape: %s, box: %s, offsets: %s",
 </s> add         logger.trace("image_shape: %s, Padded shape: %s, box: %s, offsets: %s",  # type:ignore </s> remove     def predict(self, batch):
        """ Predict the 68 point landmarks """
 </s> add     def predict(self, batch: np.ndarray) -> np.ndarray:
        """ Predict the 68 point landmarks

        Parameters
        ----------
        batch: :class:`numpy.ndarray`
            The batch to feed into the aligner

        Returns
        -------
        :class:`numpy.ndarray`
            The predictions from the aligner
        """ </s> remove         logger.trace("Transformed Points: %s", retval)
 </s> add         logger.trace("Transformed Points: %s", retval)  # type:ignore </s> remove     def process_output(self, batch):
        """ Process the output from the model """
 </s> add     def process_output(self, batch: AlignerBatch) -> AlignerBatch:
        """ Process the output from the model

        Parameters
        ----------
        batch: :class:`AlignerBatch`
            The current batch from the model with :attr:`predictions` populated

        Returns
        -------
        :class:`AlignerBatch`
            The current batch with the :attr:`landmarks` populated
        """ </s> remove         logger.trace(retval.shape)
 </s> add         logger.trace(retval.shape)  # type:ignore
    def predict(self, batch: AlignerBatch) -> np.ndarray:
        """ Predict the 68 point landmarks

        Parameters
        ----------
        batch: :class:`numpy.ndarray`
            The batch to feed into the aligner

        Returns
        -------
        :class:`numpy.ndarray`
            The predictions from the aligner
        """
        logger.trace("Predicting Landmarks")  # type:ignore
          logger.trace("image_shape: %s, Padded shape: %s, box: %s, offsets: %s",
                       image.shape, padded_image.shape, box, offsets)
          return padded_image, offsets
  
    def predict(self, batch: AlignerBatch) -> np.ndarray:
        """ Predict the 68 point landmarks

        Parameters
        ----------
        batch: :class:`numpy.ndarray`
            The batch to feed into the aligner

        Returns
        -------
        :class:`numpy.ndarray`
            The predictions from the aligner
        """
        logger.trace("Predicting Landmarks")  # type:ignore
    def predict(self, batch: AlignerBatch) -> np.ndarray:
        """ Predict the 68 point landmarks

        Parameters
        ----------
        batch: :class:`numpy.ndarray`
            The batch to feed into the aligner

        Returns
        -------
        :class:`numpy.ndarray`
            The predictions from the aligner
        """
        logger.trace("Predicting Landmarks")  # type:ignore
    def predict(self, batch: AlignerBatch) -> np.ndarray:
        """ Predict the 68 point landmarks

        Parameters
        ----------
        batch: :class:`numpy.ndarray`
            The batch to feed into the aligner

        Returns
        -------
        :class:`numpy.ndarray`
            The predictions from the aligner
        """
        logger.trace("Predicting Landmarks")  # type:ignore
          self.model.setInput(batch)
          retval = self.model.forward()
          return retval
  
      def process_output(self, batch):
keep keep keep keep replace replace replace keep keep keep keep keep
 Extract updates:
  - Default CPU detector to MTCNN
  - add basic Aligner false positive filters
  - Typing: align + plugins
  - Use specific AlignerBatch class for alignment
  - 
plugins/extract/align/cv2_dnn.py