code: def paste_img(self, src_img, box_img, src_polys):
      box_img_pil = Image.fromarray(box_img).convert("RGBA")
      src_w, src_h = src_img.size
      box_w, box_h = box_img_pil.size
  
      angle = np.random.randint(0, 360)
      box = np.array([[[0, 0], [box_w, 0], [box_w, box_h], [0, box_h]]])
      box = rotate_bbox(box_img, box, angle)[0]
      box_img_pil = box_img_pil.rotate(angle, expand=1)
      box_w, box_h = box_img_pil.width, box_img_pil.height
      if src_w - box_w < 0 or src_h - box_h < 0:
          return src_img, None
  
      paste_x, paste_y = self.select_coord(
          src_polys, box, src_w - box_w, src_h - box_h
      )
      if paste_x is None:
          return src_img, None
      box[:, 0] += paste_x
      box[:, 1] += paste_y
      r, g, b, A = box_img_pil.split()
      src_img.paste(box_img_pil, (paste_x, paste_y), mask=A)
  
      return src_img, box
  
file_path: PaddleOCR/ppocr/data/imaug/copy_paste.py
imports: import copy
  import cv2
  import random
  import numpy
  from PIL import Image
  from shapely.geometry import Polygon
  from ppocr.data.imaug.iaa_augment import IaaAugment
  from ppocr.data.imaug.random_crop_data import is_poly_outside_rect
  from tools.infer.utility import get_rotate_crop_image
label_desc: Use image node_id 3 for calling the CopyPaste obj's underlying member method code with example usage: obj.paste_img(src_img, box_img, src_polys) and returns: src_img,  box, src_img,  None, src_img,  None