code: def affine_transform_bbox(bbox, trans, width, height):
      bbox = np.array(copy.deepcopy(bbox), dtype=np.float32)
      bbox[:2] = affine_transform(bbox[:2], trans)
      bbox[2:] = affine_transform(bbox[2:], trans)
      bbox[[0, 2]] = np.clip(bbox[[0, 2]], 0, width - 1)
      bbox[[1, 3]] = np.clip(bbox[[1, 3]], 0, height - 1)
      return bbox
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import copy
  import math
  import numpy
  import paddle
  from ppdet.core.workspace import register, create
  from .meta_arch import BaseArch
  from ..keypoint_utils import affine_transform
  from ppdet.data.transform.op_helper import gaussian_radius, gaussian2D, draw_umich_gaussian
label_desc: Use image node_id 1 for calling a global function with example usage: affine_transform_bbox(bbox, trans, width, height) and returns: bbox