          -------
          dict
              The batch with input processed
          """
          if not self._additional_keys:
              existing_keys = list(batch.keys())
  
          original_boxes = np.array([(face.left, face.top, face.width, face.height)
                                     for face in batch["detected_faces"]])
          adjusted_boxes = self._get_adjusted_boxes(original_boxes)
          retval = {}
          for bounding_boxes in adjusted_boxes:
 
</s> remove                                    for face in batch["detected_faces"]])
 </s> add                                    for face in batch.detected_faces]) </s> remove         retval = {}
 </s> add         # Put in random re-feed data to the bounding boxes </s> remove             for face, box in zip(batch["detected_faces"], bounding_boxes):
 </s> add             for face, box in zip(batch.detected_faces, bounding_boxes): </s> remove         dict
 </s> add         :class:`AlignerBatch` </s> remove             result = self.process_input(batch)
            if not self._additional_keys:
                self._additional_keys = [key for key in result if key not in existing_keys]
            for key in self._additional_keys:
                retval.setdefault(key, []).append(batch[key])
                del batch[key]
 </s> add             self.process_input(batch)
          -------
          dict
              The batch with input processed
          """



          original_boxes = np.array([(face.left, face.top, face.width, face.height)
                                     for face in batch["detected_faces"]])
          adjusted_boxes = self._get_adjusted_boxes(original_boxes)
          retval = {}
          for bounding_boxes in adjusted_boxes:
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/_base.py