docstr: transform image record to chips record
  :param records:
  :return: new_records, list of dict like
  {
      'im_file': 'fake_image1.jpg',
      'im_id': np.array([1]),  # new _global_chip_id as im_id
      'h': h,  # chip height
      'w': w,  # chip width
      'chip': [x1, y1, x2, y2]  # added
      'ori_im_h': ori_im_h  # added, origin image height
      'ori_im_w': ori_im_w  # added, origin image width
      'scale_i': 0  # added,
  }
docstr_tok: ["transform","image","record","to","chips","record",":","param","records",":",":","return",":","new_records",",","list","of","dict","like","{","'im_file","'",":","'fake_image1.jpg","'",",","'im_id","'",":","np.array","(","[","1","]",")",",","#","new","_global_chip_id","as","im_id","'","h","'",":","h",",","#","chip","height","'","w","'",":","w",",","#","chip","width","'chip","'",":","[","x1",",","y1",",","x2",",","y2","]","#","added","'ori_im_h","'",":","ori_im_h","#","added",",","origin","image","height","'ori_im_w","'",":","ori_im_w","#","added",",","origin","image","width","'scale_i","'",":","0","#","added",",","}"]
code: def crop_infer_anno_records(self, records: List[dict]):
      """
      transform image record to chips record
      :param records:
      :return: new_records, list of dict like
      {
          'im_file': 'fake_image1.jpg',
          'im_id': np.array([1]),  # new _global_chip_id as im_id
          'h': h,  # chip height
          'w': w,  # chip width
          'chip': [x1, y1, x2, y2]  # added
          'ori_im_h': ori_im_h  # added, origin image height
          'ori_im_w': ori_im_w  # added, origin image width
          'scale_i': 0  # added,
      }
      """
      self.chip_records = []
      self._global_chip_id = 1  # im_id start from 1
      self._global_chip_id2img_id = {}
  
      for r in records:
          for scale_i in range(self.scale_num):
              self._get_current_scale_parameters(scale_i, r)
              # Cx4
              chips = self._create_chips(
                  r["h"], r["w"], self._cur_scale
              )
              cur_img_chip_record = self._get_chips_records(
                  r, chips, scale_i
              )
              self.chip_records.extend(cur_img_chip_record)
  
      return self.chip_records
  
imports: import copy
  import math
  import random
  import numpy
  from copy import deepcopy
  from typing import List, Tuple
  from collections import defaultdict
  from .chip_box_utils import nms, transform_chip_boxes2image_boxes
  from .chip_box_utils import find_chips_to_cover_overlaped_boxes
  from .chip_box_utils import transform_chip_box
  from .chip_box_utils import intersection_over_box
label_desc: Use image node_id 19 for calling the AnnoCropper obj's underlying member method code with example usage: obj.crop_infer_anno_records(records) and returns: self