class_docstr: padding image for model with FPN, instead PadBatch(pad_to_stride) in original config
  Args:
      stride (bool): model with FPN need image shape % stride == 0
class_docstr_tok: ["padding","image","for","model","with","FPN",",","instead","PadBatch","(","pad_to_stride",")","in","original","config","Args",":","stride","(","bool",")",":","model","with","FPN","need","image","shape","%","stride","==","0"]
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
      """
      coarsest_stride = self.coarsest_stride
      if coarsest_stride <= 0:
          return im, im_info
      im_c, im_h, im_w = im.shape
      pad_h = int(
          np.ceil(float(im_h) / coarsest_stride) * coarsest_stride
      )
      pad_w = int(
          np.ceil(float(im_w) / coarsest_stride) * coarsest_stride
      )
      padding_im = np.zeros((im_c, pad_h, pad_w), dtype=np.float32)
      padding_im[:, :im_h, :im_w] = im
      return padding_im, im_info
  
imports: import cv2
  import numpy
label_desc: Use image node_id 2 for calling the PadStride obj's underlying member method code with example usage: obj.__call__(im, im_info) and returns: padding_im,  im_info, im,  im_info