class_docstr: Constructs a MaskFormer feature extractor. The feature extractor can be used to prepare image(s) and optional
  targets for the model.
  
  This feature extractor inherits from [`FeatureExtractionMixin`] which contains most of the main methods. Users
  should refer to this superclass for more information regarding those methods.
  
  Args:
      do_resize (`bool`, *optional*, defaults to `True`):
          Whether to resize the input to a certain `size`.
      size (`int`, *optional*, defaults to 800):
          Resize the input to the given size. Only has an effect if `do_resize` is set to `True`. If size is a
          sequence like `(width, height)`, output size will be matched to this. If size is an int, smaller edge of
          the image will be matched to this number. i.e, if `height > width`, then image will be rescaled to `(size *
          height / width, size)`.
      max_size (`int`, *optional*, defaults to 1333):
          The largest size an image dimension can have (otherwise it's capped). Only has an effect if `do_resize` is
          set to `True`.
      resample (`int`, *optional*, defaults to `PIL.Image.Resampling.BILINEAR`):
          An optional resampling filter. This can be one of `PIL.Image.Resampling.NEAREST`,
          `PIL.Image.Resampling.BOX`, `PIL.Image.Resampling.BILINEAR`, `PIL.Image.Resampling.HAMMING`,
          `PIL.Image.Resampling.BICUBIC` or `PIL.Image.Resampling.LANCZOS`. Only has an effect if `do_resize` is set
          to `True`.
      size_divisibility (`int`, *optional*, defaults to 32):
          Some backbones need images divisible by a certain number. If not passed, it defaults to the value used in
          Swin Transformer.
      do_normalize (`bool`, *optional*, defaults to `True`):
          Whether or not to normalize the input with mean and standard deviation.
      image_mean (`int`, *optional*, defaults to `[0.485, 0.456, 0.406]`):
          The sequence of means for each channel, to be used when normalizing images. Defaults to the ImageNet mean.
      image_std (`int`, *optional*, defaults to `[0.229, 0.224, 0.225]`):
          The sequence of standard deviations for each channel, to be used when normalizing images. Defaults to the
          ImageNet std.
      ignore_index (`int`, *optional*):
          Label to be assigned to background pixels in segmentation maps. If provided, segmentation map pixels
          denoted with 0 (background) will be replaced with `ignore_index`.
      reduce_labels (`bool`, *optional*, defaults to `False`):
          Whether or not to decrement all label values of segmentation maps by 1. Usually used for datasets where 0
          is used for background, and background itself is not included in all classes of a dataset (e.g. ADE20k).
          The background label will be replaced by `ignore_index`.
docstr: Converts the output of [`MaskFormerForInstanceSegmentationOutput`] into image panoptic segmentation
  predictions. Only supports PyTorch.
  
  Args:
      outputs ([`MaskFormerForInstanceSegmentationOutput`]):
          The outputs from [`MaskFormerForInstanceSegmentation`].
      threshold (`float`, *optional*, defaults to 0.5):
          The probability score threshold to keep predicted instance masks.
      mask_threshold (`float`, *optional*, defaults to 0.5):
          Threshold to use when turning the predicted masks into binary values.
      overlap_mask_area_threshold (`float`, *optional*, defaults to 0.8):
          The overlap mask area threshold to merge or discard small disconnected parts within each binary
          instance mask.
      label_ids_to_fuse (`Set[int]`, *optional*):
          The labels in this state will have all their instances be fused together. For instance we could say
          there can only be one sky in an image, but several persons, so the label ID for sky would be in that
          set, but not the one for person.
      target_sizes (`List[Tuple]`, *optional*):
          List of length (batch_size), where each list item (`Tuple[int, int]]`) corresponds to the requested
          final size (height, width) of each prediction in batch. If left to None, predictions will not be
          resized.
  
  Returns:
      `List[Dict]`: A list of dictionaries, one per image, each dictionary containing two keys:
      - **segmentation** -- a tensor of shape `(height, width)` where each pixel represents a `segment_id`, set
        to `None` if no mask if found above `threshold`. If `target_sizes` is specified, segmentation is resized
        to the corresponding `target_sizes` entry.
      - **segments_info** -- A dictionary that contains additional information on each segment.
          - **id** -- an integer representing the `segment_id`.
          - **label_id** -- An integer representing the label / semantic class id corresponding to `segment_id`.
          - **was_fused** -- a boolean, `True` if `label_id` was in `label_ids_to_fuse`, `False` otherwise.
            Multiple instances of the same class / label were fused and assigned a single `segment_id`.
          - **score** -- Prediction score of segment with `segment_id`.
docstr_tok: ["Converts","the","output","of","[","`","MaskFormerForInstanceSegmentationOutput","`","]","into","image","panoptic","segmentation","predictions",".","Only","supports","PyTorch",".","Args",":","outputs","(","[","`","MaskFormerForInstanceSegmentationOutput","`","]",")",":","The","outputs","from","[","`","MaskFormerForInstanceSegmentation","`","]",".","threshold","(","`","float","`",",","*","optional","*",",","defaults","to","0.5",")",":","The","probability","score","threshold","to","keep","predicted","instance","masks",".","mask_threshold","(","`","float","`",",","*","optional","*",",","defaults","to","0.5",")",":","Threshold","to","use","when","turning","the","predicted","masks","into","binary","values",".","overlap_mask_area_threshold","(","`","float","`",",","*","optional","*",",","defaults","to","0.8",")",":","The","overlap","mask","area","threshold","to","merge","or","discard","small","disconnected","parts","within","each","binary","instance","mask",".","label_ids_to_fuse","(","`","Set","[","int","]","`",",","*","optional","*",")",":","The","labels","in","this","state","will","have","all","their","instances","be","fused","together",".","For","instance","we","could","say","there","can","only","be","one","sky","in","an","image",",","but","several","persons",",","so","the","label","ID","for","sky","would","be","in","that","set",",","but","not","the","one","for","person",".","target_sizes","(","`","List","[","Tuple","]","`",",","*","optional","*",")",":","List","of","length","(","batch_size",")",",","where","each","list","item","(","`","Tuple","[","int",",","int","]","]","`",")","corresponds","to","the","requested","final","size","(","height",",","width",")","of","each","prediction","in","batch",".","If","left","to","None",",","predictions","will","not","be","resized",".","Returns",":","`","List","[","Dict","]","`",":","A","list","of","dictionaries",",","one","per","image",",","each","dictionary","containing","two","keys",":","-","*","*","segmentation","*","*","--","a","tensor","of","shape","`","(","height",",","width",")","`","where","each","pixel","represents","a","`","segment_id","`",",","set","to","`","None","`","if","no","mask","if","found","above","`","threshold","`",".","If","`","target_sizes","`","is","specified",",","segmentation","is","resized","to","the","corresponding","`","target_sizes","`","entry",".","-","*","*","segments_info","*","*","--","A","dictionary","that","contains","additional","information","on","each","segment",".","-","*","*","id","*","*","--","an","integer","representing","the","`","segment_id","`",".","-","*","*","label_id","*","*","--","An","integer","representing","the","label","\/","semantic","class","id","corresponding","to","`","segment_id","`",".","-","*","*","was_fused","*","*","--","a","boolean",",","`","True","`","if","`","label_id","`","was","in","`","label_ids_to_fuse","`",",","`","False","`","otherwise",".","Multiple","instances","of","the","same","class","\/","label","were","fused","and","assigned","a","single","`","segment_id","`",".","-","*","*","score","*","*","--","Prediction","score","of","segment","with","`","segment_id","`","."]
code: def post_process_panoptic_segmentation(
      self,
      outputs,
      threshold: float = 0.5,
      mask_threshold: float = 0.5,
      overlap_mask_area_threshold: float = 0.8,
      label_ids_to_fuse: Optional[Set[int]] = None,
      target_sizes: Optional[List[Tuple[int, int]]] = None,
  ) -> List[Dict]:
      """
      Converts the output of [`MaskFormerForInstanceSegmentationOutput`] into image panoptic segmentation
      predictions. Only supports PyTorch.
  
      Args:
          outputs ([`MaskFormerForInstanceSegmentationOutput`]):
              The outputs from [`MaskFormerForInstanceSegmentation`].
          threshold (`float`, *optional*, defaults to 0.5):
              The probability score threshold to keep predicted instance masks.
          mask_threshold (`float`, *optional*, defaults to 0.5):
              Threshold to use when turning the predicted masks into binary values.
          overlap_mask_area_threshold (`float`, *optional*, defaults to 0.8):
              The overlap mask area threshold to merge or discard small disconnected parts within each binary
              instance mask.
          label_ids_to_fuse (`Set[int]`, *optional*):
              The labels in this state will have all their instances be fused together. For instance we could say
              there can only be one sky in an image, but several persons, so the label ID for sky would be in that
              set, but not the one for person.
          target_sizes (`List[Tuple]`, *optional*):
              List of length (batch_size), where each list item (`Tuple[int, int]]`) corresponds to the requested
              final size (height, width) of each prediction in batch. If left to None, predictions will not be
              resized.
  
      Returns:
          `List[Dict]`: A list of dictionaries, one per image, each dictionary containing two keys:
          - **segmentation** -- a tensor of shape `(height, width)` where each pixel represents a `segment_id`, set
            to `None` if no mask if found above `threshold`. If `target_sizes` is specified, segmentation is resized
            to the corresponding `target_sizes` entry.
          - **segments_info** -- A dictionary that contains additional information on each segment.
              - **id** -- an integer representing the `segment_id`.
              - **label_id** -- An integer representing the label / semantic class id corresponding to `segment_id`.
              - **was_fused** -- a boolean, `True` if `label_id` was in `label_ids_to_fuse`, `False` otherwise.
                Multiple instances of the same class / label were fused and assigned a single `segment_id`.
              - **score** -- Prediction score of segment with `segment_id`.
      """
  
      if label_ids_to_fuse is None:
          logger.warning(
              "`label_ids_to_fuse` unset. No instance will be fused."
          )
          label_ids_to_fuse = set()
  
      class_queries_logits = (
          outputs.class_queries_logits
      )  # [batch_size, num_queries, num_classes+1]
      masks_queries_logits = (
          outputs.masks_queries_logits
      )  # [batch_size, num_queries, height, width]
  
      batch_size = class_queries_logits.shape[0]
      num_labels = class_queries_logits.shape[-1] - 1
  
      mask_probs = (
          masks_queries_logits.sigmoid()
      )  # [batch_size, num_queries, height, width]
  
      # Predicted label and score of each query (batch_size, num_queries)
      pred_scores, pred_labels = nn.functional.softmax(
          class_queries_logits, dim=-1
      ).max(-1)
  
      # Loop over items in batch size
      results: List[Dict[str, Tensor]] = []
  
      for i in range(batch_size):
          (
              mask_probs_item,
              pred_scores_item,
              pred_labels_item,
          ) = remove_low_and_no_objects(
              mask_probs[i],
              pred_scores[i],
              pred_labels[i],
              threshold,
              num_labels,
          )
  
          # No mask found
          if mask_probs_item.shape[0] <= 0:
              height, width = (
                  target_sizes[i]
                  if target_sizes is not None
                  else mask_probs_item.shape[1:]
              )
              segmentation = torch.zeros((height, width)) - 1
              results.append(
                  {"segmentation": segmentation, "segments_info": []}
              )
              continue
  
          # Get segmentation map and segment information of batch item
          target_size = (
              target_sizes[i] if target_sizes is not None else None
          )
          segmentation, segments = compute_segments(
              mask_probs_item,
              pred_scores_item,
              pred_labels_item,
              mask_threshold,
              overlap_mask_area_threshold,
              label_ids_to_fuse,
              target_size,
          )
  
          results.append(
              {"segmentation": segmentation, "segments_info": segments}
          )
      return results
  
imports: from typing import TYPE_CHECKING, Dict, List, Optional, Set, Tuple, Union
  import numpy
  from PIL import Image
  from transformers.image_utils import PILImageResampling
  from ...feature_extraction_utils import BatchFeature, FeatureExtractionMixin
  from ...image_utils import ImageFeatureExtractionMixin, ImageInput, is_torch_tensor
  from ...utils import TensorType, is_torch_available, logging
label_desc: Use image node_id 10 for calling the MaskFormerFeatureExtractor obj's underlying member method code with example usage: obj.post_process_panoptic_segmentation(outputs, threshold, mask_threshold, overlap_mask_area_threshold, label_ids_to_fuse, target_sizes) and returns: results