code: def _trans_neg_chips2annotations(
      self, im_file: str, sampled_neg_chips: List[Tuple]
  ):
      chip_records = []
      for chip, neg_box_num in sampled_neg_chips:
          x1, y1, x2, y2 = chip
          chip_h = y2 - y1
          chip_w = x2 - x1
          rec = {
              "im_file": im_file,
              "im_id": np.array([self._global_chip_id]),
              "h": chip_h,
              "w": chip_w,
              "gt_bbox": np.zeros((0, 4), dtype=np.float32),
              "is_crowd": np.zeros((0, 1), dtype=np.int32),
              "gt_class": np.zeros((0, 1), dtype=np.int32),
              # 'gt_poly': [],
              "chip": chip,
          }
          self._global_chip_id += 1
          chip_records.append(rec)
      return 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 7 for calling the AnnoCropper obj's underlying member method code with example usage: obj._trans_neg_chips2annotations(im_file, sampled_neg_chips) and returns: chip_records