docstr: the highest heatvalue location with a quarter offset in the
  direction from the highest response to the second highest response.
  
  Args:
      heatmaps (numpy.ndarray): The predicted heatmaps
      center (numpy.ndarray): The boxes center
      scale (numpy.ndarray): The scale factor
  
  Returns:
      preds: numpy.ndarray([batch_size, num_joints, 2]), keypoints coords
      maxvals: numpy.ndarray([batch_size, num_joints, 1]), the maximum confidence of the keypoints
docstr_tok: ["the","highest","heatvalue","location","with","a","quarter","offset","in","the","direction","from","the","highest","response","to","the","second","highest","response",".","Args",":","heatmaps","(","numpy.ndarray",")",":","The","predicted","heatmaps","center","(","numpy.ndarray",")",":","The","boxes","center","scale","(","numpy.ndarray",")",":","The","scale","factor","Returns",":","preds",":","numpy.ndarray","(","[","batch_size",",","num_joints",",","2","]",")",",","keypoints","coords","maxvals",":","numpy.ndarray","(","[","batch_size",",","num_joints",",","1","]",")",",","the","maximum","confidence","of","the","keypoints"]
code: def get_final_preds(self, heatmaps, center, scale, kernelsize=11):
      """the highest heatvalue location with a quarter offset in the
      direction from the highest response to the second highest response.
  
      Args:
          heatmaps (numpy.ndarray): The predicted heatmaps
          center (numpy.ndarray): The boxes center
          scale (numpy.ndarray): The scale factor
  
      Returns:
          preds: numpy.ndarray([batch_size, num_joints, 2]), keypoints coords
          maxvals: numpy.ndarray([batch_size, num_joints, 1]), the maximum confidence of the keypoints
      """
      coords, maxvals = self.get_max_preds(heatmaps)
  
      N, K, H, W = heatmaps.shape
  
      if self.use_dark:
          coords = self.post_datk_udp(coords, heatmaps, kernelsize)
          preds = coords.copy()
          # Transform back to the image
          for i in range(N):
              preds[i] = self.transform_preds_udp(
                  preds[i], center[i], scale[i], [W, H]
              )
      else:
          for n in range(coords.shape[0]):
              for p in range(coords.shape[1]):
                  hm = heatmaps[n][p]
                  px = int(math.floor(coords[n][p][0] + 0.5))
                  py = int(math.floor(coords[n][p][1] + 0.5))
                  if 1 < px < W - 1 and 1 < py < H - 1:
                      diff = np.array(
                          [
                              hm[py][px + 1] - hm[py][px - 1],
                              hm[py + 1][px] - hm[py - 1][px],
                          ]
                      )
                      coords[n][p] += np.sign(diff) * 0.25
          preds = coords.copy()
  
          # Transform back
          for i in range(coords.shape[0]):
              preds[i] = transform_preds(
                  coords[i], center[i], scale[i], [W, H]
              )
  
      return preds, maxvals
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import paddle
  import numpy
  import math
  import cv2
  from ppdet.core.workspace import register, create, serializable
  from .meta_arch import BaseArch
  from ..keypoint_utils import transform_preds
  from ..None import layers
label_desc: Use image node_id 5 for calling the VitPosePostProcess obj's underlying member method code with example usage: obj.get_final_preds(heatmaps, center, scale, kernelsize) and returns: preds,  maxvals