docstr: compute area of a polygon
  :param poly:
  :return:
docstr_tok: ["compute","area","of","a","polygon",":","param","poly",":",":","return",":"]
code: def quad_area(self, poly):
      """
      compute area of a polygon
      :param poly:
      :return:
      """
      edge = [
          (poly[1][0] - poly[0][0]) * (poly[1][1] + poly[0][1]),
          (poly[2][0] - poly[1][0]) * (poly[2][1] + poly[1][1]),
          (poly[3][0] - poly[2][0]) * (poly[3][1] + poly[2][1]),
          (poly[0][0] - poly[3][0]) * (poly[0][1] + poly[3][1]),
      ]
      return np.sum(edge) / 2.0
  
imports: import math
  import cv2
  import numpy
  from skimage.morphology._skeletonize import thin
  from ppocr.utils.e2e_utils.extract_textpoint_fast import sort_and_expand_with_direction_v2
label_desc: Use image node_id 3 for calling the PGProcessTrain obj's underlying member method code with example usage: obj.quad_area(poly) and returns: unknown