code: def decode_netout(netout, anchors, obj_thresh, net_h, net_w):
      grid_h, grid_w = netout.shape[:2]
      nb_box = 3
      netout = netout.reshape((grid_h, grid_w, nb_box, -1))
      nb_class = netout.shape[-1] - 5
  
      boxes = []
  
      netout[..., :2] = _sigmoid(netout[..., :2])
      netout[..., 4] = _sigmoid(netout[..., 4])
      netout[..., 5:] = netout[..., 4][..., np.newaxis] * _softmax(
          netout[..., 5:]
      )
      netout[..., 5:] *= netout[..., 5:] > obj_thresh
  
      for i in range(grid_h * grid_w):
          row = i // grid_w
          col = i % grid_w
  
          for b in range(nb_box):
              # 4th element is objectness score
              objectness = netout[row, col, b, 4]
  
              if objectness <= obj_thresh:
                  continue
  
              # first 4 elements are x, y, w, and h
              x, y, w, h = netout[row, col, b, :4]
  
              x = (
                  col + x
              ) / grid_w  # center position, unit: image width
              y = (
                  row + y
              ) / grid_h  # center position, unit: image height
              w = (
                  anchors[2 * b + 0] * np.exp(w) / net_w
              )  # unit: image width
              h = (
                  anchors[2 * b + 1] * np.exp(h) / net_h
              )  # unit: image height
  
              # last elements are class probabilities
              classes = netout[row, col, b, 5:]
  
              box = BoundBox(
                  x - w / 2,
                  y - h / 2,
                  x + w / 2,
                  y + h / 2,
                  objectness,
                  classes,
              )
  
              boxes.append(box)
  
      return boxes
  
file_path: ImageAI/imageai_tf_deprecated/Detection/Custom/utils/utils.py
imports: import cv2
  import numpy
  import os
  from .bbox import BoundBox, bbox_iou
  from scipy.special import expit
label_desc: Use image node_id 6 for calling a global function with example usage: decode_netout(netout, anchors, obj_thresh, net_h, net_w) and returns: boxes