class_docstr: Wrapper around ``multiprocessing.Pool`` for multicore augmentation.
  
  Parameters
  ----------
  augseq : imgaug.augmenters.meta.Augmenter
      The augmentation sequence to apply to batches.
  
  processes : None or int, optional
      The number of background workers, similar to the same parameter in
      multiprocessing.Pool. If ``None``, the number of the machine's CPU
      cores will be used (this counts hyperthreads as CPU cores). If this is
      set to a negative value ``p``, then ``P - abs(p)`` will be used,
      where ``P`` is the number of CPU cores. E.g. ``-1`` would use all
      cores except one (this is useful to e.g. reserve one core to feed
      batches to the GPU).
  
  maxtasksperchild : None or int, optional
      The number of tasks done per worker process before the process is
      killed and restarted, similar to the same parameter in
      multiprocessing.Pool. If ``None``, worker processes will not be
      automatically restarted.
  
  seed : None or int, optional
      The seed to use for child processes. If ``None``, a random seed will
      be used.
code: def _handle_batch_ids_gen(self, batches):
      for batch in batches:
          batch_idx = self._batch_idx
          yield batch_idx, batch
          self._batch_idx += 1
  
imports: from __future__ import print_function, division, absolute_import
  import sys
  import multiprocessing
  import threading
  import traceback
  import time
  import random
  import platform
  import numpy
  import cv2
  import imgaug.imgaug
  import imgaug.random
  from imgaug.augmentables.batches import Batch, UnnormalizedBatch
label_desc: Use image node_id 15 for calling the Pool obj's underlying member method code with example usage: obj._handle_batch_ids_gen(batches) without return types