code: def load_img_info(files):
      """Load the information of one image.
  
      Args:
          files (tuple): The tuple of (img_file, groundtruth_file)
  
      Returns:
          img_info (dict): The dict of the img and annotation information
      """
      assert isinstance(files, tuple)
  
      img_file, gt_file = files
      assert (
          osp.basename(gt_file).split("_")[0]
          == osp.basename(gt_file).split("_")[0]
      )
      # read imgs while ignoring orientations
      img = mmcv.imread(img_file, "unchanged")
  
      img_info = dict(
          file_name=osp.basename(img_file),
          height=img.shape[0],
          width=img.shape[1],
          segm_file=osp.basename(gt_file),
      )
  
      if osp.splitext(gt_file)[1] == ".txt":
          img_info = load_txt_info(gt_file, img_info)
      else:
          raise NotImplementedError
  
      return img_info
  
file_path: mmocr/tools/dataset_converters/textrecog/bid_converter.py
imports: import argparse
  import os
  import os.path
  import mmcv
  import mmengine
  from mmocr.utils import crop_img, dump_ocr_data
label_desc: Use image node_id 3 for calling a global function with example usage: load_img_info(files) and returns: img_info