code: def do_mixup(im1, roidb1, im2, roidb2):
      im = (im1 + im2) / 2.0
      roidb = {}
      # print(roidb1.keys())
      # for k in roidb1:
      for k in ["boxes", "landmarks", "gt_classes", "im_info"]:
          v1 = roidb1[k]
          v2 = roidb2[k]
          if k != "im_info":
              # print('try', k, v1.shape, v2.shape)
              if v1.shape[0] > 0 and v2.shape[0] > 0:
                  v = np.concatenate((v1, v2), axis=0)
              else:
                  v = v1
          else:
              v = v1
          # print(k, v1.shape, v2.shape, v.shape)
          roidb[k] = v
      return im, roidb
  
imports: from __future__ import print_function
  import numpy
  import cv2
  import os
  import math
  import sys
  import random
  from ..config import config
label_desc: Use image node_id 10 for calling a global function with example usage: do_mixup(im1, roidb1, im2, roidb2) and returns: im,  roidb