code: def order_points_clockwise(self, pts):
      rect = np.zeros((4, 2), dtype="float32")
      s = pts.sum(axis=1)
      rect[0] = pts[np.argmin(s)]
      rect[2] = pts[np.argmax(s)]
      diff = np.diff(pts, axis=1)
      rect[1] = pts[np.argmin(diff)]
      rect[3] = pts[np.argmax(diff)]
      return rect
  
imports: import os
  import yaml
  import glob
  from functools import reduce
  import time
  import cv2
  import numpy
  import math
  import paddle
  import sys
  from python.infer import get_test_images
  from python.preprocess import preprocess, NormalizeImage, Permute, Resize_Mult32
  from pipeline.ppvehicle.vehicle_plateutils import create_predictor, get_infer_gpuid, get_rotate_crop_image, draw_boxes
  from pipeline.ppvehicle.vehicleplate_postprocess import build_post_process
  from pipeline.cfg_utils import merge_cfg, print_arguments, argsparser
label_desc: Use image node_id 3 for calling the PlateDetector obj's underlying member method code with example usage: obj.order_points_clockwise(pts) and returns: rect