          faces = self._normalize_faces(faces)
          batch["feed"] = np.array(faces, dtype="float32")[..., :3] / 255.0
          return batch
  
      def get_center_scale(self, detected_faces):
          """ Get the center and set scale of bounding box """
          logger.debug("Calculating center and scale")
          center_scale = np.empty((len(detected_faces), 68, 3), dtype='float32')
          for index, face in enumerate(detected_faces):
              x_center = (face.left + face.right) / 2.0
              y_center = (face.top + face.bottom) / 2.0 - face.height * 0.12
 
</s> remove             x_center = (face.left + face.right) / 2.0
            y_center = (face.top + face.bottom) / 2.0 - face.height * 0.12
            scale = (face.width + face.height) * self.reference_scale
 </s> add             x_center = (cast(int, face.left) + face.right) / 2.0
            y_center = (cast(int, face.top) + face.bottom) / 2.0 - cast(int, face.height) * 0.12
            scale = (cast(int, face.width) + cast(int, face.height)) * self.reference_scale </s> remove         batch["feed"] = np.array(faces, dtype="float32")[..., :3] / 255.0
        return batch
 </s> add         batch.data.append(dict(center_scale=center_scale))
        batch.feed.append(np.array(faces, dtype="float32")[..., :3] / 255.0)

    def get_center_scale(self, detected_faces: List["DetectedFace"]) -> np.ndarray:
        """ Get the center and set scale of bounding box </s> remove         batch["center_scale"] = self.get_center_scale(batch["detected_faces"])
        faces = self.crop(batch)
        logger.trace("Aligned image around center")
 </s> add         center_scale = self.get_center_scale(batch.detected_faces)
        faces = self.crop(batch, center_scale)
        logger.trace("Aligned image around center")  # type:ignore </s> remove         logger.trace("Calculated center and scale: %s", center_scale)
 </s> add         logger.trace("Calculated center and scale: %s", center_scale)  # type:ignore </s> remove         batch["feed"] = np.array(faces, dtype="float32")[..., :3].transpose((0, 3, 1, 2))
        return batch
 </s> add         batch.data.append(dict(roi=roi, offsets=offsets))
        batch.feed.append(np.array(faces, dtype="float32")[..., :3].transpose((0, 3, 1, 2)))

    def _get_box_and_offset(self, face: "DetectedFace") -> Tuple[List[int], int]:
        """Obtain the bounding box and offset from a detected face.


        Parameters
        ----------
        face: :class:`~lib.align.DetectedFace`
            The detected face object to obtain the bounding box and offset from
        Parameters
        ----------
        detected_faces: list
            List of :class:`~lib.align.DetectedFace` objects for the batch

        Returns
        -------
        :class:`numpy.ndarray`
            The center and scale of the bounding box
        """
          faces = self._normalize_faces(faces)
          batch["feed"] = np.array(faces, dtype="float32")[..., :3] / 255.0
          return batch
  
        Parameters
        ----------
        detected_faces: list
            List of :class:`~lib.align.DetectedFace` objects for the batch

        Returns
        -------
        :class:`numpy.ndarray`
            The center and scale of the bounding box
        """
        Parameters
        ----------
        detected_faces: list
            List of :class:`~lib.align.DetectedFace` objects for the batch

        Returns
        -------
        :class:`numpy.ndarray`
            The center and scale of the bounding box
        """
          logger.debug("Calculating center and scale")
          center_scale = np.empty((len(detected_faces), 68, 3), dtype='float32')
          for index, face in enumerate(detected_faces):
              x_center = (face.left + face.right) / 2.0
              y_center = (face.top + face.bottom) / 2.0 - face.height * 0.12
keep keep keep keep 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/fan.py