code: def box2corners(box):
      """convert box coordinate to corners
      Args:
          box (Tensor): (B, N, 5) with (x, y, w, h, alpha) angle is in [0, 90)
      Returns:
          corners (Tensor): (B, N, 4, 2) with (x1, y1, x2, y2, x3, y3, x4, y4)
      """
      B = box.shape[0]
      x, y, w, h, alpha = paddle.split(box, 5, axis=-1)
      x4 = paddle.to_tensor(
          [0.5, 0.5, -0.5, -0.5], dtype=paddle.float32
      ).reshape(
          (1, 1, 4)
      )  # (1,1,4)
      x4 = x4 * w  # (B, N, 4)
      y4 = paddle.to_tensor(
          [-0.5, 0.5, 0.5, -0.5], dtype=paddle.float32
      ).reshape((1, 1, 4))
      y4 = y4 * h  # (B, N, 4)
      corners = paddle.stack([x4, y4], axis=-1)  # (B, N, 4, 2)
      sin = paddle.sin(alpha)
      cos = paddle.cos(alpha)
      row1 = paddle.concat([cos, sin], axis=-1)
      row2 = paddle.concat([-sin, cos], axis=-1)  # (B, N, 2)
      rot_T = paddle.stack([row1, row2], axis=-2)  # (B, N, 2, 2)
      rotated = paddle.bmm(
          corners.reshape([-1, 4, 2]), rot_T.reshape([-1, 2, 2])
      )
      rotated = rotated.reshape(
          [B, -1, 4, 2]
      )  # (B*N, 4, 2) -> (B, N, 4, 2)
      rotated[..., 0] += x
      rotated[..., 1] += y
      return rotated
  
file_path: PaddleDetection/ppdet/modeling/rbox_utils.py
imports: import math
  import paddle
  import numpy
  import cv2
label_desc: Use image node_id 8 for calling a global function with example usage: box2corners(box) and returns: rotated