class_docstr: A custom dataloader to preprocessing observations (including images)
  and feed them to the network.
  
  Original code for the dataloader from https://github.com/araffin/robotics-rl-srl
  (MIT licence)
  Authors: Antonin Raffin, René Traoré, Ashley Hill
  
  :param indices: ([int]) list of observations indices
  :param observations: (np.ndarray) observations or images path
  :param actions: (np.ndarray) actions
  :param batch_size: (int) Number of samples per minibatch
  :param n_workers: (int) number of preprocessing worker (for loading the images)
  :param infinite_loop: (bool) whether to have an iterator that can be reset
  :param max_queue_len: (int) Max number of minibatches that can be preprocessed at the same time
  :param shuffle: (bool) Shuffle the minibatch after each epoch
  :param start_process: (bool) Start the preprocessing process (default: True)
  :param backend: (str) joblib backend (one of 'multiprocessing', 'sequential', 'threading'
      or 'loky' in newest versions)
  :param sequential: (bool) Do not use subprocess to preprocess the data
      (slower but use less memory for the CI)
  :param partial_minibatch: (bool) Allow partial minibatches (minibatches with a number of element
      lesser than the batch_size)
docstr: Process one element.
  
  :param image_path: (str) path to an image
  :return: (np.ndarray)
docstr_tok: ["Process","one","element",".",":","param","image_path",":","(","str",")","path","to","an","image",":","return",":","(","np.ndarray",")"]
code: def _make_batch_element(cls, image_path):
      """
      Process one element.
  
      :param image_path: (str) path to an image
      :return: (np.ndarray)
      """
      # cv2.IMREAD_UNCHANGED is needed to load
      # grey and RGBa images
      image = cv2.imread(image_path, cv2.IMREAD_UNCHANGED)
      # Grey image
      if len(image.shape) == 2:
          image = image[:, :, np.newaxis]
  
      if image is None:
          raise ValueError(
              "Tried to load {}, but it was not found".format(
                  image_path
              )
          )
      # Convert from BGR to RGB
      if image.shape[-1] == 3:
          image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
      image = image.reshape((1,) + image.shape)
      return image
  
imports: import queue
  import time
  from multiprocessing import Queue, Process
  import cv2
  import numpy
  from joblib import Parallel, delayed
  from stable_baselines import logger
label_desc: Use image node_id 6 for calling the DataLoader obj's underlying member method code with example usage: obj._make_batch_element(cls, image_path) and returns: image