code: def _get_annotation(self, label_path: str) -> dict:
      boxes = []
      texts = []
      ignores = []
      with open(label_path, encoding="utf-8", mode="r") as f:
          for line in f.readlines():
              params = (
                  line.strip()
                  .strip("\ufeff")
                  .strip("\xef\xbb\xbf")
                  .split(",")
              )
              try:
                  box = order_points_clockwise(
                      np.array(list(map(float, params[:8]))).reshape(
                          -1, 2
                      )
                  )
                  if cv2.contourArea(box) > 0:
                      boxes.append(box)
                      label = params[8]
                      texts.append(label)
                      ignores.append(label in self.ignore_tags)
              except:
                  print("load label failed on {}".format(label_path))
      data = {
          "text_polys": np.array(boxes),
          "texts": texts,
          "ignore_tags": ignores,
      }
      return data
  
imports: import pathlib
  import os
  import cv2
  import numpy
  import scipy.io
  from tqdm.auto import tqdm
  from base import BaseDataSet
  from utils import order_points_clockwise, get_datalist, load, expand_polygon
label_desc: Use image node_id 3 for calling the ICDAR2015Dataset obj's underlying member method code with example usage: obj._get_annotation(label_path) and returns: data