code: def random_crop_list(
      images, size, pad_size=0, order="CHW", boxes=None
  ):
      """
      Perform random crop on a list of images.
      Args:
          images (list): list of images to perform random crop.
          size (int): size to crop.
          pad_size (int): padding size.
          order (str): order of the `height`, `channel` and `width`.
          boxes (list): optional. Corresponding boxes to images.
              Dimension is `num boxes` x 4.
      Returns:
          cropped (ndarray): the cropped list of images with dimension of
              `height` x `width` x `channel`.
          boxes (list): optional. Corresponding boxes to images. Dimension is
              `num boxes` x 4.
      """
      # explicitly dealing processing per image order to avoid flipping images.
      if pad_size > 0:
          images = [
              pad_image(pad_size=pad_size, image=image, order=order)
              for image in images
          ]
  
      # image format should be CHW.
      if order == "CHW":
          if images[0].shape[1] == size and images[0].shape[2] == size:
              return images, boxes
          height = images[0].shape[1]
          width = images[0].shape[2]
          y_offset = 0
          if height > size:
              y_offset = int(np.random.randint(0, height - size))
          x_offset = 0
          if width > size:
              x_offset = int(np.random.randint(0, width - size))
          cropped = [
              image[
                  :,
                  y_offset : y_offset + size,
                  x_offset : x_offset + size,
              ]
              for image in images
          ]
          assert (
              cropped[0].shape[1] == size
          ), "Image not cropped properly"
          assert (
              cropped[0].shape[2] == size
          ), "Image not cropped properly"
      elif order == "HWC":
          if images[0].shape[0] == size and images[0].shape[1] == size:
              return images, boxes
          height = images[0].shape[0]
          width = images[0].shape[1]
          y_offset = 0
          if height > size:
              y_offset = int(np.random.randint(0, height - size))
          x_offset = 0
          if width > size:
              x_offset = int(np.random.randint(0, width - size))
          cropped = [
              image[
                  y_offset : y_offset + size,
                  x_offset : x_offset + size,
                  :,
              ]
              for image in images
          ]
          assert (
              cropped[0].shape[0] == size
          ), "Image not cropped properly"
          assert (
              cropped[0].shape[1] == size
          ), "Image not cropped properly"
  
      if boxes is not None:
          boxes = [
              crop_boxes(proposal, x_offset, y_offset)
              for proposal in boxes
          ]
      return cropped, boxes
  
imports: import math
  import numpy
  import cv2
label_desc: Use image node_id 16 for calling a global function with example usage: random_crop_list(images, size, pad_size, order, boxes) and returns: cropped,  boxes, images,  boxes, images,  boxes