                         int(vram["total"]))
          return int(vram["card_id"]), int(vram["free"]), int(vram["total"])
  
      @staticmethod
      def set_predetected(width, height):
          """ Set a BoundingBox for predetected faces """
          # Predetected_face is used for sort tool.
          # Landmarks should not be extracted again from predetected faces,
          # because face data is lost, resulting in a large variance
          # against extract from original image
          logger.debug("Setting predetected face")
 
</s> remove         return [BoundingBox(0, 0, width, height)]
 </s> add         return [self.to_bounding_box_dict(0, 0, width, height)] </s> remove     def from_bounding_box(self, bounding_box, image=None):
        """ Set Bounding Box from a BoundingBox """
        logger.trace("Creating from BoundingBox: %s", bounding_box)
        if not isinstance(bounding_box, BoundingBox):
            raise ValueError("Supplied Bounding Box is not a BoundingBox.")
        self.x = bounding_box.left
        self.w = bounding_box.width
        self.y = bounding_box.top
        self.h = bounding_box.height
 </s> add     def from_bounding_box_dict(self, bounding_box_dict, image=None):
        """ Set Bounding Box from a bounding box dict """
        logger.trace("Creating from bounding box dict: %s", bounding_box_dict)
        if not isinstance(bounding_box_dict, dict):
            raise ValueError("Supplied Bounding Box is not a dictionary.")
        self.x = bounding_box_dict["left"]
        self.w = bounding_box_dict["right"] - bounding_box_dict["left"]
        self.y = bounding_box_dict["top"]
        self.h = bounding_box_dict["bottom"] - bounding_box_dict["top"] </s> remove         # Sometimes BoundingBox doesn't get imported from the parent process
        # Hacky fix to import it inside the process
        global BoundingBox  # pylint:disable=global-statement,invalid-name
        from lib.faces_detect import BoundingBox as bb  # pylint:disable=reimported
        BoundingBox = bb
 </s> add  </s> remove         face = face.to_bounding_box()
 </s> add         face = face.to_bounding_box_dict()
    def to_bounding_box_dict(left, top, right, bottom):
        """ Return a dict for the bounding box """
        return dict(left=int(round(left)),
                    right=int(round(right)),
                    top=int(round(top)),
                    bottom=int(round(bottom)))

    def set_predetected(self, width, height):
        """ Set a bounding box dict for predetected faces """
                         int(vram["total"]))
          return int(vram["card_id"]), int(vram["free"]), int(vram["total"])
  
      @staticmethod
    def to_bounding_box_dict(left, top, right, bottom):
        """ Return a dict for the bounding box """
        return dict(left=int(round(left)),
                    right=int(round(right)),
                    top=int(round(top)),
                    bottom=int(round(bottom)))

    def set_predetected(self, width, height):
        """ Set a bounding box dict for predetected faces """
    def to_bounding_box_dict(left, top, right, bottom):
        """ Return a dict for the bounding box """
        return dict(left=int(round(left)),
                    right=int(round(right)),
                    top=int(round(top)),
                    bottom=int(round(bottom)))

    def set_predetected(self, width, height):
        """ Set a bounding box dict for predetected faces """
          # Predetected_face is used for sort tool.
          # Landmarks should not be extracted again from predetected faces,
          # because face data is lost, resulting in a large variance
          # against extract from original image
          logger.debug("Setting predetected face")
keep keep keep keep replace replace keep keep keep keep keep
 Bugfix: Extract - Remove BoundingBox object and replace with dict 
plugins/extract/detect/_base.py