code: def bbox_iou(self, box1, box2):
      intersect_w = self._interval_overlap(
          [box1.xmin, box1.xmax], [box2.xmin, box2.xmax]
      )
      intersect_h = self._interval_overlap(
          [box1.ymin, box1.ymax], [box2.ymin, box2.ymax]
      )
      intersect = intersect_w * intersect_h
      w1, h1 = box1.xmax - box1.xmin, box1.ymax - box1.ymin
      w2, h2 = box2.xmax - box2.xmin, box2.ymax - box2.ymin
      union = w1 * h1 + w2 * h2 - intersect
  
      try:
          result = float(intersect) / float(union)
          return result
      except:
          return 0.0
  
imports: import os
  import re
  import numpy
  import json
  from imageai.Detection.Custom.voc import parse_voc_annotation
  from imageai.Detection.YOLO.yolov3 import yolov3_main, yolov3_train, dummy_loss
  from imageai.Detection.Custom.generator import BatchGenerator
  from imageai.Detection.Custom.utils.utils import normalize, evaluate, makedirs
  from tensorflow.keras.callbacks import ReduceLROnPlateau
  from tensorflow.keras.optimizers import Adam
  from imageai.Detection.Custom.callbacks import CustomModelCheckpoint
  from imageai.Detection.Custom.utils.multi_gpu_model import multi_gpu_model
  from imageai.Detection.Custom.gen_anchors import generateAnchors
  import tensorflow
  from tensorflow.keras.models import load_model
  from tensorflow.keras import Input
  from tensorflow.keras.callbacks import TensorBoard
  import tensorflow.keras.backend
  import cv2
label_desc: Use image node_id 6 for calling the CustomDetectionUtils obj's underlying member method code with example usage: obj.bbox_iou(box1, box2) and returns: result, int