code: def dark_parse(self, hm, coord):
      heatmap_height = hm.shape[0]
      heatmap_width = hm.shape[1]
      px = int(coord[0])
      py = int(coord[1])
      if 1 < px < heatmap_width - 2 and 1 < py < heatmap_height - 2:
          dx = 0.5 * (hm[py][px + 1] - hm[py][px - 1])
          dy = 0.5 * (hm[py + 1][px] - hm[py - 1][px])
          dxx = 0.25 * (
              hm[py][px + 2] - 2 * hm[py][px] + hm[py][px - 2]
          )
          dxy = 0.25 * (
              hm[py + 1][px + 1]
              - hm[py - 1][px + 1]
              - hm[py + 1][px - 1]
              + hm[py - 1][px - 1]
          )
          dyy = 0.25 * (
              hm[py + 2 * 1][px] - 2 * hm[py][px] + hm[py - 2 * 1][px]
          )
          derivative = np.matrix([[dx], [dy]])
          hessian = np.matrix([[dxx, dxy], [dxy, dyy]])
          if dxx * dyy - dxy**2 != 0:
              hessianinv = hessian.I
              offset = -hessianinv * derivative
              offset = np.squeeze(np.array(offset.T), axis=0)
              coord += offset
      return coord
  
file_path: PaddleHub/modules/image/keypoint_detection/pp-tinypose/keypoint_postprocess.py
imports: import math
  import cv2
  import numpy
  from .keypoint_preprocess import get_affine_transform
label_desc: Use image node_id 5 for calling the HRNetPostProcess obj's underlying member method code with example usage: obj.dark_parse(hm, coord) and returns: coord