class_docstr: Affine transform to image and coords to achieve the rotate, scale and
  shift effect for training image.
  
  Args:
      degrees (list[2]): the rotate range to apply, transform range is [min, max]
      translate (list[2]): the translate range to apply, transform range is [min, max]
      scale (list[2]): the scale range to apply, transform range is [min, max]
      shear (list[2]): the shear range to apply, transform range is [min, max]
      borderValue (list[3]): value used in case of a constant border when appling
          the perspective transformation
      reject_outside (bool): reject warped bounding bboxes outside of image
  
  Returns:
      records(dict): contain the image and coords after tranformed
class_docstr_tok: ["Affine","transform","to","image","and","coords","to","achieve","the","rotate",",","scale","and","shift","effect","for","training","image",".","Args",":","degrees","(","list","[","2","]",")",":","the","rotate","range","to","apply",",","transform","range","is","[","min",",","max","]","translate","(","list","[","2","]",")",":","the","translate","range","to","apply",",","transform","range","is","[","min",",","max","]","scale","(","list","[","2","]",")",":","the","scale","range","to","apply",",","transform","range","is","[","min",",","max","]","shear","(","list","[","2","]",")",":","the","shear","range","to","apply",",","transform","range","is","[","min",",","max","]","borderValue","(","list","[","3","]",")",":","value","used","in","case","of","a","constant","border","when","appling","the","perspective","transformation","reject_outside","(","bool",")",":","reject","warped","bounding","bboxes","outside","of","image","Returns",":","records","(","dict",")",":","contain","the","image","and","coords","after","tranformed"]
code: def __init__(
      self,
      degrees=(-5, 5),
      translate=(0.10, 0.10),
      scale=(0.50, 1.20),
      shear=(-2, 2),
      borderValue=(127.5, 127.5, 127.5),
      reject_outside=True,
  ):
      super(MOTRandomAffine, self).__init__()
      self.degrees = degrees
      self.translate = translate
      self.scale = scale
      self.shear = shear
      self.borderValue = borderValue
      self.reject_outside = reject_outside
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from numbers import Integral
  import cv2
  import copy
  import numpy
  import random
  import math
  from .operators import BaseOperator, register_op
  from .batch_operators import Gt2TTFTarget
  from ppdet.modeling.bbox_utils import bbox_iou_np_expand
  from ppdet.utils.logger import setup_logger
  from .op_helper import gaussian_radius
label_desc: Use image node_id 1 to create a new MOTRandomAffine object from inherited base classes: BaseOperator with example: obj = MOTRandomAffine(degrees, translate, scale, shear, borderValue, reject_outside)