code: def get_cls_results(det_results, annotations, class_id):
      """Get det results and gt information of a certain class.
  
      Args:
          det_results (list[list]): Same as `eval_map()`.
          annotations (list[dict]): Same as `eval_map()`.
          class_id (int): ID of a specific class.
  
      Returns:
          tuple[list[np.ndarray]]: detected bboxes, gt bboxes, ignored gt bboxes
      """
      cls_dets = [img_res[class_id] for img_res in det_results]
      cls_gts = []
      cls_gts_ignore = []
      for ann in annotations:
          gt_inds = ann["labels"] == class_id
          cls_gts.append(ann["bboxes"][gt_inds, :])
  
          if ann.get("labels_ignore", None) is not None:
              ignore_inds = ann["labels_ignore"] == class_id
              cls_gts_ignore.append(
                  ann["bboxes_ignore"][ignore_inds, :]
              )
          else:
              cls_gts_ignore.append(np.empty((0, 4), dtype=np.float32))
  
      return cls_dets, cls_gts, cls_gts_ignore
  
file_path: insightface/detection/scrfd/mmdet/core/evaluation/mean_ap.py
imports: from multiprocessing import Pool
  import mmcv
  import numpy
  from mmcv.utils import print_log
  from terminaltables import AsciiTable
  from .bbox_overlaps import bbox_overlaps
  from .class_names import get_classes
label_desc: Use image node_id 4 for calling a global function with example usage: get_cls_results(det_results, annotations, class_id) and returns: cls_dets,  cls_gts,  cls_gts_ignore