class_docstr: Warp affine the image
      
class_docstr_tok: ["Warp","affine","the","image"]
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
      """
      img = cv2.cvtColor(im, cv2.COLOR_RGB2BGR)
  
      h, w = img.shape[:2]
  
      if self.keep_res:
          # True in detection eval/infer
          input_h = (h | self.pad) + 1
          input_w = (w | self.pad) + 1
          s = np.array([input_w, input_h], dtype=np.float32)
          c = np.array([w // 2, h // 2], dtype=np.float32)
  
      else:
          # False in centertrack eval_mot/eval_mot
          s = max(h, w) * 1.0
          input_h, input_w = self.input_h, self.input_w
          c = np.array([w / 2.0, h / 2.0], dtype=np.float32)
  
      trans_input = get_affine_transform(c, s, 0, [input_w, input_h])
      img = cv2.resize(img, (w, h))
      inp = cv2.warpAffine(
          img, trans_input, (input_w, input_h), flags=cv2.INTER_LINEAR
      )
  
      if not self.keep_res:
          out_h = input_h // self.down_ratio
          out_w = input_w // self.down_ratio
          trans_output = get_affine_transform(c, s, 0, [out_w, out_h])
  
          im_info.update(
              {
                  "center": c,
                  "scale": s,
                  "out_height": out_h,
                  "out_width": out_w,
                  "inp_height": input_h,
                  "inp_width": input_w,
                  "trans_input": trans_input,
                  "trans_output": trans_output,
              }
          )
      return inp, im_info
  
imports: import cv2
  import numpy
  import imgaug.augmenters
  from keypoint_preprocess import get_affine_transform
  from PIL import Image
label_desc: Use image node_id 2 for calling the WarpAffine obj's underlying member method code with example usage: obj.__call__(im, im_info) and returns: inp,  im_info