docstr: batch: a list produced by dataloaders.
      image: np.ndarray  of shape (N, C, H, W).
      ratio_list: np.ndarray  of shape(N,2)
      polygons: np.ndarray  of shape (N, K, 4, 2), the polygons of objective regions.
      ignore_tags: np.ndarray  of shape (N, K), indicates whether a region is ignorable or not.
  preds: a list of dict produced by post process
       points: np.ndarray of shape (N, K, 4, 2), the polygons of objective regions.
docstr_tok: ["batch",":","a","list","produced","by","dataloaders",".","image",":","np.ndarray","of","shape","(","N",",","C",",","H",",","W",")",".","ratio_list",":","np.ndarray","of","shape","(","N,2",")","polygons",":","np.ndarray","of","shape","(","N",",","K",",","4",",","2",")",",","the","polygons","of","objective","regions",".","ignore_tags",":","np.ndarray","of","shape","(","N",",","K",")",",","indicates","whether","a","region","is","ignorable","or","not",".","preds",":","a","list","of","dict","produced","by","post","process","points",":","np.ndarray","of","shape","(","N",",","K",",","4",",","2",")",",","the","polygons","of","objective","regions","."]
code: def __call__(self, preds, batch, **kwargs):
      """
      batch: a list produced by dataloaders.
          image: np.ndarray  of shape (N, C, H, W).
          ratio_list: np.ndarray  of shape(N,2)
          polygons: np.ndarray  of shape (N, K, 4, 2), the polygons of objective regions.
          ignore_tags: np.ndarray  of shape (N, K), indicates whether a region is ignorable or not.
      preds: a list of dict produced by post process
           points: np.ndarray of shape (N, K, 4, 2), the polygons of objective regions.
      """
      gt_polyons_batch = batch[2]
      ignore_tags_batch = batch[3]
      for pred, gt_polyons, ignore_tags in zip(
          preds, gt_polyons_batch, ignore_tags_batch
      ):
          # prepare gt
          gt_info_list = [
              {"points": gt_polyon, "text": "", "ignore": ignore_tag}
              for gt_polyon, ignore_tag in zip(gt_polyons, ignore_tags)
          ]
          # prepare det
          det_info_list = [
              {"points": det_polyon, "text": ""}
              for det_polyon in pred["points"]
          ]
          result = self.evaluator.evaluate_image(
              gt_info_list, det_info_list
          )
          self.results.append(result)
  
file_path: PaddleOCR/ppocr/metrics/det_metric.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from .eval_det_iou import DetectionIoUEvaluator
label_desc: Use image node_id 2 for calling the DetMetric obj's underlying member method code with example usage: obj.__call__(preds, batch) without return types