code: def add(
      self, pred_clusters: List[_Instance], gt_clusters: List[_Instance]
  ):
      for instance in pred_clusters:
          self._pred_clusters[instance.classname].append(instance)
      for instance in gt_clusters:
          self._gt_clusters[instance.classname][
              instance.scan_id
          ].append(instance)
  
imports: import torchnet
  from typing import NamedTuple, Dict, Any, List, Tuple
  import torch
  import numpy
  from torch_scatter import scatter_add
  from collections import OrderedDict, defaultdict
  from torch_points3d.models.model_interface import TrackerInterface
  from torch_points3d.metrics.segmentation_tracker import SegmentationTracker
  from torch_points3d.metrics.base_tracker import BaseTracker, meter_value
  from torch_points3d.models.panoptic.structures import PanopticResults, PanopticLabels
  from torch_points_kernels import instance_iou
  from .box_detection.ap import voc_ap
label_desc: Use image node_id 2 for calling the InstanceAPMeter obj's underlying member method code with example usage: obj.add(pred_clusters, gt_clusters) without return types