class_docstr: Randomly expand images and gt boxes by random ratio. It is a data enhancement operation for model training.
  
  Args:
      max_ratio(float): Max value for expansion ratio, default is 4.
      fill(list): Initialize the pixel value of the image with the input fill value, default is None.
      keep_ratio(bool): Whether image keeps ratio.
      thresh(float): If random ratio does not exceed the thresh, return original images and gt boxes, default is 0.5.
  
  Return:
      img(np.ndarray): Distorted image.
      data(dict): Image info and label info.
class_docstr_tok: ["Randomly","expand","images","and","gt","boxes","by","random","ratio",".","It","is","a","data","enhancement","operation","for","model","training",".","Args",":","max_ratio","(","float",")",":","Max","value","for","expansion","ratio",",","default","is","4.","fill","(","list",")",":","Initialize","the","pixel","value","of","the","image","with","the","input","fill","value",",","default","is","None",".","keep_ratio","(","bool",")",":","Whether","image","keeps","ratio",".","thresh","(","float",")",":","If","random","ratio","does","not","exceed","the","thresh",",","return","original","images","and","gt","boxes",",","default","is","0.5",".","Return",":","img","(","np.ndarray",")",":","Distorted","image",".","data","(","dict",")",":","Image","info","and","label","info","."]
code: def __init__(
      self,
      max_ratio: float = 4.0,
      fill: list = None,
      keep_ratio: bool = True,
      thresh: float = 0.5,
  ):
      self.max_ratio = max_ratio
      self.fill = fill
      self.keep_ratio = keep_ratio
      self.thresh = thresh
  
imports: import os
  import random
  from typing import Callable
  import cv2
  import PIL
  import numpy
  import paddlehub.vision.transforms.functional
  from paddlehub.vision.utils import box_crop, box_iou_xywh
label_desc: Use image node_id 1 to create a new RandomExpand object  with example: obj = RandomExpand(max_ratio, fill, keep_ratio, thresh)