class_docstr: SCUT-CTW1500 dataset parser.
  
  Args:
      ignore (str): The text of the ignored instances. Defaults to
          '###'.
class_docstr_tok: ["SCUT-CTW1500","dataset","parser",".","Args",":","ignore","(","str",")",":","The","text","of","the","ignored","instances",".","Defaults","to","'","#","#","#","'","."]
docstr: Load the annotation of the SCUT-CTW dataset (train split).
  Args:
      anno_dir (str): Path to the annotation file.
  
  Returns:
      list[Dict]: List of instances.
docstr_tok: ["Load","the","annotation","of","the","SCUT-CTW","dataset","(","train","split",")",".","Args",":","anno_dir","(","str",")",":","Path","to","the","annotation","file",".","Returns",":","list","[","Dict","]",":","List","of","instances","."]
code: def load_xml_info(self, anno_dir: str) -> List:
      """Load the annotation of the SCUT-CTW dataset (train split).
      Args:
          anno_dir (str): Path to the annotation file.
  
      Returns:
          list[Dict]: List of instances.
      """
      obj = ET.parse(anno_dir)
      instances = list()
      for image in obj.getroot():  # image
          for box in image:  # image
              text = box[0].text
              segs = box[1].text
              pts = segs.strip().split(",")
              pts = [int(x) for x in pts]
              assert len(pts) == 28
              poly = np.array(pts).reshape(-1).tolist()
              instances.append(dict(poly=poly, text=text, ignore=0))
      return instances
  
file_path: mmocr/mmocr/datasets/preparers/parsers/ctw1500_parser.py
imports: import xml.etree.ElementTree
  from typing import List, Tuple
  import numpy
  from mmocr.datasets.preparers.data_preparer import DATA_PARSERS
  from mmocr.datasets.preparers.parsers.base import BaseParser
  from mmocr.utils import list_from_file
label_desc: Use image node_id 4 for calling the CTW1500AnnParser obj's underlying member method code with example usage: obj.load_xml_info(anno_dir) and returns: instances