code: def start(self):
      input_process = multiprocessing.Process(
          target=CropLoader2.input_worker,
          args=(self.q_in, self.roidb, self.batch_size),
      )
      # gen_process = multiprocessing.Process(target=gen_worker, args=(q_in, q_out))
      gen_process = [
          multiprocessing.Process(
              target=CropLoader2.gen_worker,
              args=(self.q_in[i], self.q_out),
          )
          for i in range(config.NUM_CPU)
      ]
      input_process.start()
      for p in gen_process:
          p.start()
  
imports: from __future__ import print_function
  import sys
  import mxnet
  import numpy
  import random
  import datetime
  import multiprocessing
  import cv2
  from mxnet.executor_manager import _split_input_slice
  from rcnn.config import config
  from rcnn.io.image import tensor_vstack
  from rcnn.io.rpn import get_rpn_testbatch, get_rpn_batch, assign_anchor_fpn, get_crop_batch, AA
label_desc: Use image node_id 7 for calling the CropLoader2 obj's underlying member method code with example usage: obj.start() without return types