def METHOD_NAME(self, encoded: np.ndarray) -> Tuple[np.ndarray, np.ndarray]:
    """Decode keypoint coordinates from heatmaps. The decoded keypoint
    coordinates are in the input image space.
    Args:
        encoded (np.ndarray): Heatmaps in shape (K, H, W)
    Returns:
        tuple:
        - keypoints (np.ndarray): Decoded keypoint coordinates in shape
            (K, D)
        - scores (np.ndarray): The keypoint scores in shape (K,). It
            usually represents the confidence of the keypoint prediction
    """
    heatmaps = gaussian_blur(encoded.copy(), self.kernel_size)
    K, H, W = heatmaps.shape
    keypoints, scores = get_heatmap_maximum(heatmaps)
    for k in range(K):
        heatmap = heatmaps[k]
        px = int(keypoints[k, 0])
        py = int(keypoints[k, 1])
        if 1 < px < W - 1 and 1 < py < H - 1:
            diff = np.array([
                heatmap[py][px + 1] - heatmap[py][px - 1],
                heatmap[py + 1][px] - heatmap[py - 1][px]
            ])
            keypoints[k] += (np.sign(diff) * 0.25 + 0.5)
    scores = scores / 255.0 + 0.5
    # Unsqueeze the instance dimension for single-instance results
    # and restore the keypoint scales
    keypoints = keypoints[None] * self.scale_factor
    scores = scores[None]
    return keypoints, scores