code: def convert_art(root_path, split, ratio):
      """Collect the annotation information and crop the images.
  
      The annotation format is as the following:
      {
          "gt_2836_0": [
              {
                  "transcription": "URDER",
                  "points": [
                      [25, 51],
                      [0, 2],
                      [21, 0],
                      [42, 43]
                  ],
                  "language": "Latin",
                  "illegibility": false
              }
          ], ...
      }
  
      Args:
          root_path (str): The root path of the dataset
          split (str): The split of dataset. Namely: training or val
          ratio (float): Split ratio for val set
  
      Returns:
          img_info (dict): The dict of the img and annotation information
      """
  
      annotation_path = osp.join(
          root_path, "annotations/train_task2_labels.json"
      )
      if not osp.exists(annotation_path):
          raise Exception(
              f"{annotation_path} not exists, please check and try again."
          )
  
      annotation = mmengine.load(annotation_path)
      img_prefixes = annotation.keys()
  
      trn_files, val_files = [], []
      if ratio > 0:
          for i, file in enumerate(img_prefixes):
              if i % math.floor(1 / ratio):
                  trn_files.append(file)
              else:
                  val_files.append(file)
      else:
          trn_files, val_files = img_prefixes, []
      print(f"training #{len(trn_files)}, val #{len(val_files)}")
  
      if split == "train":
          img_prefixes = trn_files
      elif split == "val":
          img_prefixes = val_files
      else:
          raise NotImplementedError
  
      img_info = []
      for prefix in img_prefixes:
          text_label = annotation[prefix][0]["transcription"]
          dst_img_name = prefix + ".jpg"
  
          img_info.append(
              {
                  "file_name": dst_img_name,
                  "anno_info": [{"text": text_label}],
              }
          )
  
      ensure_ascii = dict(ensure_ascii=False)
      dump_ocr_data(
          img_info,
          osp.join(root_path, f"{split.lower()}_label.json"),
          "textrecog",
          **ensure_ascii,
      )
  
imports: import argparse
  import math
  import os.path
  import mmengine
  from mmocr.utils import dump_ocr_data
label_desc: Use image node_id 2 for calling a global function with example usage: convert_art(root_path, split, ratio) without return types