code: def class_label_distribution(
      labels=None,
      predictions=None,
      *,
      auxiliary_inputs=None,
      class_names: Optional[Dict[Any, Any]] = None,
  ) -> Tuple[Dict[Any, float], Dict[Any, float]]:
      """Returns the distribution of class labels associated with all annotated bounding boxes (or predicted bounding boxes) in the dataset.
  
      This method can help you understand which classes are: rare or over/under-predicted by the model overall.
  
      Parameters
      ----------
      labels:
          Annotated boxes and class labels in the original dataset, which may contain some errors.
          Refer to documentation for this argument in :py:func:`object_counts_per_image <cleanlab.object_detection.summary.object_counts_per_image>` for further details.
  
      predictions:
          Predictions output by a trained object detection model.
          Refer to documentation for this argument in :py:func:`object_counts_per_image <cleanlab.object_detection.summary.object_counts_per_image>` for further details.
  
      auxiliary_inputs: optional
          Auxiliary inputs to be used in the computation of counts.
          Refer to documentation for this argument in :py:func:`object_counts_per_image <cleanlab.object_detection.summary.object_counts_per_image>` for further details.
  
      class_names: optional
          Optional dictionary mapping one-hot-encoded class labels back to their original class names in the format ``{"integer-label": "original-class-name"}``.
  
      Returns
      -------
      class_distribution: Tuple[Dict[Any, float], Dict[Any, float]]
          A tuple containing two dictionaries. The first is a dictionary mapping each class label to its frequency in the dataset annotations.
          The second is a dictionary mapping each class label to its frequency in the model predictions across all images in the dataset.
      """
      if auxiliary_inputs is None:
          auxiliary_inputs = _get_valid_inputs_for_compute_scores(
              ALPHA, labels, predictions
          )
  
      lab_freq: DefaultDict[Any, int] = collections.defaultdict(int)
      pred_freq: DefaultDict[Any, int] = collections.defaultdict(int)
      for sample in auxiliary_inputs:
          _get_class_instances(
              sample["lab_labels"], lab_freq, class_names
          )
          _get_class_instances(
              sample["pred_labels"], pred_freq, class_names
          )
  
      label_norm = _normalize_by_total(lab_freq)
      pred_norm = _normalize_by_total(pred_freq)
  
      return label_norm, pred_norm
  
imports: from multiprocessing import Pool
  from typing import Optional, Any, Dict, Tuple, Union, List, TYPE_CHECKING, TypeVar, DefaultDict
  import numpy
  import collections
  from cleanlab.internal.constants import MAX_CLASS_TO_SHOW, ALPHA, EPSILON, TINY_VALUE
  from cleanlab.object_detection.filter import _filter_by_class, _calculate_true_positives_false_positives
  from cleanlab.object_detection.rank import _get_valid_inputs_for_compute_scores, _separate_prediction, _separate_label, _get_prediction_type
  from cleanlab.internal.object_detection_utils import bbox_xyxy_to_xywh
label_desc: Use image node_id 3 for calling a global function with example usage: class_label_distribution(labels, predictions) and returns: label_norm,  pred_norm