code: def match_result(self, dt_boxes, pred_bboxes):
      matched = {}
      for i, gt_box in enumerate(dt_boxes):
          distances = []
          for j, pred_box in enumerate(pred_bboxes):
              if len(pred_box) == 8:
                  pred_box = [
                      np.min(pred_box[0::2]),
                      np.min(pred_box[1::2]),
                      np.max(pred_box[0::2]),
                      np.max(pred_box[1::2]),
                  ]
              distances.append(
                  (
                      distance(gt_box, pred_box),
                      1.0 - compute_iou(gt_box, pred_box),
                  )
              )  # compute iou and l1 distance
          sorted_distances = distances.copy()
          # select det box by iou and l1 distance
          sorted_distances = sorted(
              sorted_distances, key=lambda item: (item[1], item[0])
          )
          if distances.index(sorted_distances[0]) not in matched.keys():
              matched[distances.index(sorted_distances[0])] = [i]
          else:
              matched[distances.index(sorted_distances[0])].append(i)
      return matched
  
file_path: PaddleOCR/ppstructure/table/matcher.py
imports: import numpy
  from ppstructure.table.table_master_match import deal_eb_token, deal_bb
label_desc: Use image node_id 3 for calling the TableMatch obj's underlying member method code with example usage: obj.match_result(dt_boxes, pred_bboxes) and returns: matched