code: def __init__(
      self,
      label_list,
      class_num=20,
      overlap_thresh=0.5,
      map_type="11point",
      is_bbox_normalized=False,
      evaluate_difficult=False,
      classwise=False,
      output_eval=None,
      save_prediction_only=False,
  ):
      assert os.path.isfile(
          label_list
      ), "label_list {} not a file".format(label_list)
      self.clsid2catid, self.catid2name = get_categories(
          "VOC", label_list
      )
  
      self.overlap_thresh = overlap_thresh
      self.map_type = map_type
      self.evaluate_difficult = evaluate_difficult
      self.output_eval = output_eval
      self.save_prediction_only = save_prediction_only
      self.detection_map = DetectionMAP(
          class_num=class_num,
          overlap_thresh=overlap_thresh,
          map_type=map_type,
          is_bbox_normalized=is_bbox_normalized,
          evaluate_difficult=evaluate_difficult,
          catid2name=self.catid2name,
          classwise=classwise,
      )
  
      self.reset()
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  import sys
  import json
  import paddle
  import numpy
  import typing
  from collections import defaultdict
  from pathlib import Path
  from .map_utils import prune_zero_padding, DetectionMAP
  from .coco_utils import get_infer_results, cocoapi_eval
  from .widerface_utils import face_eval_run
  from ppdet.data.source.category import get_categories
  from ppdet.modeling.rbox_utils import poly2rbox_np
  from ppdet.utils.logger import setup_logger
label_desc: Use image node_id 1 to create a new VOCMetric object from inherited base classes: Metric with example: obj = VOCMetric(label_list, class_num, overlap_thresh, map_type, is_bbox_normalized, evaluate_difficult, classwise, output_eval, save_prediction_only)