code: def __call__(
      self,
      object_predictions: List[ObjectPrediction],
  ):
      source_object_predictions: List[ObjectPrediction] = copy.deepcopy(
          object_predictions
      )
      selected_object_predictions: List[ObjectPrediction] = []
      while len(source_object_predictions) > 0:
          # select object prediction with highest score
          source_object_predictions.sort(
              reverse=True, key=self.get_score_func
          )
          selected_object_prediction = source_object_predictions[0]
          # remove selected prediction from source list
          del source_object_predictions[0]
          # if any element from remaining source prediction list matches, remove it
          new_source_object_predictions: List[ObjectPrediction] = []
          for candidate_object_prediction in source_object_predictions:
              if self._has_match(
                  selected_object_prediction,
                  candidate_object_prediction,
              ):
                  pass
              else:
                  new_source_object_predictions.append(
                      candidate_object_prediction
                  )
          source_object_predictions = new_source_object_predictions
          # append selected prediction to selected list
          selected_object_predictions.append(selected_object_prediction)
      return selected_object_predictions
  
imports: import copy
  from typing import List
  import numpy
  from sahi.annotation import BoundingBox, Category, Mask
  from sahi.postprocess.utils import calculate_area, calculate_box_union, calculate_intersection_area
  from sahi.prediction import ObjectPrediction
label_desc: Use image node_id 1 for calling the NMSPostprocess obj's underlying member method code with example usage: obj.__call__(object_predictions) and returns: selected_object_predictions