class_docstr: apply affine transform to image and coords
  
  Args:
      trainsize (list): [w, h], the standard size used to train
      use_udp (bool): whether to use Unbiased Data Processing.
      records(dict): the dict contained the image and coords
  
  Returns:
      records (dict): contain the image and coords after tranformed
class_docstr_tok: ["apply","affine","transform","to","image","and","coords","Args",":","trainsize","(","list",")",":","[","w",",","h","]",",","the","standard","size","used","to","train","use_udp","(","bool",")",":","whether","to","use","Unbiased","Data","Processing",".","records","(","dict",")",":","the","dict","contained","the","image","and","coords","Returns",":","records","(","dict",")",":","contain","the","image","and","coords","after","tranformed"]
code: def __init__(self, trainsize, use_udp=False):
      self.trainsize = trainsize
      self.use_udp = use_udp
  
imports: import numpy
  import cv2
  import copy
label_desc: Use image node_id 1 to create a new TopDownEvalAffine object from inherited base classes: object with example: obj = TopDownEvalAffine(trainsize, use_udp)