code: def draw_umich_gaussian(heatmap, center, radius, k=1):
      """
      draw_umich_gaussian, refer to https://github.com/xingyizhou/CenterNet/blob/master/src/lib/utils/image.py#L126
      """
      diameter = 2 * radius + 1
      gaussian = gaussian2D(
          (diameter, diameter),
          sigma_x=diameter / 6,
          sigma_y=diameter / 6,
      )
  
      x, y = int(center[0]), int(center[1])
  
      height, width = heatmap.shape[0:2]
  
      left, right = min(x, radius), min(width - x, radius + 1)
      top, bottom = min(y, radius), min(height - y, radius + 1)
  
      masked_heatmap = heatmap[
          y - top : y + bottom, x - left : x + right
      ]
      masked_gaussian = gaussian[
          radius - top : radius + bottom, radius - left : radius + right
      ]
      if (
          min(masked_gaussian.shape) > 0
          and min(masked_heatmap.shape) > 0
      ):
          np.maximum(
              masked_heatmap, masked_gaussian * k, out=masked_heatmap
          )
      return heatmap
  
imports: import time
  import os
  import ast
  import argparse
  import numpy
label_desc: Use image node_id 7 for calling a global function with example usage: draw_umich_gaussian(heatmap, center, radius, k) and returns: heatmap