class_docstr: normalize image
  Args:
      mean (list): im - mean
      std (list): im / std
      is_scale (bool): whether need im / 255
      is_channel_first (bool): if True: image shape is CHW, else: HWC
class_docstr_tok: ["normalize","image","Args",":","mean","(","list",")",":","im","-","mean","std","(","list",")",":","im","\/","std","is_scale","(","bool",")",":","whether","need","im","\/","255","is_channel_first","(","bool",")",":","if","True",":","image","shape","is","CHW",",","else",":","HWC"]
docstr: Args:
      im (np.ndarray): image (np.ndarray)
      im_info (dict): info of image
  Returns:
      im (np.ndarray):  processed image (np.ndarray)
      im_info (dict): info of processed image
docstr_tok: ["Args",":","im","(","np.ndarray",")",":","image","(","np.ndarray",")","im_info","(","dict",")",":","info","of","image","Returns",":","im","(","np.ndarray",")",":","processed","image","(","np.ndarray",")","im_info","(","dict",")",":","info","of","processed","image"]
code: def __call__(self, im, im_info):
      """
      Args:
          im (np.ndarray): image (np.ndarray)
          im_info (dict): info of image
      Returns:
          im (np.ndarray):  processed image (np.ndarray)
          im_info (dict): info of processed image
      """
      im = im.astype(np.float32, copy=False)
      mean = np.array(self.mean)[np.newaxis, np.newaxis, :]
      std = np.array(self.std)[np.newaxis, np.newaxis, :]
  
      if self.is_scale:
          im = im / 255.0
      im -= mean
      im /= std
      return im, im_info
  
imports: import cv2
  import numpy
label_desc: Use image node_id 2 for calling the NormalizeImage obj's underlying member method code with example usage: obj.__call__(im, im_info) and returns: im,  im_info